// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
//
// Contact: phylosoft @ gmail . com
-// WWW: www.phylosoft.org/forester
+// WWW: https://sites.google.com/site/cmzmasek/home/software/forester
package org.forester.archaeopteryx;
import org.forester.io.parsers.PhylogenyParser;
import org.forester.io.parsers.nexus.NexusPhylogeniesParser;
import org.forester.io.parsers.nhx.NHXParser;
+import org.forester.io.parsers.phyloxml.PhyloXmlDataFormatException;
import org.forester.io.parsers.phyloxml.PhyloXmlParser;
import org.forester.io.parsers.tol.TolParser;
import org.forester.phylogeny.Phylogeny;
_webservice_client_index = webservice_client_index;
}
+ @Override
+ public void run() {
+ readPhylogeniesFromWebservice();
+ }
+
synchronized void readPhylogeniesFromWebservice() {
final long start_time = new Date().getTime();
URL url = null;
}
identifier = id + "";
}
+ boolean exception = false;
try {
String url_str = client.getUrl();
url_str = url_str.replaceFirst( PhylogeniesWebserviceClient.QUERY_PLACEHOLDER, identifier );
parser = new NexusPhylogeniesParser();
( ( NexusPhylogeniesParser ) parser ).setReplaceUnderscores( true );
break;
+ case TREEBASE_TREE:
+ parser = new NexusPhylogeniesParser();
+ ( ( NexusPhylogeniesParser ) parser ).setReplaceUnderscores( true );
+ ( ( NexusPhylogeniesParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.NO );
+ break;
+ case TREEBASE_STUDY:
+ parser = new NexusPhylogeniesParser();
+ ( ( NexusPhylogeniesParser ) parser ).setReplaceUnderscores( true );
+ ( ( NexusPhylogeniesParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.NO );
+ break;
case NH:
parser = new NHXParser();
- ( ( NHXParser ) parser ).setTaxonomyExtraction( PhylogenyMethods.TAXONOMY_EXTRACTION.NO );
+ ( ( NHXParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.NO );
( ( NHXParser ) parser ).setReplaceUnderscores( true );
( ( NHXParser ) parser ).setGuessRootedness( true );
break;
case NH_EXTRACT_TAXONOMY:
parser = new NHXParser();
- ( ( NHXParser ) parser )
- .setTaxonomyExtraction( PhylogenyMethods.TAXONOMY_EXTRACTION.PFAM_STYLE_ONLY );
+ ( ( NHXParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.AGGRESSIVE );
( ( NHXParser ) parser ).setReplaceUnderscores( false );
( ( NHXParser ) parser ).setGuessRootedness( true );
break;
case PFAM:
parser = new NHXParser();
( ( NHXParser ) parser )
- .setTaxonomyExtraction( PhylogenyMethods.TAXONOMY_EXTRACTION.PFAM_STYLE_ONLY );
+ .setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_STRICT );
( ( NHXParser ) parser ).setReplaceUnderscores( false );
( ( NHXParser ) parser ).setGuessRootedness( true );
break;
case NHX:
parser = new NHXParser();
- ( ( NHXParser ) parser ).setTaxonomyExtraction( PhylogenyMethods.TAXONOMY_EXTRACTION.NO );
+ ( ( NHXParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.NO );
( ( NHXParser ) parser ).setReplaceUnderscores( false );
( ( NHXParser ) parser ).setGuessRootedness( true );
break;
case PHYLOXML:
- parser = new PhyloXmlParser();
+ parser = PhyloXmlParser.createPhyloXmlParserXsdValidating();
break;
default:
throw new IllegalArgumentException( "unknown format: " + client.getReturnFormat() );
trees = factory.create( url.openStream(), parser );
}
catch ( final MalformedURLException e ) {
+ exception = true;
JOptionPane.showMessageDialog( _main_frame,
"Malformed URL: " + url + "\n" + e.getLocalizedMessage(),
"Malformed URL",
JOptionPane.ERROR_MESSAGE );
}
catch ( final IOException e ) {
+ exception = true;
JOptionPane.showMessageDialog( _main_frame,
"Could not read from " + url + "\n" + e.getLocalizedMessage(),
"Failed to read tree from " + client.getName() + " for " + identifier,
JOptionPane.ERROR_MESSAGE );
}
catch ( final NumberFormatException e ) {
+ exception = true;
JOptionPane.showMessageDialog( _main_frame,
"Could not read from " + url + "\n" + e.getLocalizedMessage(),
"Failed to read tree from " + client.getName() + " for " + identifier,
JOptionPane.ERROR_MESSAGE );
}
catch ( final Exception e ) {
+ exception = true;
e.printStackTrace();
JOptionPane.showMessageDialog( _main_frame,
e.getLocalizedMessage(),
phylogeny.setRerootable( false );
phylogeny.setRooted( true );
}
- if ( client.getName().equals( WebserviceUtil.PFAM_NAME ) ) {
- phylogeny.setRerootable( false );
- phylogeny.setRooted( true );
- PhylogenyMethods.transferInternalNodeNamesToConfidence( phylogeny );
- }
if ( client.getProcessingInstructions() != null ) {
- WebserviceUtil.processInstructions( client, phylogeny );
+ try {
+ WebserviceUtil.processInstructions( client, phylogeny );
+ }
+ catch ( final PhyloXmlDataFormatException e ) {
+ JOptionPane.showMessageDialog( _main_frame,
+ "Error:\n" + e.getLocalizedMessage(),
+ "Error",
+ JOptionPane.ERROR_MESSAGE );
+ }
}
if ( client.getNodeField() != null ) {
- PhylogenyMethods.transferNodeNameToField( phylogeny, client.getNodeField() );
+ try {
+ PhylogenyMethods.transferNodeNameToField( phylogeny, client.getNodeField(), false );
+ }
+ catch ( final PhyloXmlDataFormatException e ) {
+ JOptionPane.showMessageDialog( _main_frame,
+ "Error:\n" + e.getLocalizedMessage(),
+ "Error",
+ JOptionPane.ERROR_MESSAGE );
+ }
}
phylogeny.setIdentifier( new Identifier( identifier, client.getName() ) );
_main_frame.getJMenuBar().remove( _main_frame.getHelpMenu() );
}
}
}
+ else if ( !exception ) {
+ JOptionPane.showMessageDialog( null, ForesterUtil.wordWrap( "Failed to read in tree(s) from [" + url
+ + "]", 80 ), "Error", JOptionPane.ERROR_MESSAGE );
+ }
_main_frame.getContentPane().repaint();
- if ( ( ( trees != null ) && ( trees.length > 0 ) ) && ( ( new Date().getTime() - start_time ) > 20000 ) ) {
+ if ( ( trees != null ) && ( trees.length > 0 ) ) {
try {
JOptionPane.showMessageDialog( null,
ForesterUtil.wordWrap( "Successfully read in " + trees.length
- + " evolutionry tree(s) from [" + url + "]", 80 ),
+ + " tree(s) from [" + url + "]", 80 ),
"Success",
JOptionPane.INFORMATION_MESSAGE );
}
_main_frame.activateSaveAllIfNeeded();
System.gc();
}
-
- @Override
- public void run() {
- readPhylogeniesFromWebservice();
- }
}