bio 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (303) hide show
  1. data/ChangeLog +2105 -3728
  2. data/KNOWN_ISSUES.rdoc +35 -3
  3. data/README.rdoc +8 -2
  4. data/RELEASE_NOTES.rdoc +166 -0
  5. data/bin/bioruby +4 -1
  6. data/bioruby.gemspec +146 -1
  7. data/bioruby.gemspec.erb +3 -1
  8. data/doc/ChangeLog-before-1.3.1 +3961 -0
  9. data/doc/Tutorial.rd +154 -22
  10. data/doc/Tutorial.rd.html +125 -68
  11. data/lib/bio.rb +21 -6
  12. data/lib/bio/appl/bl2seq/report.rb +11 -202
  13. data/lib/bio/appl/blast/format0.rb +0 -193
  14. data/lib/bio/appl/blast/report.rb +2 -147
  15. data/lib/bio/appl/blast/wublast.rb +0 -208
  16. data/lib/bio/appl/fasta.rb +4 -19
  17. data/lib/bio/appl/fasta/format10.rb +0 -14
  18. data/lib/bio/appl/genscan/report.rb +0 -176
  19. data/lib/bio/appl/hmmer.rb +1 -15
  20. data/lib/bio/appl/hmmer/report.rb +0 -100
  21. data/lib/bio/appl/meme/mast.rb +156 -0
  22. data/lib/bio/appl/meme/mast/report.rb +91 -0
  23. data/lib/bio/appl/meme/motif.rb +48 -0
  24. data/lib/bio/appl/psort.rb +0 -111
  25. data/lib/bio/appl/psort/report.rb +1 -45
  26. data/lib/bio/appl/pts1.rb +2 -4
  27. data/lib/bio/appl/sosui/report.rb +5 -54
  28. data/lib/bio/appl/targetp/report.rb +1 -104
  29. data/lib/bio/appl/tmhmm/report.rb +0 -36
  30. data/lib/bio/command.rb +94 -10
  31. data/lib/bio/data/aa.rb +1 -77
  32. data/lib/bio/data/codontable.rb +1 -95
  33. data/lib/bio/data/na.rb +1 -26
  34. data/lib/bio/db/aaindex.rb +1 -38
  35. data/lib/bio/db/fasta.rb +1 -134
  36. data/lib/bio/db/fasta/format_qual.rb +204 -0
  37. data/lib/bio/db/fasta/qual.rb +102 -0
  38. data/lib/bio/db/fastq.rb +645 -0
  39. data/lib/bio/db/fastq/fastq_to_biosequence.rb +40 -0
  40. data/lib/bio/db/fastq/format_fastq.rb +175 -0
  41. data/lib/bio/db/genbank/genbank.rb +1 -86
  42. data/lib/bio/db/gff.rb +0 -17
  43. data/lib/bio/db/go.rb +4 -72
  44. data/lib/bio/db/kegg/common.rb +112 -0
  45. data/lib/bio/db/kegg/compound.rb +29 -20
  46. data/lib/bio/db/kegg/drug.rb +74 -34
  47. data/lib/bio/db/kegg/enzyme.rb +26 -5
  48. data/lib/bio/db/kegg/genes.rb +128 -15
  49. data/lib/bio/db/kegg/genome.rb +3 -41
  50. data/lib/bio/db/kegg/glycan.rb +19 -24
  51. data/lib/bio/db/kegg/orthology.rb +16 -56
  52. data/lib/bio/db/kegg/reaction.rb +81 -28
  53. data/lib/bio/db/kegg/taxonomy.rb +1 -52
  54. data/lib/bio/db/litdb.rb +1 -16
  55. data/lib/bio/db/phyloxml/phyloxml.xsd +582 -0
  56. data/lib/bio/db/phyloxml/phyloxml_elements.rb +1174 -0
  57. data/lib/bio/db/phyloxml/phyloxml_parser.rb +954 -0
  58. data/lib/bio/db/phyloxml/phyloxml_writer.rb +228 -0
  59. data/lib/bio/db/prosite.rb +2 -95
  60. data/lib/bio/db/rebase.rb +5 -6
  61. data/lib/bio/db/sanger_chromatogram/abif.rb +120 -0
  62. data/lib/bio/db/sanger_chromatogram/chromatogram.rb +133 -0
  63. data/lib/bio/db/sanger_chromatogram/chromatogram_to_biosequence.rb +32 -0
  64. data/lib/bio/db/sanger_chromatogram/scf.rb +210 -0
  65. data/lib/bio/io/das.rb +0 -44
  66. data/lib/bio/io/ddbjxml.rb +1 -181
  67. data/lib/bio/io/flatfile.rb +1 -7
  68. data/lib/bio/io/flatfile/autodetection.rb +6 -0
  69. data/lib/bio/io/keggapi.rb +0 -442
  70. data/lib/bio/io/ncbirest.rb +130 -132
  71. data/lib/bio/io/ncbisoap.rb +2 -1
  72. data/lib/bio/io/pubmed.rb +0 -88
  73. data/lib/bio/location.rb +0 -73
  74. data/lib/bio/pathway.rb +0 -171
  75. data/lib/bio/sequence.rb +18 -1
  76. data/lib/bio/sequence/adapter.rb +3 -0
  77. data/lib/bio/sequence/format.rb +16 -0
  78. data/lib/bio/sequence/quality_score.rb +205 -0
  79. data/lib/bio/tree.rb +70 -5
  80. data/lib/bio/util/restriction_enzyme/single_strand.rb +3 -2
  81. data/lib/bio/util/sirna.rb +1 -23
  82. data/lib/bio/version.rb +1 -1
  83. data/sample/demo_aaindex.rb +67 -0
  84. data/sample/demo_aminoacid.rb +101 -0
  85. data/sample/demo_bl2seq_report.rb +220 -0
  86. data/sample/demo_blast_report.rb +285 -0
  87. data/sample/demo_codontable.rb +119 -0
  88. data/sample/demo_das.rb +105 -0
  89. data/sample/demo_ddbjxml.rb +212 -0
  90. data/sample/demo_fasta_remote.rb +51 -0
  91. data/sample/demo_fastaformat.rb +105 -0
  92. data/sample/demo_genbank.rb +132 -0
  93. data/sample/demo_genscan_report.rb +202 -0
  94. data/sample/demo_gff1.rb +49 -0
  95. data/sample/demo_go.rb +98 -0
  96. data/sample/demo_hmmer_report.rb +149 -0
  97. data/sample/demo_kegg_compound.rb +57 -0
  98. data/sample/demo_kegg_drug.rb +65 -0
  99. data/sample/demo_kegg_genome.rb +74 -0
  100. data/sample/demo_kegg_glycan.rb +72 -0
  101. data/sample/demo_kegg_orthology.rb +62 -0
  102. data/sample/demo_kegg_reaction.rb +66 -0
  103. data/sample/demo_kegg_taxonomy.rb +92 -0
  104. data/sample/demo_keggapi.rb +502 -0
  105. data/sample/demo_litdb.rb +42 -0
  106. data/sample/demo_locations.rb +99 -0
  107. data/sample/demo_ncbi_rest.rb +130 -0
  108. data/sample/demo_nucleicacid.rb +49 -0
  109. data/sample/demo_pathway.rb +196 -0
  110. data/sample/demo_prosite.rb +120 -0
  111. data/sample/demo_psort.rb +138 -0
  112. data/sample/demo_psort_report.rb +70 -0
  113. data/sample/demo_pubmed.rb +118 -0
  114. data/sample/demo_sirna.rb +63 -0
  115. data/sample/demo_sosui_report.rb +89 -0
  116. data/sample/demo_targetp_report.rb +135 -0
  117. data/sample/demo_tmhmm_report.rb +68 -0
  118. data/sample/pmfetch.rb +13 -4
  119. data/sample/pmsearch.rb +15 -4
  120. data/sample/test_phyloxml_big.rb +205 -0
  121. data/test/bioruby_test_helper.rb +61 -0
  122. data/test/data/KEGG/1.1.1.1.enzyme +935 -0
  123. data/test/data/KEGG/C00025.compound +102 -0
  124. data/test/data/KEGG/D00063.drug +104 -0
  125. data/test/data/KEGG/G00024.glycan +47 -0
  126. data/test/data/KEGG/G01366.glycan +18 -0
  127. data/test/data/KEGG/K02338.orthology +902 -0
  128. data/test/data/KEGG/R00006.reaction +14 -0
  129. data/test/data/fastq/README.txt +109 -0
  130. data/test/data/fastq/error_diff_ids.fastq +20 -0
  131. data/test/data/fastq/error_double_qual.fastq +22 -0
  132. data/test/data/fastq/error_double_seq.fastq +22 -0
  133. data/test/data/fastq/error_long_qual.fastq +20 -0
  134. data/test/data/fastq/error_no_qual.fastq +20 -0
  135. data/test/data/fastq/error_qual_del.fastq +20 -0
  136. data/test/data/fastq/error_qual_escape.fastq +20 -0
  137. data/test/data/fastq/error_qual_null.fastq +0 -0
  138. data/test/data/fastq/error_qual_space.fastq +21 -0
  139. data/test/data/fastq/error_qual_tab.fastq +21 -0
  140. data/test/data/fastq/error_qual_unit_sep.fastq +20 -0
  141. data/test/data/fastq/error_qual_vtab.fastq +20 -0
  142. data/test/data/fastq/error_short_qual.fastq +20 -0
  143. data/test/data/fastq/error_spaces.fastq +20 -0
  144. data/test/data/fastq/error_tabs.fastq +21 -0
  145. data/test/data/fastq/error_trunc_at_plus.fastq +19 -0
  146. data/test/data/fastq/error_trunc_at_qual.fastq +19 -0
  147. data/test/data/fastq/error_trunc_at_seq.fastq +18 -0
  148. data/test/data/fastq/error_trunc_in_plus.fastq +19 -0
  149. data/test/data/fastq/error_trunc_in_qual.fastq +20 -0
  150. data/test/data/fastq/error_trunc_in_seq.fastq +18 -0
  151. data/test/data/fastq/error_trunc_in_title.fastq +17 -0
  152. data/test/data/fastq/illumina_full_range_as_illumina.fastq +8 -0
  153. data/test/data/fastq/illumina_full_range_as_sanger.fastq +8 -0
  154. data/test/data/fastq/illumina_full_range_as_solexa.fastq +8 -0
  155. data/test/data/fastq/illumina_full_range_original_illumina.fastq +8 -0
  156. data/test/data/fastq/longreads_as_illumina.fastq +40 -0
  157. data/test/data/fastq/longreads_as_sanger.fastq +40 -0
  158. data/test/data/fastq/longreads_as_solexa.fastq +40 -0
  159. data/test/data/fastq/longreads_original_sanger.fastq +120 -0
  160. data/test/data/fastq/misc_dna_as_illumina.fastq +16 -0
  161. data/test/data/fastq/misc_dna_as_sanger.fastq +16 -0
  162. data/test/data/fastq/misc_dna_as_solexa.fastq +16 -0
  163. data/test/data/fastq/misc_dna_original_sanger.fastq +16 -0
  164. data/test/data/fastq/misc_rna_as_illumina.fastq +16 -0
  165. data/test/data/fastq/misc_rna_as_sanger.fastq +16 -0
  166. data/test/data/fastq/misc_rna_as_solexa.fastq +16 -0
  167. data/test/data/fastq/misc_rna_original_sanger.fastq +16 -0
  168. data/test/data/fastq/sanger_full_range_as_illumina.fastq +8 -0
  169. data/test/data/fastq/sanger_full_range_as_sanger.fastq +8 -0
  170. data/test/data/fastq/sanger_full_range_as_solexa.fastq +8 -0
  171. data/test/data/fastq/sanger_full_range_original_sanger.fastq +8 -0
  172. data/test/data/fastq/solexa_full_range_as_illumina.fastq +8 -0
  173. data/test/data/fastq/solexa_full_range_as_sanger.fastq +8 -0
  174. data/test/data/fastq/solexa_full_range_as_solexa.fastq +8 -0
  175. data/test/data/fastq/solexa_full_range_original_solexa.fastq +8 -0
  176. data/test/data/fastq/wrapping_as_illumina.fastq +12 -0
  177. data/test/data/fastq/wrapping_as_sanger.fastq +12 -0
  178. data/test/data/fastq/wrapping_as_solexa.fastq +12 -0
  179. data/test/data/fastq/wrapping_original_sanger.fastq +24 -0
  180. data/test/data/meme/db +0 -0
  181. data/test/data/meme/mast +0 -0
  182. data/test/data/meme/mast.out +13 -0
  183. data/test/data/meme/meme.out +3 -0
  184. data/test/data/phyloxml/apaf.xml +666 -0
  185. data/test/data/phyloxml/bcl_2.xml +2097 -0
  186. data/test/data/phyloxml/made_up.xml +144 -0
  187. data/test/data/phyloxml/ncbi_taxonomy_mollusca_short.xml +65 -0
  188. data/test/data/phyloxml/phyloxml_examples.xml +415 -0
  189. data/test/data/sanger_chromatogram/test_chromatogram_abif.ab1 +0 -0
  190. data/test/data/sanger_chromatogram/test_chromatogram_scf_v2.scf +0 -0
  191. data/test/data/sanger_chromatogram/test_chromatogram_scf_v3.scf +0 -0
  192. data/test/functional/bio/appl/test_pts1.rb +7 -5
  193. data/test/functional/bio/io/test_ensembl.rb +4 -3
  194. data/test/functional/bio/io/test_pubmed.rb +9 -3
  195. data/test/functional/bio/io/test_soapwsdl.rb +5 -4
  196. data/test/functional/bio/io/test_togows.rb +5 -4
  197. data/test/functional/bio/sequence/test_output_embl.rb +6 -4
  198. data/test/functional/bio/test_command.rb +54 -5
  199. data/test/runner.rb +5 -3
  200. data/test/unit/bio/appl/bl2seq/test_report.rb +5 -4
  201. data/test/unit/bio/appl/blast/test_ncbioptions.rb +4 -2
  202. data/test/unit/bio/appl/blast/test_report.rb +5 -4
  203. data/test/unit/bio/appl/blast/test_rpsblast.rb +5 -4
  204. data/test/unit/bio/appl/gcg/test_msf.rb +5 -5
  205. data/test/unit/bio/appl/genscan/test_report.rb +8 -9
  206. data/test/unit/bio/appl/hmmer/test_report.rb +5 -4
  207. data/test/unit/bio/appl/iprscan/test_report.rb +6 -5
  208. data/test/unit/bio/appl/mafft/test_report.rb +6 -5
  209. data/test/unit/bio/appl/meme/mast/test_report.rb +46 -0
  210. data/test/unit/bio/appl/meme/test_mast.rb +103 -0
  211. data/test/unit/bio/appl/meme/test_motif.rb +38 -0
  212. data/test/unit/bio/appl/paml/codeml/test_rates.rb +5 -4
  213. data/test/unit/bio/appl/paml/codeml/test_report.rb +5 -4
  214. data/test/unit/bio/appl/paml/test_codeml.rb +5 -4
  215. data/test/unit/bio/appl/sim4/test_report.rb +5 -4
  216. data/test/unit/bio/appl/sosui/test_report.rb +6 -5
  217. data/test/unit/bio/appl/targetp/test_report.rb +5 -3
  218. data/test/unit/bio/appl/test_blast.rb +5 -4
  219. data/test/unit/bio/appl/test_fasta.rb +4 -2
  220. data/test/unit/bio/appl/test_pts1.rb +4 -2
  221. data/test/unit/bio/appl/tmhmm/test_report.rb +6 -5
  222. data/test/unit/bio/data/test_aa.rb +5 -3
  223. data/test/unit/bio/data/test_codontable.rb +5 -4
  224. data/test/unit/bio/data/test_na.rb +5 -3
  225. data/test/unit/bio/db/biosql/tc_biosql.rb +5 -1
  226. data/test/unit/bio/db/embl/test_common.rb +4 -2
  227. data/test/unit/bio/db/embl/test_embl.rb +6 -6
  228. data/test/unit/bio/db/embl/test_embl_rel89.rb +6 -6
  229. data/test/unit/bio/db/embl/test_embl_to_bioseq.rb +7 -8
  230. data/test/unit/bio/db/embl/test_sptr.rb +6 -8
  231. data/test/unit/bio/db/embl/test_uniprot.rb +6 -5
  232. data/test/unit/bio/db/fasta/test_format_qual.rb +346 -0
  233. data/test/unit/bio/db/kegg/test_compound.rb +146 -0
  234. data/test/unit/bio/db/kegg/test_drug.rb +194 -0
  235. data/test/unit/bio/db/kegg/test_enzyme.rb +241 -0
  236. data/test/unit/bio/db/kegg/test_genes.rb +32 -4
  237. data/test/unit/bio/db/kegg/test_glycan.rb +260 -0
  238. data/test/unit/bio/db/kegg/test_orthology.rb +50 -0
  239. data/test/unit/bio/db/kegg/test_reaction.rb +96 -0
  240. data/test/unit/bio/db/pdb/test_pdb.rb +4 -2
  241. data/test/unit/bio/db/sanger_chromatogram/test_abif.rb +76 -0
  242. data/test/unit/bio/db/sanger_chromatogram/test_scf.rb +98 -0
  243. data/test/unit/bio/db/test_aaindex.rb +6 -6
  244. data/test/unit/bio/db/test_fasta.rb +5 -46
  245. data/test/unit/bio/db/test_fastq.rb +829 -0
  246. data/test/unit/bio/db/test_gff.rb +4 -2
  247. data/test/unit/bio/db/test_lasergene.rb +7 -5
  248. data/test/unit/bio/db/test_medline.rb +4 -2
  249. data/test/unit/bio/db/test_newick.rb +6 -6
  250. data/test/unit/bio/db/test_nexus.rb +4 -2
  251. data/test/unit/bio/db/test_phyloxml.rb +769 -0
  252. data/test/unit/bio/db/test_phyloxml_writer.rb +328 -0
  253. data/test/unit/bio/db/test_prosite.rb +6 -5
  254. data/test/unit/bio/db/test_qual.rb +63 -0
  255. data/test/unit/bio/db/test_rebase.rb +5 -3
  256. data/test/unit/bio/db/test_soft.rb +7 -6
  257. data/test/unit/bio/io/flatfile/test_autodetection.rb +6 -7
  258. data/test/unit/bio/io/flatfile/test_buffer.rb +6 -5
  259. data/test/unit/bio/io/flatfile/test_splitter.rb +4 -4
  260. data/test/unit/bio/io/test_ddbjxml.rb +4 -3
  261. data/test/unit/bio/io/test_ensembl.rb +5 -3
  262. data/test/unit/bio/io/test_fastacmd.rb +4 -3
  263. data/test/unit/bio/io/test_flatfile.rb +6 -5
  264. data/test/unit/bio/io/test_soapwsdl.rb +4 -3
  265. data/test/unit/bio/io/test_togows.rb +4 -2
  266. data/test/unit/bio/sequence/test_aa.rb +5 -3
  267. data/test/unit/bio/sequence/test_common.rb +4 -2
  268. data/test/unit/bio/sequence/test_compat.rb +4 -2
  269. data/test/unit/bio/sequence/test_dblink.rb +5 -3
  270. data/test/unit/bio/sequence/test_na.rb +4 -2
  271. data/test/unit/bio/sequence/test_quality_score.rb +330 -0
  272. data/test/unit/bio/shell/plugin/test_seq.rb +5 -3
  273. data/test/unit/bio/test_alignment.rb +5 -3
  274. data/test/unit/bio/test_command.rb +4 -3
  275. data/test/unit/bio/test_db.rb +5 -3
  276. data/test/unit/bio/test_feature.rb +4 -2
  277. data/test/unit/bio/test_location.rb +4 -2
  278. data/test/unit/bio/test_map.rb +5 -3
  279. data/test/unit/bio/test_pathway.rb +4 -2
  280. data/test/unit/bio/test_reference.rb +4 -2
  281. data/test/unit/bio/test_sequence.rb +5 -3
  282. data/test/unit/bio/test_shell.rb +5 -3
  283. data/test/unit/bio/test_tree.rb +6 -6
  284. data/test/unit/bio/util/restriction_enzyme/analysis/test_calculated_cuts.rb +4 -2
  285. data/test/unit/bio/util/restriction_enzyme/analysis/test_cut_ranges.rb +4 -2
  286. data/test/unit/bio/util/restriction_enzyme/analysis/test_sequence_range.rb +4 -2
  287. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_aligned_strands.rb +4 -2
  288. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair.rb +4 -2
  289. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair_in_enzyme_notation.rb +4 -2
  290. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations.rb +4 -2
  291. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations_in_enzyme_notation.rb +4 -2
  292. data/test/unit/bio/util/restriction_enzyme/single_strand/test_cut_locations_in_enzyme_notation.rb +4 -2
  293. data/test/unit/bio/util/restriction_enzyme/test_analysis.rb +4 -2
  294. data/test/unit/bio/util/restriction_enzyme/test_cut_symbol.rb +4 -2
  295. data/test/unit/bio/util/restriction_enzyme/test_double_stranded.rb +4 -2
  296. data/test/unit/bio/util/restriction_enzyme/test_single_strand.rb +17 -13
  297. data/test/unit/bio/util/restriction_enzyme/test_single_strand_complement.rb +17 -13
  298. data/test/unit/bio/util/restriction_enzyme/test_string_formatting.rb +4 -2
  299. data/test/unit/bio/util/test_color_scheme.rb +5 -3
  300. data/test/unit/bio/util/test_contingency_table.rb +5 -3
  301. data/test/unit/bio/util/test_restriction_enzyme.rb +4 -2
  302. data/test/unit/bio/util/test_sirna.rb +6 -4
  303. metadata +147 -2
