// 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.ws.seqdb;
public final class UniProtTaxonomy {
- private static final String ARCHAEA = "Archaea";
- private static final String BACTERIA = "Bacteria";
- private static final String EUKARYOTA = "Eukaryota";
- private final List<String> _lineage;
- private final String _code;
- private final String _scientific_name;
- private final String _common_name;
- private final String _synonym;
- private final String _rank;
- private final String _id;
- public final static String CELLULAR_ORGANISMS = "cellular organisms";
- public final static String VIRUSES = "Viruses";
- public final static UniProtTaxonomy DROSOPHILA_GENUS = new UniProtTaxonomy( new String[] {
- CELLULAR_ORGANISMS, EUKARYOTA, "Metazoa", "Arthropoda", "Hexapoda", "Insecta", "Pterygota", "Neoptera",
- "Endopterygota", "Diptera", "Brachycera", "Muscomorpha", "Ephydroidea", "Drosophilidae", "Drosophila" },
- "",
- "fruit flies",
- "Drosophila",
- "",
- "genus",
- "7215" );
- public final static UniProtTaxonomy XENOPUS_GENUS = new UniProtTaxonomy( new String[] {
- CELLULAR_ORGANISMS, EUKARYOTA, "Metazoa", "Chordata", "Craniata", "Vertebrata", "Euteleostomi", "Amphibia",
- "Batrachia", "Anura", "Mesobatrachia", "Pipoidea", "Pipidae", "Xenopodinae", "Xenopus" },
- "",
- "",
- "Xenopus",
- "",
- "genus",
- "8353" );
- public final static UniProtTaxonomy CAPITELLA_TELATA_SPECIES = new UniProtTaxonomy( new String[] {
- CELLULAR_ORGANISMS, EUKARYOTA, "Metazoa", "Annelida", "Polychaeta", "Scolecida", "Capitellida",
- "Capitellidae", "Capitella", "Capitella teleta" },
- "",
- "",
- "Capitella teleta",
- "Capitella sp. I",
- "species",
- "283909" );
-
- // public final static UniProtTaxonomy NUCLEARIIDAE_AND_FONTICULA = new UniProtTaxonomy( new String[] {
- // CELLULAR_ORGANISMS, EUKARYOTA, "Nucleariidae and Fonticula group" }, "", "", "", "", "", "1001604" );
+ public static final String ARCHAEA = "Archaea";
+ public static final String BACTERIA = "Bacteria";
+ public static final String EUKARYOTA = "Eukaryota";
+ private final List<String> _lineage;
+ private final String _code;
+ private final String _scientific_name;
+ private final String _common_name;
+ private final String _synonym;
+ private final String _rank;
+ private final String _id;
+ public final static String CELLULAR_ORGANISMS = "cellular organisms";
+ public final static String VIRUSES = "Viruses";
+ public static final String X = "x";
+
public UniProtTaxonomy( final String line ) {
final String[] items = line.split( "\t" );
if ( items.length < 5 ) {
_synonym = synonym;
_rank = rank;
_id = id;
- if ( ( _lineage != null ) && !_lineage.get( _lineage.size() - 1 ).equalsIgnoreCase( _scientific_name ) ) {
- _lineage.add( _scientific_name );
- }
- }
-
- public UniProtTaxonomy( final String[] lineage,
- final String code,
- final String common_name,
- final String scientific_name,
- final String synonym,
- final String rank,
- final String id ) {
- _lineage = new ArrayList<String>();
- if ( lineage != null ) {
- for( final String l : lineage ) {
- _lineage.add( l );
- }
- }
- _code = code;
- _scientific_name = scientific_name;
- _common_name = common_name;
- _synonym = synonym;
- _rank = rank;
- _id = id;
- if ( ( _lineage != null ) && !_lineage.get( _lineage.size() - 1 ).equalsIgnoreCase( _scientific_name ) ) {
+ if ( ( ( _lineage != null ) && _lineage.isEmpty() )
+ || ( ( !ForesterUtil.isEmpty( _lineage ) ) && !_lineage.get( _lineage.size() - 1 )
+ .equalsIgnoreCase( _scientific_name ) ) ) {
_lineage.add( _scientific_name );
}
}
public String getSynonym() {
return _synonym;
}
+
+ public final static UniProtTaxonomy createSpecialFromScientificName( final String sn ) {
+ final List<String> lineage = new ArrayList<String>();
+ final String code = "";
+ final String common_name = "";
+ String scientific_name = "";
+ final String synonym = "";
+ String rank = "";
+ String id = "";
+ if ( sn.equalsIgnoreCase( BACTERIA ) ) {
+ scientific_name = BACTERIA;
+ lineage.add( "cellular organisms" );
+ rank = "superkingdom";
+ id = "2";
+ }
+ else if ( sn.equalsIgnoreCase( ARCHAEA ) ) {
+ scientific_name = ARCHAEA;
+ lineage.add( "cellular organisms" );
+ rank = "superkingdom";
+ id = "2157";
+ }
+ else if ( sn.equalsIgnoreCase( EUKARYOTA ) ) {
+ scientific_name = EUKARYOTA;
+ lineage.add( "cellular organisms" );
+ rank = "superkingdom";
+ id = "2759";
+ }
+ else if ( sn.equalsIgnoreCase( VIRUSES ) ) {
+ scientific_name = VIRUSES;
+ rank = "superkingdom";
+ id = "10239";
+ }
+ else if ( sn.equalsIgnoreCase( X ) ) {
+ scientific_name = X;
+ }
+ else {
+ throw new IllegalArgumentException( "illegal attempt to make UniProt taxonomy for :" + sn );
+ }
+ return new UniProtTaxonomy( lineage, code, common_name, scientific_name, synonym, rank, id );
+ }
}