2 // FORESTER -- software libraries and applications
3 // for evolutionary biology research and applications.
5 // Copyright (C) 2008-2009 Christian M. Zmasek
6 // Copyright (C) 2008-2009 Burnham Institute for Medical Research
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU Lesser General Public
11 // License as published by the Free Software Foundation; either
12 // version 2.1 of the License, or (at your option) any later version.
14 // This library is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 // Lesser General Public License for more details.
19 // You should have received a copy of the GNU Lesser General Public
20 // License along with this library; if not, write to the Free Software
21 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23 // Contact: phylosoft @ gmail . com
24 // WWW: www.phylosoft.org/forester
26 package org.forester.io.parsers.phyloxml;
28 import java.util.ArrayList;
29 import java.util.HashSet;
30 import java.util.List;
32 import java.util.regex.Pattern;
34 public final class PhyloXmlUtil {
36 public static final String OTHER = "other";
37 public static final String UNKNOWN = "unknown";
38 public final static Pattern SEQUENCE_SYMBOL_PATTERN = Pattern.compile( "\\S{1,20}" );
39 public final static Pattern TAXOMONY_CODE_PATTERN = Pattern
40 .compile( "[a-zA-Z0-9_]{1,10}" );
41 public final static Pattern LIT_REF_DOI_PATTERN = Pattern
42 .compile( "[a-zA-Z0-9_\\.]+\\S+" );
43 public final static Set<String> SEQUENCE_TYPES = new HashSet<String>();
44 public final static List<String> TAXONOMY_RANKS_LIST = new ArrayList<String>();
45 public final static Set<String> TAXONOMY_RANKS_SET = new HashSet<String>();
46 public static final int ROUNDING_DIGITS_FOR_PHYLOXML_DOUBLE_OUTPUT = 9;
47 public static final String VECTOR_PROPERTY_REF = "vector:index=";
48 public static final String VECTOR_PROPERTY_TYPE = "xsd:decimal";
49 public static final String UNIPROT_TAX_PROVIDER = "uniprot";
51 SEQUENCE_TYPES.add( "rna" );
52 SEQUENCE_TYPES.add( "protein" );
53 SEQUENCE_TYPES.add( "dna" );
54 TAXONOMY_RANKS_LIST.add( "domain" );
55 TAXONOMY_RANKS_LIST.add( "superkingdom" );
56 TAXONOMY_RANKS_LIST.add( "kingdom" );
57 TAXONOMY_RANKS_LIST.add( "subkingdom" );
58 TAXONOMY_RANKS_LIST.add( "branch" );
59 TAXONOMY_RANKS_LIST.add( "infrakingdom" );
60 TAXONOMY_RANKS_LIST.add( "superphylum" );
61 TAXONOMY_RANKS_LIST.add( "phylum" );
62 TAXONOMY_RANKS_LIST.add( "subphylum" );
63 TAXONOMY_RANKS_LIST.add( "infraphylum" );
64 TAXONOMY_RANKS_LIST.add( "microphylum" );
65 TAXONOMY_RANKS_LIST.add( "superdivision" );
66 TAXONOMY_RANKS_LIST.add( "division" );
67 TAXONOMY_RANKS_LIST.add( "subdivision" );
68 TAXONOMY_RANKS_LIST.add( "infradivision" );
69 TAXONOMY_RANKS_LIST.add( "superclass" );
70 TAXONOMY_RANKS_LIST.add( "class" );
71 TAXONOMY_RANKS_LIST.add( "subclass" );
72 TAXONOMY_RANKS_LIST.add( "infraclass" );
73 TAXONOMY_RANKS_LIST.add( "superlegion" );
74 TAXONOMY_RANKS_LIST.add( "legion" );
75 TAXONOMY_RANKS_LIST.add( "sublegion" );
76 TAXONOMY_RANKS_LIST.add( "infralegion" );
77 TAXONOMY_RANKS_LIST.add( "supercohort" );
78 TAXONOMY_RANKS_LIST.add( "cohort" );
79 TAXONOMY_RANKS_LIST.add( "subcohort" );
80 TAXONOMY_RANKS_LIST.add( "infracohort" );
81 TAXONOMY_RANKS_LIST.add( "superorder" );
82 TAXONOMY_RANKS_LIST.add( "order" );
83 TAXONOMY_RANKS_LIST.add( "suborder" );
84 TAXONOMY_RANKS_LIST.add( "infraorder" );
85 TAXONOMY_RANKS_LIST.add( "superfamily" );
86 TAXONOMY_RANKS_LIST.add( "family" );
87 TAXONOMY_RANKS_LIST.add( "subfamily" );
88 TAXONOMY_RANKS_LIST.add( "supertribe" );
89 TAXONOMY_RANKS_LIST.add( "tribe" );
90 TAXONOMY_RANKS_LIST.add( "subtribe" );
91 TAXONOMY_RANKS_LIST.add( "infratribe" );
92 TAXONOMY_RANKS_LIST.add( "genus" );
93 TAXONOMY_RANKS_LIST.add( "subgenus" );
94 TAXONOMY_RANKS_LIST.add( "superspecies" );
95 TAXONOMY_RANKS_LIST.add( "species" );
96 TAXONOMY_RANKS_LIST.add( "subspecies" );
97 TAXONOMY_RANKS_LIST.add( "variety" );
98 TAXONOMY_RANKS_LIST.add( "subvariety" );
99 TAXONOMY_RANKS_LIST.add( "form" );
100 TAXONOMY_RANKS_LIST.add( "subform" );
101 TAXONOMY_RANKS_LIST.add( "cultivar" );
102 TAXONOMY_RANKS_LIST.add( "strain" );
103 TAXONOMY_RANKS_LIST.add( UNKNOWN );
104 TAXONOMY_RANKS_LIST.add( OTHER );
105 // same thing as set:
106 TAXONOMY_RANKS_SET.add( "domain" );
107 TAXONOMY_RANKS_SET.add( "superkingdom" );
108 TAXONOMY_RANKS_SET.add( "kingdom" );
109 TAXONOMY_RANKS_SET.add( "subkingdom" );
110 TAXONOMY_RANKS_SET.add( "branch" );
111 TAXONOMY_RANKS_SET.add( "infrakingdom" );
112 TAXONOMY_RANKS_SET.add( "superphylum" );
113 TAXONOMY_RANKS_SET.add( "phylum" );
114 TAXONOMY_RANKS_SET.add( "subphylum" );
115 TAXONOMY_RANKS_SET.add( "infraphylum" );
116 TAXONOMY_RANKS_SET.add( "microphylum" );
117 TAXONOMY_RANKS_SET.add( "superdivision" );
118 TAXONOMY_RANKS_SET.add( "division" );
119 TAXONOMY_RANKS_SET.add( "subdivision" );
120 TAXONOMY_RANKS_SET.add( "infradivision" );
121 TAXONOMY_RANKS_SET.add( "superclass" );
122 TAXONOMY_RANKS_SET.add( "class" );
123 TAXONOMY_RANKS_SET.add( "subclass" );
124 TAXONOMY_RANKS_SET.add( "infraclass" );
125 TAXONOMY_RANKS_SET.add( "superlegion" );
126 TAXONOMY_RANKS_SET.add( "legion" );
127 TAXONOMY_RANKS_SET.add( "sublegion" );
128 TAXONOMY_RANKS_SET.add( "infralegion" );
129 TAXONOMY_RANKS_SET.add( "supercohort" );
130 TAXONOMY_RANKS_SET.add( "cohort" );
131 TAXONOMY_RANKS_SET.add( "subcohort" );
132 TAXONOMY_RANKS_SET.add( "infracohort" );
133 TAXONOMY_RANKS_SET.add( "superorder" );
134 TAXONOMY_RANKS_SET.add( "order" );
135 TAXONOMY_RANKS_SET.add( "suborder" );
136 TAXONOMY_RANKS_SET.add( "infraorder" );
137 TAXONOMY_RANKS_SET.add( "superfamily" );
138 TAXONOMY_RANKS_SET.add( "family" );
139 TAXONOMY_RANKS_SET.add( "subfamily" );
140 TAXONOMY_RANKS_SET.add( "supertribe" );
141 TAXONOMY_RANKS_SET.add( "tribe" );
142 TAXONOMY_RANKS_SET.add( "subtribe" );
143 TAXONOMY_RANKS_SET.add( "infratribe" );
144 TAXONOMY_RANKS_SET.add( "genus" );
145 TAXONOMY_RANKS_SET.add( "subgenus" );
146 TAXONOMY_RANKS_SET.add( "superspecies" );
147 TAXONOMY_RANKS_SET.add( "species" );
148 TAXONOMY_RANKS_SET.add( "subspecies" );
149 TAXONOMY_RANKS_SET.add( "variety" );
150 TAXONOMY_RANKS_SET.add( "subvariety" );
151 TAXONOMY_RANKS_SET.add( "form" );
152 TAXONOMY_RANKS_SET.add( "subform" );
153 TAXONOMY_RANKS_SET.add( "cultivar" );
154 TAXONOMY_RANKS_SET.add( "strain" );
155 TAXONOMY_RANKS_SET.add( UNKNOWN );
156 TAXONOMY_RANKS_SET.add( OTHER );