@@ -4,7 +4,7 @@
4
4
  # Copyright:: Copyright (C) 2001 Toshiaki Katayama <k@bioruby.org>
5
5
  # License:: The Ruby License
6
6
  #
7
- # $Id: litdb.rb,v 0.10 2007/04/05 23:35:40 trevor Exp $
7
+ # $Id:$
8
8
  #
9
9
 
10
10
  require 'bio/db'
@@ -90,18 +90,3 @@ module Bio
90
90
  end
91
91
 
92
92
 
93
- if __FILE__ == $0
94
- require 'bio/io/fetch'
95
-
96
- entry = Bio::Fetch.query('litdb', '0308004')
97
- puts entry
98
- p Bio::LITDB.new(entry).reference
99
-
100
- entry = Bio::Fetch.query('litdb', '0309094')
101
- puts entry
102
- p Bio::LITDB.new(entry).reference
103
-
104
- entry = Bio::Fetch.query('litdb', '0309093')
105
- puts entry
106
- p Bio::LITDB.new(entry).reference
107
- end
@@ -0,0 +1,582 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- -->
3
+ <!-- phyloXML -->
4
+ <!-- -->
5
+ <!-- schema in XMLSchema -->
6
+ <!-- -->
7
+ <!-- License: The phyloXML XML Schema Definition is -->
8
+ <!-- dual-licensed under the LGPL or Ruby's -->
9
+ <!-- License. -->
10
+ <!-- You can redistribute and/or modify -->
11
+ <!-- it under either the terms of the LGPL, -->
12
+ <!-- or Ruby's License. -->
13
+ <!-- see: http://www.ruby-lang.org/en/about/license.txt -->
14
+ <!-- -->
15
+ <!-- Copyright (c) 2008-2009 Christian M Zmasek -->
16
+ <!-- -->
17
+ <!-- www.phyloxml.org -->
18
+ <!-- Version: 1.10 -->
19
+ <!-- Last modified: 2009.11.17 by Christian M Zmasek -->
20
+ <!-- -->
21
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:phy="http://www.phyloxml.org"
22
+ targetNamespace="http://www.phyloxml.org" elementFormDefault="qualified" attributeFormDefault="unqualified">
23
+ <xs:annotation>
24
+ <xs:documentation> phyloXML is an XML language to describe evolutionary trees and associated data. Version: 1.10.
25
+ License: dual-licensed under the LGPL or Ruby's License. Copyright (c) 2008-2009 Christian M Zmasek.</xs:documentation>
26
+ </xs:annotation>
27
+ <!-- phyloxml is the root element:-->
28
+ <xs:element name="phyloxml" type="phy:Phyloxml"/>
29
+ <!-- phyloXML definition:-->
30
+ <xs:complexType name="Phyloxml">
31
+ <xs:annotation>
32
+ <xs:documentation> 'phyloxml' is the name of the root element. Phyloxml contains an arbitrary number of
33
+ 'phylogeny' elements (each representing one phylogeny) possibly followed by elements from other namespaces.
34
+ </xs:documentation>
35
+ </xs:annotation>
36
+ <xs:sequence maxOccurs="unbounded">
37
+ <xs:element name="phylogeny" type="phy:Phylogeny" minOccurs="0" maxOccurs="unbounded"/>
38
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##other"/>
39
+ </xs:sequence>
40
+ </xs:complexType>
41
+ <!-- Phylogeny:-->
42
+ <xs:complexType name="Phylogeny">
43
+ <xs:annotation>
44
+ <xs:documentation> Element Phylogeny is used to represent a phylogeny. The required attribute 'rooted' is used
45
+ to indicate whether the phylogeny is rooted or not. The attribute 'rerootable' can be used to indicate that
46
+ the phylogeny is not allowed to be rooted differently (i.e. because it is associated with root dependent
47
+ data, such as gene duplications). The attribute 'type' can be used to indicate the type of phylogeny (i.e.
48
+ 'gene tree'). It is recommended to use the attribute 'branch_length_unit' if the phylogeny has branch
49
+ lengths. Element clade is used in a recursive manner to describe the topology of a phylogenetic
50
+ tree.</xs:documentation>
51
+ </xs:annotation>
52
+ <xs:sequence>
53
+ <xs:element name="name" type="xs:token" minOccurs="0"/>
54
+ <xs:element name="id" type="phy:Id" minOccurs="0"/>
55
+ <xs:element name="description" type="xs:token" minOccurs="0"/>
56
+ <xs:element name="date" type="xs:dateTime" minOccurs="0"/>
57
+ <xs:element name="confidence" type="phy:Confidence" minOccurs="0" maxOccurs="unbounded"/>
58
+ <xs:element name="clade" type="phy:Clade" minOccurs="0"/>
59
+ <xs:element name="clade_relation" type="phy:CladeRelation" minOccurs="0" maxOccurs="unbounded"/>
60
+ <xs:element name="sequence_relation" type="phy:SequenceRelation" minOccurs="0" maxOccurs="unbounded"/>
61
+ <xs:element name="property" type="phy:Property" minOccurs="0" maxOccurs="unbounded"/>
62
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##other"/>
63
+ </xs:sequence>
64
+ <xs:attribute name="rooted" type="xs:boolean" use="required"/>
65
+ <xs:attribute name="rerootable" type="xs:boolean"/>
66
+ <xs:attribute name="branch_length_unit" type="xs:token"/>
67
+ <xs:attribute name="type" type="xs:token"/>
68
+ </xs:complexType>
69
+ <!-- Clade:-->
70
+ <xs:complexType name="Clade">
71
+ <xs:annotation>
72
+ <xs:documentation> Element Clade is used in a recursive manner to describe the topology of a phylogenetic tree.
73
+ The parent branch length of a clade can be described either with the 'branch_length' element or the
74
+ 'branch_length' attribute (it is not recommended to use both at the same time, though). Usage of the
75
+ 'branch_length' attribute allows for a less verbose description. Element 'confidence' is used to indicate
76
+ the support for a clade/parent branch. Element 'events' is used to describe such events as gene-duplications
77
+ at the root node/parent branch of a clade. Element 'width' is the branch width for this clade (including
78
+ parent branch). Both 'color' and 'width' elements apply for the whole clade unless overwritten in-sub
79
+ clades. Attribute 'id_source' is used to link other elements to a clade (on the xml-level).
80
+ </xs:documentation>
81
+ </xs:annotation>
82
+ <xs:sequence>
83
+ <xs:element name="name" type="xs:token" minOccurs="0"/>
84
+ <xs:element name="branch_length" type="xs:double" minOccurs="0"/>
85
+ <xs:element name="confidence" type="phy:Confidence" minOccurs="0" maxOccurs="unbounded"/>
86
+ <xs:element name="width" type="xs:double" minOccurs="0"/>
87
+ <xs:element name="color" type="phy:BranchColor" minOccurs="0"/>
88
+ <xs:element name="node_id" type="phy:Id" minOccurs="0"/>
89
+ <xs:element name="taxonomy" type="phy:Taxonomy" minOccurs="0" maxOccurs="unbounded"/>
90
+ <xs:element name="sequence" type="phy:Sequence" minOccurs="0" maxOccurs="unbounded"/>
91
+ <xs:element name="events" type="phy:Events" minOccurs="0"/>
92
+ <xs:element name="binary_characters" type="phy:BinaryCharacters" minOccurs="0"/>
93
+ <xs:element name="distribution" type="phy:Distribution" minOccurs="0" maxOccurs="unbounded"/>
94
+ <xs:element name="date" type="phy:Date" minOccurs="0"/>
95
+ <xs:element name="reference" type="phy:Reference" minOccurs="0" maxOccurs="unbounded"/>
96
+ <xs:element name="property" type="phy:Property" minOccurs="0" maxOccurs="unbounded"/>
97
+ <xs:element name="clade" type="phy:Clade" minOccurs="0" maxOccurs="unbounded"/>
98
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##other"/>
99
+ </xs:sequence>
100
+ <xs:attribute name="branch_length" type="xs:double"/>
101
+ <xs:attribute name="id_source" type="phy:id_source"/>
102
+ </xs:complexType>
103
+ <!-- Taxonomy:-->
104
+ <xs:complexType name="Taxonomy">
105
+ <xs:annotation>
106
+ <xs:documentation> Element Taxonomy is used to describe taxonomic information for a clade. Element 'code' is
107
+ intended to store UniProt/Swiss-Prot style organism codes (e.g. 'APLCA' for the California sea hare 'Aplysia
108
+ californica') or other styles of mnemonics (e.g. 'Aca'). Element 'authority' is used to keep the authority,
109
+ such as 'J. G. Cooper, 1863', associated with the 'scientific_name'. Element 'id' is used for a unique
110
+ identifier of a taxon (for example '6500' with 'ncbi_taxonomy' as 'provider' for the California sea hare).
111
+ Attribute 'id_source' is used to link other elements to a taxonomy (on the xml-level).</xs:documentation>
112
+ </xs:annotation>
113
+ <xs:sequence>
114
+ <xs:element name="id" type="phy:Id" minOccurs="0"/>
115
+ <xs:element name="code" type="phy:TaxonomyCode" minOccurs="0"/>
116
+ <xs:element name="scientific_name" type="xs:token" minOccurs="0"/>
117
+ <xs:element name="authority" type="xs:token" minOccurs="0"/>
118
+ <xs:element name="common_name" type="xs:token" minOccurs="0" maxOccurs="unbounded"/>
119
+ <xs:element name="synonym" type="xs:token" minOccurs="0" maxOccurs="unbounded"/>
120
+ <xs:element name="rank" type="phy:Rank" minOccurs="0"/>
121
+ <xs:element name="uri" type="phy:Uri" minOccurs="0"/>
122
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##other"/>
123
+ </xs:sequence>
124
+ <xs:attribute name="id_source" type="phy:id_source"/>
125
+ </xs:complexType>
126
+ <xs:simpleType name="TaxonomyCode">
127
+ <xs:restriction base="xs:token">
128
+ <xs:pattern value="[a-zA-Z0-9_]{2,10}"/>
129
+ </xs:restriction>
130
+ </xs:simpleType>
131
+ <xs:simpleType name="Rank">
132
+ <xs:restriction base="xs:token">
133
+ <xs:enumeration value="domain"/>
134
+ <xs:enumeration value="kingdom"/>
135
+ <xs:enumeration value="subkingdom"/>
136
+ <xs:enumeration value="branch"/>
137
+ <xs:enumeration value="infrakingdom"/>
138
+ <xs:enumeration value="superphylum"/>
139
+ <xs:enumeration value="phylum"/>
140
+ <xs:enumeration value="subphylum"/>
141
+ <xs:enumeration value="infraphylum"/>
142
+ <xs:enumeration value="microphylum"/>
143
+ <xs:enumeration value="superdivision"/>
144
+ <xs:enumeration value="division"/>
145
+ <xs:enumeration value="subdivision"/>
146
+ <xs:enumeration value="infradivision"/>
147
+ <xs:enumeration value="superclass"/>
148
+ <xs:enumeration value="class"/>
149
+ <xs:enumeration value="subclass"/>
150
+ <xs:enumeration value="infraclass"/>
151
+ <xs:enumeration value="superlegion"/>
152
+ <xs:enumeration value="legion"/>
153
+ <xs:enumeration value="sublegion"/>
154
+ <xs:enumeration value="infralegion"/>
155
+ <xs:enumeration value="supercohort"/>
156
+ <xs:enumeration value="cohort"/>
157
+ <xs:enumeration value="subcohort"/>
158
+ <xs:enumeration value="infracohort"/>
159
+ <xs:enumeration value="superorder"/>
160
+ <xs:enumeration value="order"/>
161
+ <xs:enumeration value="suborder"/>
162
+ <xs:enumeration value="superfamily"/>
163
+ <xs:enumeration value="family"/>
164
+ <xs:enumeration value="subfamily"/>
165
+ <xs:enumeration value="supertribe"/>
166
+ <xs:enumeration value="tribe"/>
167
+ <xs:enumeration value="subtribe"/>
168
+ <xs:enumeration value="infratribe"/>
169
+ <xs:enumeration value="genus"/>
170
+ <xs:enumeration value="subgenus"/>
171
+ <xs:enumeration value="superspecies"/>
172
+ <xs:enumeration value="species"/>
173
+ <xs:enumeration value="subspecies"/>
174
+ <xs:enumeration value="variety"/>
175
+ <xs:enumeration value="subvariety"/>
176
+ <xs:enumeration value="form"/>
177
+ <xs:enumeration value="subform"/>
178
+ <xs:enumeration value="cultivar"/>
179
+ <xs:enumeration value="unknown"/>
180
+ <xs:enumeration value="other"/>
181
+ </xs:restriction>
182
+ </xs:simpleType>
183
+ <!-- Sequence:-->
184
+ <xs:complexType name="Sequence">
185
+ <xs:annotation>
186
+ <xs:documentation> Element Sequence is used to represent a molecular sequence (Protein, DNA, RNA) associated
187
+ with a node. 'symbol' is a short (maximal ten characters) symbol of the sequence (e.g. 'ACTM') whereas
188
+ 'name' is used for the full name (e.g. 'muscle Actin'). 'location' is used for the location of a sequence on
189
+ a genome/chromosome. The actual sequence can be stored with the 'mol_seq' element. Attribute 'type' is used
190
+ to indicate the type of sequence ('dna', 'rna', or 'protein'). One intended use for 'id_ref' is to link a
191
+ sequence to a taxonomy (via the taxonomy's 'id_source') in case of multiple sequences and taxonomies per
192
+ node. </xs:documentation>
193
+ </xs:annotation>
194
+ <xs:sequence>
195
+ <xs:element name="symbol" type="phy:SequenceSymbol" minOccurs="0"/>
196
+ <xs:element name="accession" type="phy:Accession" minOccurs="0"/>
197
+ <xs:element name="name" type="xs:token" minOccurs="0"/>
198
+ <xs:element name="location" type="xs:token" minOccurs="0"/>
199
+ <xs:element name="mol_seq" type="phy:MolSeq" minOccurs="0"/>
200
+ <xs:element name="uri" type="phy:Uri" minOccurs="0"/>
201
+ <xs:element name="annotation" type="phy:Annotation" minOccurs="0" maxOccurs="unbounded"/>
202
+ <xs:element name="domain_architecture" type="phy:DomainArchitecture" minOccurs="0"/>
203
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##other"/>
204
+ </xs:sequence>
205
+ <xs:attribute name="type" type="phy:SequenceType"/>
206
+ <xs:attribute name="id_source" type="phy:id_source"/>
207
+ <xs:attribute name="id_ref" type="phy:id_ref"/>
208
+ </xs:complexType>
209
+ <xs:simpleType name="SequenceSymbol">
210
+ <xs:restriction base="xs:token">
211
+ <xs:pattern value="\S{1,10}"/>
212
+ </xs:restriction>
213
+ </xs:simpleType>
214
+ <xs:complexType name="MolSeq">
215
+ <xs:annotation>
216
+ <xs:documentation> Element 'mol_seq' is used to store molecular sequences. The 'is_aligned' attribute is used
217
+ to indicated that this molecular sequence is aligned with all other sequences in the same phylogeny for
218
+ which 'is aligned' is true as well (which, in most cases, means that gaps were introduced, and that all
219
+ sequences for which 'is aligned' is true must have the same length).</xs:documentation>
220
+ </xs:annotation>
221
+ <xs:simpleContent>
222
+ <xs:extension base="phy:MolSeqChars">
223
+ <xs:attribute name="is_aligned" type="xs:boolean"/>
224
+ </xs:extension>
225
+ </xs:simpleContent>
226
+ </xs:complexType>
227
+ <xs:simpleType name="MolSeqChars">
228
+ <xs:restriction base="xs:token">
229
+ <xs:pattern value="[a-zA-Z\.\-\?\*_]+"/>
230
+ </xs:restriction>
231
+ </xs:simpleType>
232
+ <xs:simpleType name="SequenceType">
233
+ <xs:restriction base="xs:token">
234
+ <xs:enumeration value="rna"/>
235
+ <xs:enumeration value="dna"/>
236
+ <xs:enumeration value="protein"/>
237
+ </xs:restriction>
238
+ </xs:simpleType>
239
+ <!-- Accession:-->
240
+ <xs:complexType name="Accession">
241
+ <xs:annotation>
242
+ <xs:documentation> Element Accession is used to capture the local part in a sequence identifier (e.g. 'P17304'
243
+ in 'UniProtKB:P17304', in which case the 'source' attribute would be 'UniProtKB'). </xs:documentation>
244
+ </xs:annotation>
245
+ <xs:simpleContent>
246
+ <xs:extension base="xs:token">
247
+ <xs:attribute name="source" type="xs:token" use="required"/>
248
+ </xs:extension>
249
+ </xs:simpleContent>
250
+ </xs:complexType>
251
+ <!-- DomainArchitecture: -->
252
+ <xs:complexType name="DomainArchitecture">
253
+ <xs:annotation>
254
+ <xs:documentation> This is used describe the domain architecture of a protein. Attribute 'length' is the total
255
+ length of the protein</xs:documentation>
256
+ </xs:annotation>
257
+ <xs:sequence>
258
+ <xs:element name="domain" type="phy:ProteinDomain" minOccurs="1" maxOccurs="unbounded"/>
259
+ </xs:sequence>
260
+ <xs:attribute name="length" type="xs:nonNegativeInteger"/>
261
+ </xs:complexType>
262
+ <xs:complexType name="ProteinDomain">
263
+ <xs:annotation>
264
+ <xs:documentation> To represent an individual domain in a domain architecture. The name/unique identifier is
265
+ described via the 'id' attribute. 'confidence' can be used to store (i.e.) E-values.</xs:documentation>
266
+ </xs:annotation>
267
+ <xs:simpleContent>
268
+ <xs:extension base="xs:token">
269
+ <xs:attribute name="from" type="xs:nonNegativeInteger" use="required"/>
270
+ <xs:attribute name="to" type="xs:nonNegativeInteger" use="required"/>
271
+ <xs:attribute name="confidence" type="xs:double"/>
272
+ <xs:attribute name="id" type="xs:token"/>
273
+ </xs:extension>
274
+ </xs:simpleContent>
275
+ </xs:complexType>
276
+ <!-- Events:-->
277
+ <xs:complexType name="Events">
278
+ <xs:annotation>
279
+ <xs:documentation> Events at the root node of a clade (e.g. one gene duplication). </xs:documentation>
280
+ </xs:annotation>
281
+ <xs:sequence>
282
+ <xs:element name="type" type="phy:EventType" minOccurs="0"/>
283
+ <xs:element name="duplications" type="xs:nonNegativeInteger" minOccurs="0"/>
284
+ <xs:element name="speciations" type="xs:nonNegativeInteger" minOccurs="0"/>
285
+ <xs:element name="losses" type="xs:nonNegativeInteger" minOccurs="0"/>
286
+ <xs:element name="confidence" type="phy:Confidence" minOccurs="0"/>
287
+ </xs:sequence>
288
+ </xs:complexType>
289
+ <xs:simpleType name="EventType">
290
+ <xs:restriction base="xs:token">
291
+ <xs:enumeration value="transfer"/>
292
+ <xs:enumeration value="fusion"/>
293
+ <xs:enumeration value="speciation_or_duplication"/>
294
+ <xs:enumeration value="other"/>
295
+ <xs:enumeration value="mixed"/>
296
+ <xs:enumeration value="unassigned"/>
297
+ </xs:restriction>
298
+ </xs:simpleType>
299
+ <!--BinaryCharacters:-->
300
+ <xs:complexType name="BinaryCharacters">
301
+ <xs:annotation>
302
+ <xs:documentation> The names and/or counts of binary characters present, gained, and lost at the root of a
303
+ clade. </xs:documentation>
304
+ </xs:annotation>
305
+ <xs:sequence>
306
+ <xs:element name="gained" type="phy:BinaryCharacterList" minOccurs="0"/>
307
+ <xs:element name="lost" type="phy:BinaryCharacterList" minOccurs="0"/>
308
+ <xs:element name="present" type="phy:BinaryCharacterList" minOccurs="0"/>
309
+ <xs:element name="absent" type="phy:BinaryCharacterList" minOccurs="0"/>
310
+ </xs:sequence>
311
+ <xs:attribute name="type" type="xs:token"/>
312
+ <xs:attribute name="gained_count" type="xs:nonNegativeInteger"/>
313
+ <xs:attribute name="lost_count" type="xs:nonNegativeInteger"/>
314
+ <xs:attribute name="present_count" type="xs:nonNegativeInteger"/>
315
+ <xs:attribute name="absent_count" type="xs:nonNegativeInteger"/>
316
+ </xs:complexType>
317
+ <xs:complexType name="BinaryCharacterList">
318
+ <xs:sequence>
319
+ <xs:element name="bc" type="xs:token" maxOccurs="unbounded"/>
320
+ </xs:sequence>
321
+ </xs:complexType>
322
+ <!-- Reference:-->
323
+ <xs:complexType name="Reference">
324
+ <xs:annotation>
325
+ <xs:documentation> A literature reference for a clade. It is recommended to use the 'doi' attribute instead of
326
+ the free text 'desc' element whenever possible. </xs:documentation>
327
+ </xs:annotation>
328
+ <xs:sequence>
329
+ <xs:element name="desc" type="xs:token" minOccurs="0"/>
330
+ </xs:sequence>
331
+ <xs:attribute name="doi" type="phy:Doi"/>
332
+ </xs:complexType>
333
+ <xs:simpleType name="Doi">
334
+ <xs:restriction base="xs:token">
335
+ <xs:pattern value="[a-zA-Z0-9_\.]+/\S+"/>
336
+ </xs:restriction>
337
+ </xs:simpleType>
338
+ <!-- Annotation:-->
339
+ <xs:complexType name="Annotation">
340
+ <xs:annotation>
341
+ <xs:documentation> The annotation of a molecular sequence. It is recommended to annotate by using the optional
342
+ 'ref' attribute (some examples of acceptable values for the ref attribute: 'GO:0008270',
343
+ 'KEGG:Tetrachloroethene degradation', 'EC:1.1.1.1'). Optional element 'desc' allows for a free text
344
+ description. Optional element 'confidence' is used to state the type and value of support for a annotation.
345
+ Similarly, optional attribute 'evidence' is used to describe the evidence for a annotation as free text
346
+ (e.g. 'experimental'). Optional element 'property' allows for further, typed and referenced annotations from
347
+ external resources.</xs:documentation>
348
+ </xs:annotation>
349
+ <xs:sequence>
350
+ <xs:element name="desc" type="xs:token" minOccurs="0"/>
351
+ <xs:element name="confidence" type="phy:Confidence" minOccurs="0"/>
352
+ <xs:element name="property" type="phy:Property" minOccurs="0" maxOccurs="unbounded"/>
353
+ <xs:element name="uri" type="phy:Uri" minOccurs="0"/>
354
+ </xs:sequence>
355
+ <xs:attribute name="ref" type="phy:ref"/>
356
+ <xs:attribute name="source" type="xs:token"/>
357
+ <xs:attribute name="evidence" type="xs:token"/>
358
+ <xs:attribute name="type" type="xs:token"/>
359
+ </xs:complexType>
360
+ <!-- Property:-->
361
+ <xs:complexType name="Property" mixed="true">
362
+ <xs:annotation>
363
+ <xs:documentation> Property allows for typed and referenced properties from external resources to be attached
364
+ to 'Phylogeny', 'Clade', and 'Annotation'. The value of a property is its mixed (free text) content.
365
+ Attribute 'datatype' indicates the type of a property and is limited to xsd-datatypes (e.g. 'xsd:string',
366
+ 'xsd:boolean', 'xsd:integer', 'xsd:decimal', 'xsd:float', 'xsd:double', 'xsd:date', 'xsd:anyURI'). Attribute
367
+ 'applies_to' indicates the item to which a property applies to (e.g. 'node' for the parent node of a clade,
368
+ 'parent_branch' for the parent branch of a clade). Attribute 'id_ref' allows to attached a property
369
+ specifically to one element (on the xml-level). Optional attribute 'unit' is used to indicate the unit of
370
+ the property. An example: &lt;property datatype="xsd:integer" ref="NOAA:depth" applies_to="clade"
371
+ unit="METRIC:m"&gt; 200 &lt;/property&gt; </xs:documentation>
372
+ </xs:annotation>
373
+ <xs:attribute name="ref" type="phy:ref" use="required"/>
374
+ <xs:attribute name="unit" type="phy:ref"/>
375
+ <xs:attribute name="datatype" type="phy:PropertyDataType" use="required"/>
376
+ <xs:attribute name="applies_to" type="phy:AppliesTo" use="required"/>
377
+ <xs:attribute name="id_ref" type="phy:id_ref"/>
378
+ </xs:complexType>
379
+ <xs:simpleType name="ref">
380
+ <xs:restriction base="xs:token">
381
+ <xs:pattern value="[a-zA-Z0-9_]+:[a-zA-Z0-9_\.\-\s]+"/>
382
+ </xs:restriction>
383
+ </xs:simpleType>
384
+ <xs:simpleType name="AppliesTo">
385
+ <xs:restriction base="xs:token">
386
+ <xs:enumeration value="phylogeny"/>
387
+ <xs:enumeration value="clade"/>
388
+ <xs:enumeration value="node"/>
389
+ <xs:enumeration value="annotation"/>
390
+ <xs:enumeration value="parent_branch"/>
391
+ <xs:enumeration value="other"/>
392
+ </xs:restriction>
393
+ </xs:simpleType>
394
+ <xs:simpleType name="PropertyDataType">
395
+ <xs:restriction base="xs:token">
396
+ <xs:enumeration value="xsd:string"/>
397
+ <xs:enumeration value="xsd:boolean"/>
398
+ <xs:enumeration value="xsd:decimal"/>
399
+ <xs:enumeration value="xsd:float"/>
400
+ <xs:enumeration value="xsd:double"/>
401
+ <xs:enumeration value="xsd:duration"/>
402
+ <xs:enumeration value="xsd:dateTime"/>
403
+ <xs:enumeration value="xsd:time"/>
404
+ <xs:enumeration value="xsd:date"/>
405
+ <xs:enumeration value="xsd:gYearMonth"/>
406
+ <xs:enumeration value="xsd:gYear"/>
407
+ <xs:enumeration value="xsd:gMonthDay"/>
408
+ <xs:enumeration value="xsd:gDay"/>
409
+ <xs:enumeration value="xsd:gMonth"/>
410
+ <xs:enumeration value="xsd:hexBinary"/>
411
+ <xs:enumeration value="xsd:base64Binary"/>
412
+ <xs:enumeration value="xsd:anyURI"/>
413
+ <xs:enumeration value="xsd:normalizedString"/>
414
+ <xs:enumeration value="xsd:token"/>
415
+ <xs:enumeration value="xsd:integer"/>
416
+ <xs:enumeration value="xsd:nonPositiveInteger"/>
417
+ <xs:enumeration value="xsd:negativeInteger"/>
418
+ <xs:enumeration value="xsd:long"/>
419
+ <xs:enumeration value="xsd:int"/>
420
+ <xs:enumeration value="xsd:short"/>
421
+ <xs:enumeration value="xsd:byte"/>
422
+ <xs:enumeration value="xsd:nonNegativeInteger"/>
423
+ <xs:enumeration value="xsd:unsignedLong"/>
424
+ <xs:enumeration value="xsd:unsignedInt"/>
425
+ <xs:enumeration value="xsd:unsignedShort"/>
426
+ <xs:enumeration value="xsd:unsignedByte"/>
427
+ <xs:enumeration value="xsd:positiveInteger"/>
428
+ </xs:restriction>
429
+ </xs:simpleType>
430
+ <!--Uri-->
431
+ <xs:complexType name="Uri">
432
+ <xs:annotation>
433
+ <xs:documentation> A uniform resource identifier. In general, this is expected to be an URL (for example, to
434
+ link to an image on a website, in which case the 'type' attribute might be 'image' and 'desc' might be
435
+ 'image of a California sea hare'). </xs:documentation>
436
+ </xs:annotation>
437
+ <xs:simpleContent>
438
+ <xs:extension base="xs:anyURI">
439
+ <xs:attribute name="desc" type="xs:token"/>
440
+ <xs:attribute name="type" type="xs:token"/>
441
+ </xs:extension>
442
+ </xs:simpleContent>
443
+ </xs:complexType>
444
+ <!-- Confidence:-->
445
+ <xs:complexType name="Confidence">
446
+ <xs:annotation>
447
+ <xs:documentation> A general purpose confidence element. For example this can be used to express the bootstrap
448
+ support value of a clade (in which case the 'type' attribute is 'bootstrap').</xs:documentation>
449
+ </xs:annotation>
450
+ <xs:simpleContent>
451
+ <xs:extension base="xs:double">
452
+ <xs:attribute name="type" type="xs:token" use="required"/>
453
+ </xs:extension>
454
+ </xs:simpleContent>
455
+ </xs:complexType>
456
+ <!-- Identifier:-->
457
+ <xs:complexType name="Id">
458
+ <xs:annotation>
459
+ <xs:documentation> A general purpose identifier element. Allows to indicate the provider (or authority) of an
460
+ identifier. </xs:documentation>
461
+ </xs:annotation>
462
+ <xs:simpleContent>
463
+ <xs:extension base="xs:token">
464
+ <xs:attribute name="provider" type="xs:token"/>
465
+ </xs:extension>
466
+ </xs:simpleContent>
467
+ </xs:complexType>
468
+ <!-- Distribution:-->
469
+ <xs:complexType name="Distribution">
470
+ <xs:annotation>
471
+ <xs:documentation> The geographic distribution of the items of a clade (species, sequences), intended for
472
+ phylogeographic applications. The location can be described either by free text in the 'desc' element and/or
473
+ by the coordinates of one or more 'Points' (similar to the 'Point' element in Google's KML format) or by
474
+ 'Polygons'. </xs:documentation>
475
+ </xs:annotation>
476
+ <xs:sequence>
477
+ <xs:element name="desc" type="xs:token" minOccurs="0"/>
478
+ <xs:element name="point" type="phy:Point" minOccurs="0" maxOccurs="unbounded"/>
479
+ <xs:element name="polygon" type="phy:Polygon" minOccurs="0" maxOccurs="unbounded"/>
480
+ </xs:sequence>
481
+ </xs:complexType>
482
+ <xs:complexType name="Point">
483
+ <xs:annotation>
484
+ <xs:documentation> The coordinates of a point with an optional altitude (used by element 'Distribution').
485
+ Required attributes are the 'geodetic_datum' used to indicate the geodetic datum (also called 'map datum',
486
+ for example Google's KML uses 'WGS84'). Attribute 'alt_unit' is the unit for the altitude (e.g. 'meter').
487
+ </xs:documentation>
488
+ </xs:annotation>
489
+ <xs:sequence>
490
+ <xs:element name="lat" type="xs:decimal"/>
491
+ <xs:element name="long" type="xs:decimal"/>
492
+ <xs:element name="alt" type="xs:decimal" minOccurs="0"/>
493
+ </xs:sequence>
494
+ <xs:attribute name="geodetic_datum" type="xs:token" use="required"/>
495
+ <xs:attribute name="alt_unit" type="xs:token"/>
496
+ </xs:complexType>
497
+ <xs:complexType name="Polygon">
498
+ <xs:annotation>
499
+ <xs:documentation> A polygon defined by a list of 'Points' (used by element 'Distribution').
500
+ </xs:documentation>
501
+ </xs:annotation>
502
+ <xs:sequence>
503
+ <xs:element name="point" type="phy:Point" minOccurs="3" maxOccurs="unbounded"/>
504
+ </xs:sequence>
505
+ </xs:complexType>
506
+ <!-- Date:-->
507
+ <xs:complexType name="Date">
508
+ <xs:annotation>
509
+ <xs:documentation> A date associated with a clade/node. Its value can be numerical by using the 'value' element
510
+ and/or free text with the 'desc' element' (e.g. 'Silurian'). If a numerical value is used, it is recommended
511
+ to employ the 'unit' attribute to indicate the type of the numerical value (e.g. 'mya' for 'million years
512
+ ago'). The elements 'minimum' and 'maximum' are used the indicate a range/confidence
513
+ interval</xs:documentation>
514
+ </xs:annotation>
515
+ <xs:sequence>
516
+ <xs:element name="desc" type="xs:token" minOccurs="0"/>
517
+ <xs:element name="value" type="xs:decimal" minOccurs="0"/>
518
+ <xs:element name="minimum" type="xs:decimal" minOccurs="0"/>
519
+ <xs:element name="maximum" type="xs:decimal" minOccurs="0"/>
520
+ </xs:sequence>
521
+ <xs:attribute name="unit" type="xs:token"/>
522
+ </xs:complexType>
523
+ <!-- BranchColor:-->
524
+ <xs:complexType name="BranchColor">
525
+ <xs:annotation>
526
+ <xs:documentation> This indicates the color of a clade when rendered (the color applies to the whole clade
527
+ unless overwritten by the color(s) of sub clades).</xs:documentation>
528
+ </xs:annotation>
529
+ <xs:sequence>
530
+ <xs:element name="red" type="xs:unsignedByte"/>
531
+ <xs:element name="green" type="xs:unsignedByte"/>
532
+ <xs:element name="blue" type="xs:unsignedByte"/>
533
+ </xs:sequence>
534
+ </xs:complexType>
535
+ <!-- SequenceRelation:-->
536
+ <xs:complexType name="SequenceRelation">
537
+ <xs:annotation>
538
+ <xs:documentation> This is used to express a typed relationship between two sequences. For example it could be
539
+ used to describe an orthology (in which case attribute 'type' is 'orthology'). </xs:documentation>
540
+ </xs:annotation>
541
+ <xs:sequence>
542
+ <xs:element name="confidence" type="phy:Confidence" minOccurs="0"/>
543
+ </xs:sequence>
544
+ <xs:attribute name="id_ref_0" type="phy:id_ref" use="required"/>
545
+ <xs:attribute name="id_ref_1" type="phy:id_ref" use="required"/>
546
+ <xs:attribute name="distance" type="xs:double"/>
547
+ <xs:attribute name="type" type="phy:SequenceRelationType" use="required"/>
548
+ </xs:complexType>
549
+ <xs:simpleType name="SequenceRelationType">
550
+ <xs:restriction base="xs:token">
551
+ <xs:enumeration value="orthology"/>
552
+ <xs:enumeration value="one_to_one_orthology"/>
553
+ <xs:enumeration value="super_orthology"/>
554
+ <xs:enumeration value="paralogy"/>
555
+ <xs:enumeration value="ultra_paralogy"/>
556
+ <xs:enumeration value="xenology"/>
557
+ <xs:enumeration value="unknown"/>
558
+ <xs:enumeration value="other"/>
559
+ </xs:restriction>
560
+ </xs:simpleType>
561
+ <!-- CladeRelation:-->
562
+ <xs:complexType name="CladeRelation">
563
+ <xs:annotation>
564
+ <xs:documentation> This is used to express a typed relationship between two clades. For example it could be
565
+ used to describe multiple parents of a clade.</xs:documentation>
566
+ </xs:annotation>
567
+ <xs:sequence>
568
+ <xs:element name="confidence" type="phy:Confidence" minOccurs="0"/>
569
+ </xs:sequence>
570
+ <xs:attribute name="id_ref_0" type="phy:id_ref" use="required"/>
571
+ <xs:attribute name="id_ref_1" type="phy:id_ref" use="required"/>
572
+ <xs:attribute name="distance" type="xs:double"/>
573
+ <xs:attribute name="type" type="xs:token" use="required"/>
574
+ </xs:complexType>
575
+ <!-- Used to link elements together on the xml level:-->
576
+ <xs:simpleType name="id_source">
577
+ <xs:restriction base="xs:ID"/>
578
+ </xs:simpleType>
579
+ <xs:simpleType name="id_ref">
580
+ <xs:restriction base="xs:IDREF"/>
581
+ </xs:simpleType>
582
+ </xs:schema>