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: https://sites.google.com/site/cmzmasek/home/software/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 import org.forester.io.parsers.util.ParserUtils;
36 public final class PhyloXmlUtil {
38 public static final String OTHER = "other";
39 public static final String UNKNOWN = "unknown";
40 public final static Pattern SEQUENCE_SYMBOL_PATTERN = Pattern.compile( "\\S{1,20}" );
41 public final static Pattern TAXOMONY_CODE_PATTERN = Pattern
42 .compile( ParserUtils.TAX_CODE );
43 public final static Pattern LIT_REF_DOI_PATTERN = Pattern
44 .compile( "[a-zA-Z0-9_\\.]+\\S+" );
45 public final static Set<String> SEQUENCE_TYPES = new HashSet<String>();
46 public final static List<String> TAXONOMY_RANKS_LIST = new ArrayList<String>();
47 public final static Set<String> TAXONOMY_RANKS_SET = new HashSet<String>();
48 public static final int ROUNDING_DIGITS_FOR_PHYLOXML_DOUBLE_OUTPUT = 9;
49 public static final String VECTOR_PROPERTY_REF = "vector:index=";
50 public static final String VECTOR_PROPERTY_TYPE = "xsd:decimal";
51 public static final String UNIPROT_TAX_PROVIDER = "uniprot";
52 public static final String SEQ_TYPE_RNA = "rna";
53 public static final String SEQ_TYPE_DNA = "dna";
54 public static final String SEQ_TYPE_PROTEIN = "protein";
56 SEQUENCE_TYPES.add( SEQ_TYPE_RNA );
57 SEQUENCE_TYPES.add( SEQ_TYPE_PROTEIN );
58 SEQUENCE_TYPES.add( SEQ_TYPE_DNA );
59 TAXONOMY_RANKS_LIST.add( "domain" );
60 TAXONOMY_RANKS_LIST.add( "superkingdom" );
61 TAXONOMY_RANKS_LIST.add( "kingdom" );
62 TAXONOMY_RANKS_LIST.add( "subkingdom" );
63 TAXONOMY_RANKS_LIST.add( "branch" );
64 TAXONOMY_RANKS_LIST.add( "infrakingdom" );
65 TAXONOMY_RANKS_LIST.add( "superphylum" );
66 TAXONOMY_RANKS_LIST.add( "phylum" );
67 TAXONOMY_RANKS_LIST.add( "subphylum" );
68 TAXONOMY_RANKS_LIST.add( "infraphylum" );
69 TAXONOMY_RANKS_LIST.add( "microphylum" );
70 TAXONOMY_RANKS_LIST.add( "superdivision" );
71 TAXONOMY_RANKS_LIST.add( "division" );
72 TAXONOMY_RANKS_LIST.add( "subdivision" );
73 TAXONOMY_RANKS_LIST.add( "infradivision" );
74 TAXONOMY_RANKS_LIST.add( "superclass" );
75 TAXONOMY_RANKS_LIST.add( "class" );
76 TAXONOMY_RANKS_LIST.add( "subclass" );
77 TAXONOMY_RANKS_LIST.add( "infraclass" );
78 TAXONOMY_RANKS_LIST.add( "superlegion" );
79 TAXONOMY_RANKS_LIST.add( "legion" );
80 TAXONOMY_RANKS_LIST.add( "sublegion" );
81 TAXONOMY_RANKS_LIST.add( "infralegion" );
82 TAXONOMY_RANKS_LIST.add( "supercohort" );
83 TAXONOMY_RANKS_LIST.add( "cohort" );
84 TAXONOMY_RANKS_LIST.add( "subcohort" );
85 TAXONOMY_RANKS_LIST.add( "infracohort" );
86 TAXONOMY_RANKS_LIST.add( "superorder" );
87 TAXONOMY_RANKS_LIST.add( "order" );
88 TAXONOMY_RANKS_LIST.add( "suborder" );
89 TAXONOMY_RANKS_LIST.add( "infraorder" );
90 TAXONOMY_RANKS_LIST.add( "superfamily" );
91 TAXONOMY_RANKS_LIST.add( "family" );
92 TAXONOMY_RANKS_LIST.add( "subfamily" );
93 TAXONOMY_RANKS_LIST.add( "supertribe" );
94 TAXONOMY_RANKS_LIST.add( "tribe" );
95 TAXONOMY_RANKS_LIST.add( "subtribe" );
96 TAXONOMY_RANKS_LIST.add( "infratribe" );
97 TAXONOMY_RANKS_LIST.add( "genus" );
98 TAXONOMY_RANKS_LIST.add( "subgenus" );
99 TAXONOMY_RANKS_LIST.add( "superspecies" );
100 TAXONOMY_RANKS_LIST.add( "species" );
101 TAXONOMY_RANKS_LIST.add( "subspecies" );
102 TAXONOMY_RANKS_LIST.add( "variety" );
103 TAXONOMY_RANKS_LIST.add( "varietas" );
104 TAXONOMY_RANKS_LIST.add( "subvariety" );
105 TAXONOMY_RANKS_LIST.add( "form" );
106 TAXONOMY_RANKS_LIST.add( "subform" );
107 TAXONOMY_RANKS_LIST.add( "cultivar" );
108 TAXONOMY_RANKS_LIST.add( "strain" );
109 TAXONOMY_RANKS_LIST.add( "section" );
110 TAXONOMY_RANKS_LIST.add( "subsection" );
111 TAXONOMY_RANKS_LIST.add( UNKNOWN );
112 TAXONOMY_RANKS_LIST.add( OTHER );
113 // same thing as set:
114 TAXONOMY_RANKS_SET.add( "domain" );
115 TAXONOMY_RANKS_SET.add( "superkingdom" );
116 TAXONOMY_RANKS_SET.add( "kingdom" );
117 TAXONOMY_RANKS_SET.add( "subkingdom" );
118 TAXONOMY_RANKS_SET.add( "branch" );
119 TAXONOMY_RANKS_SET.add( "infrakingdom" );
120 TAXONOMY_RANKS_SET.add( "superphylum" );
121 TAXONOMY_RANKS_SET.add( "phylum" );
122 TAXONOMY_RANKS_SET.add( "subphylum" );
123 TAXONOMY_RANKS_SET.add( "infraphylum" );
124 TAXONOMY_RANKS_SET.add( "microphylum" );
125 TAXONOMY_RANKS_SET.add( "superdivision" );
126 TAXONOMY_RANKS_SET.add( "division" );
127 TAXONOMY_RANKS_SET.add( "subdivision" );
128 TAXONOMY_RANKS_SET.add( "infradivision" );
129 TAXONOMY_RANKS_SET.add( "superclass" );
130 TAXONOMY_RANKS_SET.add( "class" );
131 TAXONOMY_RANKS_SET.add( "subclass" );
132 TAXONOMY_RANKS_SET.add( "infraclass" );
133 TAXONOMY_RANKS_SET.add( "superlegion" );
134 TAXONOMY_RANKS_SET.add( "legion" );
135 TAXONOMY_RANKS_SET.add( "sublegion" );
136 TAXONOMY_RANKS_SET.add( "infralegion" );
137 TAXONOMY_RANKS_SET.add( "supercohort" );
138 TAXONOMY_RANKS_SET.add( "cohort" );
139 TAXONOMY_RANKS_SET.add( "subcohort" );
140 TAXONOMY_RANKS_SET.add( "infracohort" );
141 TAXONOMY_RANKS_SET.add( "superorder" );
142 TAXONOMY_RANKS_SET.add( "order" );
143 TAXONOMY_RANKS_SET.add( "suborder" );
144 TAXONOMY_RANKS_SET.add( "infraorder" );
145 TAXONOMY_RANKS_SET.add( "superfamily" );
146 TAXONOMY_RANKS_SET.add( "family" );
147 TAXONOMY_RANKS_SET.add( "subfamily" );
148 TAXONOMY_RANKS_SET.add( "supertribe" );
149 TAXONOMY_RANKS_SET.add( "tribe" );
150 TAXONOMY_RANKS_SET.add( "subtribe" );
151 TAXONOMY_RANKS_SET.add( "infratribe" );
152 TAXONOMY_RANKS_SET.add( "genus" );
153 TAXONOMY_RANKS_SET.add( "subgenus" );
154 TAXONOMY_RANKS_SET.add( "superspecies" );
155 TAXONOMY_RANKS_SET.add( "species" );
156 TAXONOMY_RANKS_SET.add( "subspecies" );
157 TAXONOMY_RANKS_SET.add( "variety" );
158 TAXONOMY_RANKS_SET.add( "varietas" );
159 TAXONOMY_RANKS_SET.add( "subvariety" );
160 TAXONOMY_RANKS_SET.add( "form" );
161 TAXONOMY_RANKS_SET.add( "subform" );
162 TAXONOMY_RANKS_SET.add( "cultivar" );
163 TAXONOMY_RANKS_SET.add( "strain" );
164 TAXONOMY_RANKS_SET.add( "section" );
165 TAXONOMY_RANKS_SET.add( "subsection" );
166 TAXONOMY_RANKS_SET.add( UNKNOWN );
167 TAXONOMY_RANKS_SET.add( OTHER );