moved to: https://sites.google.com/site/cmzmasek/home/software/forester
[jalview.git] / forester / java / src / org / forester / io / parsers / phyloxml / PhyloXmlUtil.java
1 // $Id:
2 // FORESTER -- software libraries and applications
3 // for evolutionary biology research and applications.
4 //
5 // Copyright (C) 2008-2009 Christian M. Zmasek
6 // Copyright (C) 2008-2009 Burnham Institute for Medical Research
7 // All rights reserved
8 //
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.
13 //
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.
18 //
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
22 //
23 // Contact: phylosoft @ gmail . com
24 // WWW: https://sites.google.com/site/cmzmasek/home/software/forester
25
26 package org.forester.io.parsers.phyloxml;
27
28 import java.util.ArrayList;
29 import java.util.HashSet;
30 import java.util.List;
31 import java.util.Set;
32 import java.util.regex.Pattern;
33
34 import org.forester.io.parsers.util.ParserUtils;
35
36 public final class PhyloXmlUtil {
37
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                      = ParserUtils.TAXOMONY_CODE_PATTERN_1;
42     public final static Pattern      LIT_REF_DOI_PATTERN                        = Pattern
43                                                                                         .compile( "[a-zA-Z0-9_\\.]+\\S+" );
44     public final static Set<String>  SEQUENCE_TYPES                             = new HashSet<String>();
45     public final static List<String> TAXONOMY_RANKS_LIST                        = new ArrayList<String>();
46     public final static Set<String>  TAXONOMY_RANKS_SET                         = new HashSet<String>();
47     public static final int          ROUNDING_DIGITS_FOR_PHYLOXML_DOUBLE_OUTPUT = 9;
48     public static final String       VECTOR_PROPERTY_REF                        = "vector:index=";
49     public static final String       VECTOR_PROPERTY_TYPE                       = "xsd:decimal";
50     public static final String       UNIPROT_TAX_PROVIDER                       = "uniprot";
51     public static final String       SEQ_TYPE_RNA                               = "rna";
52     public static final String       SEQ_TYPE_DNA                               = "dna";
53     public static final String       SEQ_TYPE_PROTEIN                           = "protein";
54     static {
55         SEQUENCE_TYPES.add( SEQ_TYPE_RNA );
56         SEQUENCE_TYPES.add( SEQ_TYPE_PROTEIN );
57         SEQUENCE_TYPES.add( SEQ_TYPE_DNA );
58         TAXONOMY_RANKS_LIST.add( "domain" );
59         TAXONOMY_RANKS_LIST.add( "superkingdom" );
60         TAXONOMY_RANKS_LIST.add( "kingdom" );
61         TAXONOMY_RANKS_LIST.add( "subkingdom" );
62         TAXONOMY_RANKS_LIST.add( "branch" );
63         TAXONOMY_RANKS_LIST.add( "infrakingdom" );
64         TAXONOMY_RANKS_LIST.add( "superphylum" );
65         TAXONOMY_RANKS_LIST.add( "phylum" );
66         TAXONOMY_RANKS_LIST.add( "subphylum" );
67         TAXONOMY_RANKS_LIST.add( "infraphylum" );
68         TAXONOMY_RANKS_LIST.add( "microphylum" );
69         TAXONOMY_RANKS_LIST.add( "superdivision" );
70         TAXONOMY_RANKS_LIST.add( "division" );
71         TAXONOMY_RANKS_LIST.add( "subdivision" );
72         TAXONOMY_RANKS_LIST.add( "infradivision" );
73         TAXONOMY_RANKS_LIST.add( "superclass" );
74         TAXONOMY_RANKS_LIST.add( "class" );
75         TAXONOMY_RANKS_LIST.add( "subclass" );
76         TAXONOMY_RANKS_LIST.add( "infraclass" );
77         TAXONOMY_RANKS_LIST.add( "superlegion" );
78         TAXONOMY_RANKS_LIST.add( "legion" );
79         TAXONOMY_RANKS_LIST.add( "sublegion" );
80         TAXONOMY_RANKS_LIST.add( "infralegion" );
81         TAXONOMY_RANKS_LIST.add( "supercohort" );
82         TAXONOMY_RANKS_LIST.add( "cohort" );
83         TAXONOMY_RANKS_LIST.add( "subcohort" );
84         TAXONOMY_RANKS_LIST.add( "infracohort" );
85         TAXONOMY_RANKS_LIST.add( "superorder" );
86         TAXONOMY_RANKS_LIST.add( "order" );
87         TAXONOMY_RANKS_LIST.add( "suborder" );
88         TAXONOMY_RANKS_LIST.add( "infraorder" );
89         TAXONOMY_RANKS_LIST.add( "superfamily" );
90         TAXONOMY_RANKS_LIST.add( "family" );
91         TAXONOMY_RANKS_LIST.add( "subfamily" );
92         TAXONOMY_RANKS_LIST.add( "supertribe" );
93         TAXONOMY_RANKS_LIST.add( "tribe" );
94         TAXONOMY_RANKS_LIST.add( "subtribe" );
95         TAXONOMY_RANKS_LIST.add( "infratribe" );
96         TAXONOMY_RANKS_LIST.add( "genus" );
97         TAXONOMY_RANKS_LIST.add( "subgenus" );
98         TAXONOMY_RANKS_LIST.add( "superspecies" );
99         TAXONOMY_RANKS_LIST.add( "species" );
100         TAXONOMY_RANKS_LIST.add( "subspecies" );
101         TAXONOMY_RANKS_LIST.add( "variety" );
102         TAXONOMY_RANKS_LIST.add( "varietas" );
103         TAXONOMY_RANKS_LIST.add( "subvariety" );
104         TAXONOMY_RANKS_LIST.add( "form" );
105         TAXONOMY_RANKS_LIST.add( "subform" );
106         TAXONOMY_RANKS_LIST.add( "cultivar" );
107         TAXONOMY_RANKS_LIST.add( "strain" );
108         TAXONOMY_RANKS_LIST.add( "section" );
109         TAXONOMY_RANKS_LIST.add( "subsection" );
110         TAXONOMY_RANKS_LIST.add( UNKNOWN );
111         TAXONOMY_RANKS_LIST.add( OTHER );
112         // same thing as set:
113         TAXONOMY_RANKS_SET.add( "domain" );
114         TAXONOMY_RANKS_SET.add( "superkingdom" );
115         TAXONOMY_RANKS_SET.add( "kingdom" );
116         TAXONOMY_RANKS_SET.add( "subkingdom" );
117         TAXONOMY_RANKS_SET.add( "branch" );
118         TAXONOMY_RANKS_SET.add( "infrakingdom" );
119         TAXONOMY_RANKS_SET.add( "superphylum" );
120         TAXONOMY_RANKS_SET.add( "phylum" );
121         TAXONOMY_RANKS_SET.add( "subphylum" );
122         TAXONOMY_RANKS_SET.add( "infraphylum" );
123         TAXONOMY_RANKS_SET.add( "microphylum" );
124         TAXONOMY_RANKS_SET.add( "superdivision" );
125         TAXONOMY_RANKS_SET.add( "division" );
126         TAXONOMY_RANKS_SET.add( "subdivision" );
127         TAXONOMY_RANKS_SET.add( "infradivision" );
128         TAXONOMY_RANKS_SET.add( "superclass" );
129         TAXONOMY_RANKS_SET.add( "class" );
130         TAXONOMY_RANKS_SET.add( "subclass" );
131         TAXONOMY_RANKS_SET.add( "infraclass" );
132         TAXONOMY_RANKS_SET.add( "superlegion" );
133         TAXONOMY_RANKS_SET.add( "legion" );
134         TAXONOMY_RANKS_SET.add( "sublegion" );
135         TAXONOMY_RANKS_SET.add( "infralegion" );
136         TAXONOMY_RANKS_SET.add( "supercohort" );
137         TAXONOMY_RANKS_SET.add( "cohort" );
138         TAXONOMY_RANKS_SET.add( "subcohort" );
139         TAXONOMY_RANKS_SET.add( "infracohort" );
140         TAXONOMY_RANKS_SET.add( "superorder" );
141         TAXONOMY_RANKS_SET.add( "order" );
142         TAXONOMY_RANKS_SET.add( "suborder" );
143         TAXONOMY_RANKS_SET.add( "infraorder" );
144         TAXONOMY_RANKS_SET.add( "superfamily" );
145         TAXONOMY_RANKS_SET.add( "family" );
146         TAXONOMY_RANKS_SET.add( "subfamily" );
147         TAXONOMY_RANKS_SET.add( "supertribe" );
148         TAXONOMY_RANKS_SET.add( "tribe" );
149         TAXONOMY_RANKS_SET.add( "subtribe" );
150         TAXONOMY_RANKS_SET.add( "infratribe" );
151         TAXONOMY_RANKS_SET.add( "genus" );
152         TAXONOMY_RANKS_SET.add( "subgenus" );
153         TAXONOMY_RANKS_SET.add( "superspecies" );
154         TAXONOMY_RANKS_SET.add( "species" );
155         TAXONOMY_RANKS_SET.add( "subspecies" );
156         TAXONOMY_RANKS_SET.add( "variety" );
157         TAXONOMY_RANKS_SET.add( "varietas" );
158         TAXONOMY_RANKS_SET.add( "subvariety" );
159         TAXONOMY_RANKS_SET.add( "form" );
160         TAXONOMY_RANKS_SET.add( "subform" );
161         TAXONOMY_RANKS_SET.add( "cultivar" );
162         TAXONOMY_RANKS_SET.add( "strain" );
163         TAXONOMY_RANKS_SET.add( "section" );
164         TAXONOMY_RANKS_SET.add( "subsection" );
165         TAXONOMY_RANKS_SET.add( UNKNOWN );
166         TAXONOMY_RANKS_SET.add( OTHER );
167     };
168 }