fixed some minor issues
[jalview.git] / forester / java / src / org / forester / ws / seqdb / SequenceDbWsTools.java
index da16246..a54a3b9 100644 (file)
@@ -55,16 +55,17 @@ import org.forester.util.SequenceAccessionTools;
 
 public final class SequenceDbWsTools {
 
-    public final static String   BASE_UNIPROT_URL        = "http://www.uniprot.org/";
-    public final static int      DEFAULT_LINES_TO_RETURN = 4000;
-    public final static String   EMBL_DBS_REFSEQ_N       = "refseqn";
-    public final static String   EMBL_DBS_REFSEQ_P       = "refseqp";
-    public final static String   EMBL_GENBANK            = "http://www.ebi.ac.uk/Tools/dbfetch/dbfetch?db=GENBANK&style=raw&id=";
-    public final static String   EMBL_REFSEQ             = "http://www.ebi.ac.uk/Tools/dbfetch/dbfetch?db=REFSEQ&style=raw&id=";
-    public final static String   EMBL_EMBL               = "http://www.ebi.ac.uk/Tools/dbfetch/dbfetch?db=EMBL&style=raw&id=";
-    private final static boolean DEBUG                   = true;
-    private final static String  URL_ENC                 = "UTF-8";
-    private final static int     SLEEP                   = 200;
+    public final static String   BASE_UNIPROT_URL           = "http://www.uniprot.org/";
+    public final static int      DEFAULT_LINES_TO_RETURN    = 4000;
+    public final static String   EMBL_DBS_REFSEQ_N          = "refseqn";
+    public final static String   EMBL_DBS_REFSEQ_P          = "refseqp";
+    public final static String   EMBL_GENBANK               = "http://www.ebi.ac.uk/Tools/dbfetch/dbfetch?db=GENBANK&style=raw&id=";
+    public final static String   EMBL_REFSEQ                = "http://www.ebi.ac.uk/Tools/dbfetch/dbfetch?db=REFSEQ&style=raw&id=";
+    public final static String   EMBL_EMBL                  = "http://www.ebi.ac.uk/Tools/dbfetch/dbfetch?db=EMBL&style=raw&id=";
+    private final static boolean DEBUG                      = false;
+    private final static String  URL_ENC                    = "UTF-8";
+    private final static int     SLEEP                      = 200;
+    private static final boolean ALLOW_TO_OVERWRITE_MOL_SEQ = false;
 
     public static List<UniProtTaxonomy> getTaxonomiesFromCommonNameStrict( final String cn,
                                                                            final int max_taxonomies_return )
@@ -95,7 +96,7 @@ public final class SequenceDbWsTools {
      * Does not return "sub-types".
      * For example, for "Mus musculus" only returns "Mus musculus"
      * and not "Mus musculus", "Mus musculus bactrianus", ...
-     * 
+     *
      */
     public static List<UniProtTaxonomy> getTaxonomiesFromScientificNameStrict( final String sn,
                                                                                final int max_taxonomies_return )
@@ -131,7 +132,7 @@ public final class SequenceDbWsTools {
     public static SequenceDatabaseEntry obtainEmblEntry( final Accession acc, final int max_lines_to_return )
             throws IOException {
         final List<String> lines = queryEmblDb( acc, max_lines_to_return );
-        return EbiDbEntry.createInstanceFromPlainTextForRefSeq( lines );
+        return EbiDbEntry.createInstance( lines );
     }
 
     public static SequenceDatabaseEntry obtainEntry( final String acc_str ) throws IOException {
@@ -163,7 +164,7 @@ public final class SequenceDbWsTools {
     public static SequenceDatabaseEntry obtainRefSeqEntryFromEmbl( final Accession acc, final int max_lines_to_return )
             throws IOException {
         final List<String> lines = queryEmblDbForRefSeqEntry( acc, max_lines_to_return );
-        return EbiDbEntry.createInstanceFromPlainTextForRefSeq( lines );
+        return EbiDbEntry.createInstance( lines );
     }
 
     public final static Accession obtainSeqAccession( final PhylogenyNode node ) {
@@ -220,7 +221,7 @@ public final class SequenceDbWsTools {
     public static SequenceDatabaseEntry obtainUniProtEntry( final String query, final int max_lines_to_return )
             throws IOException {
         final List<String> lines = queryUniprot( "uniprot/" + query + ".txt", max_lines_to_return );
-        return UniProtEntry.createInstanceFromPlainText( lines );
+        return UniProtEntry.createInstance( lines );
     }
 
     public static List<String> queryDb( final String query, int max_lines_to_return, final String base_url )
@@ -250,7 +251,7 @@ public final class SequenceDbWsTools {
         }
         in.close();
         try {
-            // To prevent accessing online dbs in too quick succession. 
+            // To prevent accessing online dbs in too quick succession.
             Thread.sleep( SLEEP );
         }
         catch ( final InterruptedException e ) {
@@ -262,7 +263,9 @@ public final class SequenceDbWsTools {
     public static List<String> queryEmblDb( final Accession acc, final int max_lines_to_return ) throws IOException {
         final StringBuilder url_sb = new StringBuilder();
         //  url_sb.append( BASE_EMBL_DB_URL );
-        System.out.println( "source: " + acc.getSource() );
+        if ( DEBUG ) {
+            System.out.println( "source: " + acc.getSource() );
+        }
         if ( acc.getSource().equals( Source.NCBI.toString() ) ) {
             url_sb.append( EMBL_GENBANK );
             //url_sb.append( '/' );
@@ -299,8 +302,7 @@ public final class SequenceDbWsTools {
         final int i_a = target.indexOf( a );
         final int i_b = target.indexOf( b );
         if ( ( i_a < 0 ) || ( i_b < i_a ) ) {
-            throw new IllegalArgumentException( "attempt to extract from \"" + target + "\" between \"" + a
-                    + "\" and \"" + b + "\"" );
+            return "";
         }
         return target.substring( i_a + a.length(), i_b ).trim();
     }
@@ -383,7 +385,7 @@ public final class SequenceDbWsTools {
             }
             if ( ( db_entry.getMolecularSequence() != null )
                     && !ForesterUtil.isEmpty( db_entry.getMolecularSequence().getMolecularSequenceAsString() )
-                    && seq.getMolecularSequence().isEmpty() ) {
+                    && ( ALLOW_TO_OVERWRITE_MOL_SEQ || seq.getMolecularSequence().isEmpty() ) ) {
                 seq.setMolecularSequence( db_entry.getMolecularSequence().getMolecularSequenceAsString() );
                 seq.setMolecularSequenceAligned( false );
                 if ( db_entry.getMolecularSequence().getType() == TYPE.AA ) {