wwood-bioruby 1.2.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (386) hide show
  1. data/README.rdoc +205 -0
  2. data/README_DEV.rdoc +285 -0
  3. data/VERSION.yml +4 -0
  4. data/bin/bioruby +44 -0
  5. data/bin/br_biofetch.rb +47 -0
  6. data/bin/br_bioflat.rb +293 -0
  7. data/bin/br_biogetseq.rb +45 -0
  8. data/bin/br_pmfetch.rb +421 -0
  9. data/lib/bio.rb +306 -0
  10. data/lib/bio/alignment.rb +2518 -0
  11. data/lib/bio/appl/bl2seq/report.rb +334 -0
  12. data/lib/bio/appl/blast.rb +505 -0
  13. data/lib/bio/appl/blast/ddbj.rb +142 -0
  14. data/lib/bio/appl/blast/format0.rb +1438 -0
  15. data/lib/bio/appl/blast/format8.rb +83 -0
  16. data/lib/bio/appl/blast/genomenet.rb +263 -0
  17. data/lib/bio/appl/blast/ncbioptions.rb +220 -0
  18. data/lib/bio/appl/blast/remote.rb +105 -0
  19. data/lib/bio/appl/blast/report.rb +767 -0
  20. data/lib/bio/appl/blast/rexml.rb +144 -0
  21. data/lib/bio/appl/blast/rpsblast.rb +277 -0
  22. data/lib/bio/appl/blast/wublast.rb +635 -0
  23. data/lib/bio/appl/blast/xmlparser.rb +236 -0
  24. data/lib/bio/appl/blat/report.rb +530 -0
  25. data/lib/bio/appl/clustalw.rb +219 -0
  26. data/lib/bio/appl/clustalw/report.rb +152 -0
  27. data/lib/bio/appl/emboss.rb +203 -0
  28. data/lib/bio/appl/fasta.rb +235 -0
  29. data/lib/bio/appl/fasta/format10.rb +325 -0
  30. data/lib/bio/appl/gcg/msf.rb +212 -0
  31. data/lib/bio/appl/gcg/seq.rb +195 -0
  32. data/lib/bio/appl/genscan/report.rb +552 -0
  33. data/lib/bio/appl/hmmer.rb +126 -0
  34. data/lib/bio/appl/hmmer/report.rb +683 -0
  35. data/lib/bio/appl/iprscan/report.rb +374 -0
  36. data/lib/bio/appl/mafft.rb +259 -0
  37. data/lib/bio/appl/mafft/report.rb +226 -0
  38. data/lib/bio/appl/muscle.rb +52 -0
  39. data/lib/bio/appl/paml/baseml.rb +95 -0
  40. data/lib/bio/appl/paml/baseml/report.rb +32 -0
  41. data/lib/bio/appl/paml/codeml.rb +242 -0
  42. data/lib/bio/appl/paml/codeml/rates.rb +67 -0
  43. data/lib/bio/appl/paml/codeml/report.rb +67 -0
  44. data/lib/bio/appl/paml/common.rb +348 -0
  45. data/lib/bio/appl/paml/common_report.rb +38 -0
  46. data/lib/bio/appl/paml/yn00.rb +103 -0
  47. data/lib/bio/appl/paml/yn00/report.rb +32 -0
  48. data/lib/bio/appl/phylip/alignment.rb +133 -0
  49. data/lib/bio/appl/phylip/distance_matrix.rb +96 -0
  50. data/lib/bio/appl/probcons.rb +41 -0
  51. data/lib/bio/appl/psort.rb +548 -0
  52. data/lib/bio/appl/psort/report.rb +542 -0
  53. data/lib/bio/appl/pts1.rb +263 -0
  54. data/lib/bio/appl/sim4.rb +124 -0
  55. data/lib/bio/appl/sim4/report.rb +485 -0
  56. data/lib/bio/appl/sosui/report.rb +151 -0
  57. data/lib/bio/appl/spidey/report.rb +593 -0
  58. data/lib/bio/appl/targetp/report.rb +267 -0
  59. data/lib/bio/appl/tcoffee.rb +55 -0
  60. data/lib/bio/appl/tmhmm/report.rb +231 -0
  61. data/lib/bio/command.rb +593 -0
  62. data/lib/bio/compat/features.rb +157 -0
  63. data/lib/bio/compat/references.rb +128 -0
  64. data/lib/bio/data/aa.rb +353 -0
  65. data/lib/bio/data/codontable.rb +722 -0
  66. data/lib/bio/data/na.rb +223 -0
  67. data/lib/bio/db.rb +329 -0
  68. data/lib/bio/db/aaindex.rb +357 -0
  69. data/lib/bio/db/biosql/biosql_to_biosequence.rb +67 -0
  70. data/lib/bio/db/biosql/sequence.rb +508 -0
  71. data/lib/bio/db/embl/common.rb +352 -0
  72. data/lib/bio/db/embl/embl.rb +500 -0
  73. data/lib/bio/db/embl/embl_to_biosequence.rb +85 -0
  74. data/lib/bio/db/embl/format_embl.rb +190 -0
  75. data/lib/bio/db/embl/sptr.rb +1283 -0
  76. data/lib/bio/db/embl/swissprot.rb +42 -0
  77. data/lib/bio/db/embl/trembl.rb +41 -0
  78. data/lib/bio/db/embl/uniprot.rb +42 -0
  79. data/lib/bio/db/fantom.rb +597 -0
  80. data/lib/bio/db/fasta.rb +410 -0
  81. data/lib/bio/db/fasta/defline.rb +532 -0
  82. data/lib/bio/db/fasta/fasta_to_biosequence.rb +63 -0
  83. data/lib/bio/db/fasta/format_fasta.rb +97 -0
  84. data/lib/bio/db/genbank/common.rb +307 -0
  85. data/lib/bio/db/genbank/ddbj.rb +22 -0
  86. data/lib/bio/db/genbank/format_genbank.rb +187 -0
  87. data/lib/bio/db/genbank/genbank.rb +250 -0
  88. data/lib/bio/db/genbank/genbank_to_biosequence.rb +86 -0
  89. data/lib/bio/db/genbank/genpept.rb +60 -0
  90. data/lib/bio/db/genbank/refseq.rb +18 -0
  91. data/lib/bio/db/gff.rb +1846 -0
  92. data/lib/bio/db/go.rb +481 -0
  93. data/lib/bio/db/kegg/brite.rb +41 -0
  94. data/lib/bio/db/kegg/compound.rb +131 -0
  95. data/lib/bio/db/kegg/drug.rb +98 -0
  96. data/lib/bio/db/kegg/enzyme.rb +148 -0
  97. data/lib/bio/db/kegg/expression.rb +155 -0
  98. data/lib/bio/db/kegg/genes.rb +263 -0
  99. data/lib/bio/db/kegg/genome.rb +241 -0
  100. data/lib/bio/db/kegg/glycan.rb +166 -0
  101. data/lib/bio/db/kegg/keggtab.rb +357 -0
  102. data/lib/bio/db/kegg/kgml.rb +256 -0
  103. data/lib/bio/db/kegg/orthology.rb +136 -0
  104. data/lib/bio/db/kegg/reaction.rb +82 -0
  105. data/lib/bio/db/kegg/taxonomy.rb +331 -0
  106. data/lib/bio/db/lasergene.rb +209 -0
  107. data/lib/bio/db/litdb.rb +107 -0
  108. data/lib/bio/db/medline.rb +326 -0
  109. data/lib/bio/db/nbrf.rb +191 -0
  110. data/lib/bio/db/newick.rb +658 -0
  111. data/lib/bio/db/nexus.rb +1854 -0
  112. data/lib/bio/db/pdb.rb +29 -0
  113. data/lib/bio/db/pdb/atom.rb +77 -0
  114. data/lib/bio/db/pdb/chain.rb +210 -0
  115. data/lib/bio/db/pdb/chemicalcomponent.rb +224 -0
  116. data/lib/bio/db/pdb/model.rb +148 -0
  117. data/lib/bio/db/pdb/pdb.rb +1911 -0
  118. data/lib/bio/db/pdb/residue.rb +176 -0
  119. data/lib/bio/db/pdb/utils.rb +399 -0
  120. data/lib/bio/db/prosite.rb +597 -0
  121. data/lib/bio/db/rebase.rb +456 -0
  122. data/lib/bio/db/soft.rb +404 -0
  123. data/lib/bio/db/transfac.rb +375 -0
  124. data/lib/bio/db/url.rb +42 -0
  125. data/lib/bio/feature.rb +139 -0
  126. data/lib/bio/io/biosql/biodatabase.rb +64 -0
  127. data/lib/bio/io/biosql/bioentry.rb +29 -0
  128. data/lib/bio/io/biosql/bioentry_dbxref.rb +11 -0
  129. data/lib/bio/io/biosql/bioentry_path.rb +12 -0
  130. data/lib/bio/io/biosql/bioentry_qualifier_value.rb +10 -0
  131. data/lib/bio/io/biosql/bioentry_reference.rb +10 -0
  132. data/lib/bio/io/biosql/bioentry_relationship.rb +10 -0
  133. data/lib/bio/io/biosql/biosequence.rb +11 -0
  134. data/lib/bio/io/biosql/comment.rb +7 -0
  135. data/lib/bio/io/biosql/config/database.yml +20 -0
  136. data/lib/bio/io/biosql/dbxref.rb +13 -0
  137. data/lib/bio/io/biosql/dbxref_qualifier_value.rb +12 -0
  138. data/lib/bio/io/biosql/location.rb +32 -0
  139. data/lib/bio/io/biosql/location_qualifier_value.rb +11 -0
  140. data/lib/bio/io/biosql/ontology.rb +10 -0
  141. data/lib/bio/io/biosql/reference.rb +9 -0
  142. data/lib/bio/io/biosql/seqfeature.rb +32 -0
  143. data/lib/bio/io/biosql/seqfeature_dbxref.rb +11 -0
  144. data/lib/bio/io/biosql/seqfeature_path.rb +11 -0
  145. data/lib/bio/io/biosql/seqfeature_qualifier_value.rb +20 -0
  146. data/lib/bio/io/biosql/seqfeature_relationship.rb +11 -0
  147. data/lib/bio/io/biosql/taxon.rb +12 -0
  148. data/lib/bio/io/biosql/taxon_name.rb +9 -0
  149. data/lib/bio/io/biosql/term.rb +27 -0
  150. data/lib/bio/io/biosql/term_dbxref.rb +11 -0
  151. data/lib/bio/io/biosql/term_path.rb +12 -0
  152. data/lib/bio/io/biosql/term_relationship.rb +13 -0
  153. data/lib/bio/io/biosql/term_relationship_term.rb +11 -0
  154. data/lib/bio/io/biosql/term_synonym.rb +10 -0
  155. data/lib/bio/io/das.rb +461 -0
  156. data/lib/bio/io/dbget.rb +194 -0
  157. data/lib/bio/io/ddbjxml.rb +638 -0
  158. data/lib/bio/io/ebisoap.rb +158 -0
  159. data/lib/bio/io/ensembl.rb +229 -0
  160. data/lib/bio/io/fastacmd.rb +163 -0
  161. data/lib/bio/io/fetch.rb +195 -0
  162. data/lib/bio/io/flatfile.rb +482 -0
  163. data/lib/bio/io/flatfile/autodetection.rb +545 -0
  164. data/lib/bio/io/flatfile/bdb.rb +253 -0
  165. data/lib/bio/io/flatfile/buffer.rb +237 -0
  166. data/lib/bio/io/flatfile/index.rb +1381 -0
  167. data/lib/bio/io/flatfile/indexer.rb +805 -0
  168. data/lib/bio/io/flatfile/splitter.rb +297 -0
  169. data/lib/bio/io/higet.rb +73 -0
  170. data/lib/bio/io/hinv.rb +442 -0
  171. data/lib/bio/io/keggapi.rb +805 -0
  172. data/lib/bio/io/ncbirest.rb +733 -0
  173. data/lib/bio/io/ncbisoap.rb +155 -0
  174. data/lib/bio/io/pubmed.rb +307 -0
  175. data/lib/bio/io/registry.rb +292 -0
  176. data/lib/bio/io/soapwsdl.rb +119 -0
  177. data/lib/bio/io/sql.rb +186 -0
  178. data/lib/bio/location.rb +867 -0
  179. data/lib/bio/map.rb +410 -0
  180. data/lib/bio/pathway.rb +960 -0
  181. data/lib/bio/reference.rb +602 -0
  182. data/lib/bio/sequence.rb +456 -0
  183. data/lib/bio/sequence/aa.rb +152 -0
  184. data/lib/bio/sequence/adapter.rb +108 -0
  185. data/lib/bio/sequence/common.rb +310 -0
  186. data/lib/bio/sequence/compat.rb +123 -0
  187. data/lib/bio/sequence/dblink.rb +54 -0
  188. data/lib/bio/sequence/format.rb +358 -0
  189. data/lib/bio/sequence/format_raw.rb +23 -0
  190. data/lib/bio/sequence/generic.rb +24 -0
  191. data/lib/bio/sequence/na.rb +491 -0
  192. data/lib/bio/shell.rb +44 -0
  193. data/lib/bio/shell/core.rb +578 -0
  194. data/lib/bio/shell/demo.rb +146 -0
  195. data/lib/bio/shell/interface.rb +218 -0
  196. data/lib/bio/shell/irb.rb +95 -0
  197. data/lib/bio/shell/object.rb +71 -0
  198. data/lib/bio/shell/plugin/blast.rb +42 -0
  199. data/lib/bio/shell/plugin/codon.rb +218 -0
  200. data/lib/bio/shell/plugin/das.rb +58 -0
  201. data/lib/bio/shell/plugin/emboss.rb +23 -0
  202. data/lib/bio/shell/plugin/entry.rb +105 -0
  203. data/lib/bio/shell/plugin/flatfile.rb +101 -0
  204. data/lib/bio/shell/plugin/keggapi.rb +181 -0
  205. data/lib/bio/shell/plugin/midi.rb +430 -0
  206. data/lib/bio/shell/plugin/obda.rb +45 -0
  207. data/lib/bio/shell/plugin/psort.rb +56 -0
  208. data/lib/bio/shell/plugin/seq.rb +247 -0
  209. data/lib/bio/shell/plugin/soap.rb +87 -0
  210. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/bioruby_generator.rb +29 -0
  211. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_classes.rhtml +4 -0
  212. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_log.rhtml +27 -0
  213. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_methods.rhtml +11 -0
  214. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_modules.rhtml +4 -0
  215. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/_variables.rhtml +7 -0
  216. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-bg.gif +0 -0
  217. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-gem.png +0 -0
  218. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby-link.gif +0 -0
  219. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby.css +368 -0
  220. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby.rhtml +47 -0
  221. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby_controller.rb +144 -0
  222. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/bioruby_helper.rb +47 -0
  223. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/commands.rhtml +8 -0
  224. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/history.rhtml +10 -0
  225. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/index.rhtml +26 -0
  226. data/lib/bio/shell/rails/vendor/plugins/bioruby/generators/bioruby/templates/spinner.gif +0 -0
  227. data/lib/bio/shell/script.rb +25 -0
  228. data/lib/bio/shell/setup.rb +109 -0
  229. data/lib/bio/shell/web.rb +102 -0
  230. data/lib/bio/tree.rb +852 -0
  231. data/lib/bio/util/color_scheme.rb +191 -0
  232. data/lib/bio/util/color_scheme/buried.rb +59 -0
  233. data/lib/bio/util/color_scheme/helix.rb +59 -0
  234. data/lib/bio/util/color_scheme/hydropathy.rb +64 -0
  235. data/lib/bio/util/color_scheme/nucleotide.rb +31 -0
  236. data/lib/bio/util/color_scheme/strand.rb +59 -0
  237. data/lib/bio/util/color_scheme/taylor.rb +50 -0
  238. data/lib/bio/util/color_scheme/turn.rb +59 -0
  239. data/lib/bio/util/color_scheme/zappo.rb +50 -0
  240. data/lib/bio/util/contingency_table.rb +370 -0
  241. data/lib/bio/util/restriction_enzyme.rb +228 -0
  242. data/lib/bio/util/restriction_enzyme/analysis.rb +249 -0
  243. data/lib/bio/util/restriction_enzyme/analysis_basic.rb +217 -0
  244. data/lib/bio/util/restriction_enzyme/cut_symbol.rb +107 -0
  245. data/lib/bio/util/restriction_enzyme/double_stranded.rb +321 -0
  246. data/lib/bio/util/restriction_enzyme/double_stranded/aligned_strands.rb +130 -0
  247. data/lib/bio/util/restriction_enzyme/double_stranded/cut_location_pair.rb +103 -0
  248. data/lib/bio/util/restriction_enzyme/double_stranded/cut_location_pair_in_enzyme_notation.rb +38 -0
  249. data/lib/bio/util/restriction_enzyme/double_stranded/cut_locations.rb +76 -0
  250. data/lib/bio/util/restriction_enzyme/double_stranded/cut_locations_in_enzyme_notation.rb +107 -0
  251. data/lib/bio/util/restriction_enzyme/enzymes.yaml +7061 -0
  252. data/lib/bio/util/restriction_enzyme/range/cut_range.rb +24 -0
  253. data/lib/bio/util/restriction_enzyme/range/cut_ranges.rb +47 -0
  254. data/lib/bio/util/restriction_enzyme/range/horizontal_cut_range.rb +67 -0
  255. data/lib/bio/util/restriction_enzyme/range/sequence_range.rb +257 -0
  256. data/lib/bio/util/restriction_enzyme/range/sequence_range/calculated_cuts.rb +242 -0
  257. data/lib/bio/util/restriction_enzyme/range/sequence_range/fragment.rb +51 -0
  258. data/lib/bio/util/restriction_enzyme/range/sequence_range/fragments.rb +41 -0
  259. data/lib/bio/util/restriction_enzyme/range/vertical_cut_range.rb +77 -0
  260. data/lib/bio/util/restriction_enzyme/single_strand.rb +200 -0
  261. data/lib/bio/util/restriction_enzyme/single_strand/cut_locations_in_enzyme_notation.rb +135 -0
  262. data/lib/bio/util/restriction_enzyme/single_strand_complement.rb +23 -0
  263. data/lib/bio/util/restriction_enzyme/string_formatting.rb +111 -0
  264. data/lib/bio/util/sirna.rb +288 -0
  265. data/test/data/HMMER/hmmpfam.out +64 -0
  266. data/test/data/HMMER/hmmsearch.out +88 -0
  267. data/test/data/SOSUI/sample.report +11 -0
  268. data/test/data/TMHMM/sample.report +21 -0
  269. data/test/data/aaindex/DAYM780301 +30 -0
  270. data/test/data/aaindex/PRAM900102 +20 -0
  271. data/test/data/bl2seq/cd8a_cd8b_blastp.bl2seq +53 -0
  272. data/test/data/bl2seq/cd8a_p53_e-5blastp.bl2seq +37 -0
  273. data/test/data/blast/2.2.15.blastp.m7 +876 -0
  274. data/test/data/blast/b0002.faa +15 -0
  275. data/test/data/blast/b0002.faa.m0 +128 -0
  276. data/test/data/blast/b0002.faa.m7 +65 -0
  277. data/test/data/blast/b0002.faa.m8 +1 -0
  278. data/test/data/blast/blastp-multi.m7 +188 -0
  279. data/test/data/command/echoarg2.bat +1 -0
  280. data/test/data/embl/AB090716.embl +65 -0
  281. data/test/data/embl/AB090716.embl.rel89 +63 -0
  282. data/test/data/fasta/example1.txt +75 -0
  283. data/test/data/fasta/example2.txt +21 -0
  284. data/test/data/genscan/sample.report +63 -0
  285. data/test/data/iprscan/merged.raw +32 -0
  286. data/test/data/iprscan/merged.txt +74 -0
  287. data/test/data/paml/codeml/control_file.txt +30 -0
  288. data/test/data/paml/codeml/output.txt +78 -0
  289. data/test/data/paml/codeml/rates +217 -0
  290. data/test/data/prosite/prosite.dat +2233 -0
  291. data/test/data/refseq/nm_126355.entret +64 -0
  292. data/test/data/rpsblast/misc.rpsblast +193 -0
  293. data/test/data/soft/GDS100_partial.soft +92 -0
  294. data/test/data/soft/GSE3457_family_partial.soft +874 -0
  295. data/test/data/uniprot/p53_human.uniprot +1456 -0
  296. data/test/functional/bio/appl/test_pts1.rb +115 -0
  297. data/test/functional/bio/io/test_ensembl.rb +229 -0
  298. data/test/functional/bio/io/test_soapwsdl.rb +52 -0
  299. data/test/functional/bio/sequence/test_output_embl.rb +51 -0
  300. data/test/functional/bio/test_command.rb +301 -0
  301. data/test/runner.rb +14 -0
  302. data/test/unit/bio/appl/bl2seq/test_report.rb +134 -0
  303. data/test/unit/bio/appl/blast/test_ncbioptions.rb +112 -0
  304. data/test/unit/bio/appl/blast/test_report.rb +1135 -0
  305. data/test/unit/bio/appl/blast/test_rpsblast.rb +398 -0
  306. data/test/unit/bio/appl/genscan/test_report.rb +182 -0
  307. data/test/unit/bio/appl/hmmer/test_report.rb +342 -0
  308. data/test/unit/bio/appl/iprscan/test_report.rb +338 -0
  309. data/test/unit/bio/appl/mafft/test_report.rb +63 -0
  310. data/test/unit/bio/appl/paml/codeml/test_rates.rb +45 -0
  311. data/test/unit/bio/appl/paml/codeml/test_report.rb +45 -0
  312. data/test/unit/bio/appl/paml/test_codeml.rb +174 -0
  313. data/test/unit/bio/appl/sosui/test_report.rb +81 -0
  314. data/test/unit/bio/appl/targetp/test_report.rb +146 -0
  315. data/test/unit/bio/appl/test_blast.rb +277 -0
  316. data/test/unit/bio/appl/test_fasta.rb +130 -0
  317. data/test/unit/bio/appl/test_psort.rb +57 -0
  318. data/test/unit/bio/appl/test_pts1.rb +77 -0
  319. data/test/unit/bio/appl/tmhmm/test_report.rb +126 -0
  320. data/test/unit/bio/data/test_aa.rb +90 -0
  321. data/test/unit/bio/data/test_codontable.rb +107 -0
  322. data/test/unit/bio/data/test_na.rb +80 -0
  323. data/test/unit/bio/db/embl/test_common.rb +117 -0
  324. data/test/unit/bio/db/embl/test_embl.rb +214 -0
  325. data/test/unit/bio/db/embl/test_embl_rel89.rb +219 -0
  326. data/test/unit/bio/db/embl/test_embl_to_bioseq.rb +203 -0
  327. data/test/unit/bio/db/embl/test_sptr.rb +1812 -0
  328. data/test/unit/bio/db/embl/test_uniprot.rb +31 -0
  329. data/test/unit/bio/db/kegg/test_genes.rb +45 -0
  330. data/test/unit/bio/db/pdb/test_pdb.rb +152 -0
  331. data/test/unit/bio/db/test_aaindex.rb +197 -0
  332. data/test/unit/bio/db/test_fasta.rb +250 -0
  333. data/test/unit/bio/db/test_gff.rb +1190 -0
  334. data/test/unit/bio/db/test_lasergene.rb +95 -0
  335. data/test/unit/bio/db/test_medline.rb +127 -0
  336. data/test/unit/bio/db/test_newick.rb +293 -0
  337. data/test/unit/bio/db/test_nexus.rb +364 -0
  338. data/test/unit/bio/db/test_prosite.rb +1437 -0
  339. data/test/unit/bio/db/test_rebase.rb +101 -0
  340. data/test/unit/bio/db/test_soft.rb +138 -0
  341. data/test/unit/bio/db/test_url.rb +36 -0
  342. data/test/unit/bio/io/flatfile/test_autodetection.rb +375 -0
  343. data/test/unit/bio/io/flatfile/test_buffer.rb +251 -0
  344. data/test/unit/bio/io/flatfile/test_splitter.rb +369 -0
  345. data/test/unit/bio/io/test_ddbjxml.rb +80 -0
  346. data/test/unit/bio/io/test_ensembl.rb +109 -0
  347. data/test/unit/bio/io/test_fastacmd.rb +42 -0
  348. data/test/unit/bio/io/test_flatfile.rb +505 -0
  349. data/test/unit/bio/io/test_soapwsdl.rb +32 -0
  350. data/test/unit/bio/sequence/test_aa.rb +115 -0
  351. data/test/unit/bio/sequence/test_common.rb +373 -0
  352. data/test/unit/bio/sequence/test_compat.rb +69 -0
  353. data/test/unit/bio/sequence/test_dblink.rb +58 -0
  354. data/test/unit/bio/sequence/test_na.rb +330 -0
  355. data/test/unit/bio/shell/plugin/test_seq.rb +185 -0
  356. data/test/unit/bio/test_alignment.rb +1025 -0
  357. data/test/unit/bio/test_command.rb +349 -0
  358. data/test/unit/bio/test_db.rb +96 -0
  359. data/test/unit/bio/test_feature.rb +144 -0
  360. data/test/unit/bio/test_location.rb +599 -0
  361. data/test/unit/bio/test_map.rb +230 -0
  362. data/test/unit/bio/test_pathway.rb +499 -0
  363. data/test/unit/bio/test_reference.rb +252 -0
  364. data/test/unit/bio/test_sequence.rb +329 -0
  365. data/test/unit/bio/test_shell.rb +18 -0
  366. data/test/unit/bio/test_tree.rb +593 -0
  367. data/test/unit/bio/util/restriction_enzyme/analysis/test_calculated_cuts.rb +299 -0
  368. data/test/unit/bio/util/restriction_enzyme/analysis/test_cut_ranges.rb +103 -0
  369. data/test/unit/bio/util/restriction_enzyme/analysis/test_sequence_range.rb +240 -0
  370. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_aligned_strands.rb +101 -0
  371. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair.rb +75 -0
  372. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair_in_enzyme_notation.rb +73 -0
  373. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations.rb +53 -0
  374. data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations_in_enzyme_notation.rb +104 -0
  375. data/test/unit/bio/util/restriction_enzyme/single_strand/test_cut_locations_in_enzyme_notation.rb +83 -0
  376. data/test/unit/bio/util/restriction_enzyme/test_analysis.rb +246 -0
  377. data/test/unit/bio/util/restriction_enzyme/test_cut_symbol.rb +44 -0
  378. data/test/unit/bio/util/restriction_enzyme/test_double_stranded.rb +115 -0
  379. data/test/unit/bio/util/restriction_enzyme/test_single_strand.rb +147 -0
  380. data/test/unit/bio/util/restriction_enzyme/test_single_strand_complement.rb +147 -0
  381. data/test/unit/bio/util/restriction_enzyme/test_string_formatting.rb +60 -0
  382. data/test/unit/bio/util/test_color_scheme.rb +33 -0
  383. data/test/unit/bio/util/test_contingency_table.rb +94 -0
  384. data/test/unit/bio/util/test_restriction_enzyme.rb +42 -0
  385. data/test/unit/bio/util/test_sirna.rb +245 -0
  386. metadata +543 -0
@@ -0,0 +1,364 @@
1
+ #
2
+ # = test/bio/db/nexus.rb - Unit test for Bio::Nexus
3
+ #
4
+ # Copyright:: Copyright (C) 2006 Christian M Zmasek <cmzmasek@yahoo.com>
5
+ #
6
+ # License:: The Ruby License
7
+ #
8
+ # $Id:$
9
+ #
10
+ # == Description
11
+ #
12
+ # This file contains unit tests for Bio::Nexus.
13
+ #
14
+
15
+ require 'pathname'
16
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
17
+ $:.unshift(libpath) unless $:.include?(libpath)
18
+
19
+ require 'test/unit'
20
+ require 'bio/db/nexus'
21
+
22
+ module Bio
23
+
24
+ class TestNexus < Test::Unit::TestCase
25
+
26
+ NEXUS_STRING_1 = <<-END_OF_NEXUS_STRING
27
+ #NEXUS
28
+ Begin Taxa;
29
+ Dimensions [[comment]] ntax=4;
30
+ TaxLabels "hag fish" [comment] 'african frog'
31
+ [lots of different comment follow]
32
+ [] [a] [[a]] [ a ] [[ a ]] [ [ a ] ] [a ]
33
+ [[a ]] [ [a ] ] [ a] [[ a]] [ [ a] ] [ ]
34
+ [[ ]] [ [ ] ] [ a b ] [[ a b ]] [ [ a b ] ]
35
+ [x[ x [x[ x[[x[[xx[x[ x]] ]x ] []]][x]]x]]]
36
+
37
+ [comment_1 comment_3] "rat snake" 'red
38
+
39
+
40
+ mouse';
41
+ End;
42
+
43
+ [yet another comment End; ]
44
+
45
+ Begin Characters;
46
+ Dimensions nchar=20
47
+ ntax=4;
48
+ [ ntax=1000; ]
49
+ Format DataType=DNA
50
+ Missing=x
51
+ Gap=- MatchChar=.;
52
+ Matrix [comment]
53
+ fish ACATA GAGGG
54
+ TACCT CTAAG
55
+ frog ACTTA GAGGC TACCT CTAGC
56
+ snake ACTCA CTGGG TACCT TTGCG
57
+ mouse ACTCA GACGG TACCT TTGCG;
58
+ End;
59
+
60
+ Begin Trees;
61
+ [comment]
62
+ Tree best=(fish,(frog,(snake,mo
63
+ use)));
64
+ [some long comment]
65
+ Tree
66
+
67
+ other=(snake,
68
+
69
+ (frog,(fish,mo
70
+ use
71
+ )));
72
+ End;
73
+
74
+
75
+
76
+ Begin Trees;
77
+ [comment]
78
+ Tree worst=(A,(B,(C,D
79
+ )));
80
+ Tree bad=(a,
81
+
82
+ (b,(c , d
83
+ )
84
+
85
+
86
+ ) );
87
+ End;
88
+
89
+
90
+ Begin Distances;
91
+ Dimensions nchar=20 ntax=5;
92
+ Format Triangle=Both;
93
+ Matrix
94
+ taxon_1 0.0 1.0
95
+ 2.0 4.0 7.0
96
+ taxon_2 1.0
97
+ 0.0 3.0 5.0 8.0
98
+ taxon_3 3.0 4.0 0.0 6.0 9.0
99
+ taxon_4 7.0 3.0 2.0 0.0 9.5
100
+ taxon_5 1.2 1.3 1.4 1.5 0.0;
101
+ End;
102
+
103
+ Begin Data;
104
+ Dimensions ntax=5 nchar=14;
105
+ Format Datatype=RNA gap=# MISSING=x MatchChar=^;
106
+ TaxLabels ciona
107
+ cow [comment1 commentX] ape
108
+ 'purple urchin' "green lizard";
109
+ Matrix
110
+ [ comment [old comment] ]
111
+ taxon_1 A- CCGTCGA-GTTA
112
+ taxon_2 T- CCG-CGA-GATC
113
+
114
+ taxon_3 A- C-GTCGA-GATG
115
+
116
+ taxon_4 A- C C TC G
117
+ A - -G T T
118
+
119
+ T
120
+
121
+ taxon_5
122
+ T-CGGTCGT-CTTA;
123
+ End;
124
+
125
+ Begin Private1;
126
+ Something foo=5 bar=20;
127
+ Format Datatype=DNA;
128
+ Matrix
129
+ taxon_1 1111 1111111111
130
+ taxon_2 2222 2222222222
131
+ taxon_3 3333 3333333333
132
+ taxon_4 4444 4444444444
133
+ taxon_5 5555 5555555555;
134
+ End;
135
+
136
+ Begin Private1;
137
+ some [boring]
138
+ interesting [
139
+ outdated
140
+ ] data be here
141
+ End;
142
+
143
+ END_OF_NEXUS_STRING
144
+
145
+ DATA_BLOCK_OUTPUT_STRING = <<-DATA_BLOCK_OUTPUT_STRING
146
+ Begin Data;
147
+ Dimensions NTax=5 NChar=14;
148
+ Format DataType=RNA Missing=x Gap=# MatchChar=^;
149
+ TaxLabels ciona cow ape purple_urchin green_lizard;
150
+ Matrix
151
+ taxon_1 A-CCGTCGA-GTTA
152
+ taxon_2 T-CCG-CGA-GATC
153
+ taxon_3 A-C-GTCGA-GATG
154
+ taxon_4 A-CCTCGA--GTTT
155
+ taxon_5 T-CGGTCGT-CTTA;
156
+ End;
157
+ DATA_BLOCK_OUTPUT_STRING
158
+
159
+ def test_nexus
160
+
161
+ nexus = Bio::Nexus.new( NEXUS_STRING_1 )
162
+ blocks = nexus.get_blocks
163
+ assert_equal( 8, blocks.size )
164
+
165
+ private_blocks = nexus.get_blocks_by_name( "private1" )
166
+ data_blocks = nexus.get_data_blocks
167
+ character_blocks = nexus.get_characters_blocks
168
+ trees_blocks = nexus.get_trees_blocks
169
+ distances_blocks = nexus.get_distances_blocks
170
+ taxa_blocks = nexus.get_taxa_blocks
171
+
172
+ assert_equal( 2, private_blocks.size )
173
+ assert_equal( 1, data_blocks.size )
174
+ assert_equal( 1, character_blocks.size )
175
+ assert_equal( 2, trees_blocks.size )
176
+ assert_equal( 1, distances_blocks.size )
177
+ assert_equal( 1, taxa_blocks.size )
178
+
179
+ taxa_block = taxa_blocks[ 0 ]
180
+ assert_equal( taxa_block.get_number_of_taxa.to_i , 4 )
181
+ assert_equal( taxa_block.get_taxa[ 0 ], "hag_fish" )
182
+ assert_equal( taxa_block.get_taxa[ 1 ], "african_frog" )
183
+ assert_equal( taxa_block.get_taxa[ 2 ], "rat_snake" )
184
+ assert_equal( taxa_block.get_taxa[ 3 ], "red_mouse" )
185
+
186
+ chars_block = character_blocks[ 0 ]
187
+ assert_equal( chars_block.get_number_of_taxa.to_i, 4 )
188
+ assert_equal( chars_block.get_number_of_characters.to_i, 20 )
189
+ assert_equal( chars_block.get_datatype, "DNA" )
190
+ assert_equal( chars_block.get_match_character, "." )
191
+ assert_equal( chars_block.get_missing, "x" )
192
+ assert_equal( chars_block.get_gap_character, "-" )
193
+ assert_equal( chars_block.get_matrix.get_value( 0, 0 ), "fish" )
194
+ assert_equal( chars_block.get_matrix.get_value( 1, 0 ), "frog" )
195
+ assert_equal( chars_block.get_matrix.get_value( 2, 0 ), "snake" )
196
+ assert_equal( chars_block.get_matrix.get_value( 3, 0 ), "mouse" )
197
+ assert_equal( chars_block.get_matrix.get_value( 0, 20 ), "G" )
198
+ assert_equal( chars_block.get_matrix.get_value( 1, 20 ), "C" )
199
+ assert_equal( chars_block.get_matrix.get_value( 2, 20 ), "G" )
200
+ assert_equal( chars_block.get_matrix.get_value( 3, 20 ), "G" )
201
+ assert_equal( chars_block.get_characters_strings_by_name( "fish" )[ 0 ], "ACATAGAGGGTACCTCTAAG" )
202
+ assert_equal( chars_block.get_characters_strings_by_name( "frog" )[ 0 ], "ACTTAGAGGCTACCTCTAGC" )
203
+ assert_equal( chars_block.get_characters_strings_by_name( "snake" )[ 0 ], "ACTCACTGGGTACCTTTGCG" )
204
+ assert_equal( chars_block.get_characters_strings_by_name( "mouse" )[ 0 ], "ACTCAGACGGTACCTTTGCG" )
205
+
206
+ assert_equal( chars_block.get_characters_string( 0 ), "ACATAGAGGGTACCTCTAAG" )
207
+ assert_equal( chars_block.get_characters_string( 1 ), "ACTTAGAGGCTACCTCTAGC" )
208
+ assert_equal( chars_block.get_characters_string( 2 ), "ACTCACTGGGTACCTTTGCG" )
209
+ assert_equal( chars_block.get_characters_string( 3 ), "ACTCAGACGGTACCTTTGCG" )
210
+
211
+ assert_equal( chars_block.get_row_name( 1 ), "frog" )
212
+
213
+ assert_equal( chars_block.get_sequences_by_name( "fish" )[ 0 ].seq.to_s.downcase, "ACATAGAGGGTACCTCTAAG".downcase )
214
+ assert_equal( chars_block.get_sequences_by_name( "frog" )[ 0 ].seq.to_s.downcase, "ACTTAGAGGCTACCTCTAGC".downcase )
215
+ assert_equal( chars_block.get_sequences_by_name( "snake" )[ 0 ].seq.to_s.downcase, "ACTCACTGGGTACCTTTGCG".downcase )
216
+ assert_equal( chars_block.get_sequences_by_name( "mouse" )[ 0 ].seq.to_s.downcase, "ACTCAGACGGTACCTTTGCG".downcase )
217
+
218
+ assert_equal( chars_block.get_sequences_by_name( "fish" )[ 0 ].definition, "fish" )
219
+ assert_equal( chars_block.get_sequences_by_name( "frog" )[ 0 ].definition, "frog" )
220
+ assert_equal( chars_block.get_sequences_by_name( "snake" )[ 0 ].definition, "snake" )
221
+ assert_equal( chars_block.get_sequences_by_name( "mouse" )[ 0 ].definition, "mouse" )
222
+
223
+ assert_equal( chars_block.get_sequence( 0 ).seq.to_s.downcase, "ACATAGAGGGTACCTCTAAG".downcase )
224
+ assert_equal( chars_block.get_sequence( 1 ).seq.to_s.downcase, "ACTTAGAGGCTACCTCTAGC".downcase )
225
+ assert_equal( chars_block.get_sequence( 2 ).seq.to_s.downcase, "ACTCACTGGGTACCTTTGCG".downcase )
226
+ assert_equal( chars_block.get_sequence( 3 ).seq.to_s.downcase, "ACTCAGACGGTACCTTTGCG".downcase )
227
+
228
+ assert_equal( chars_block.get_sequence( 0 ).definition, "fish" )
229
+ assert_equal( chars_block.get_sequence( 1 ).definition, "frog" )
230
+ assert_equal( chars_block.get_sequence( 2 ).definition, "snake" )
231
+ assert_equal( chars_block.get_sequence( 3 ).definition, "mouse" )
232
+
233
+
234
+ tree_block_0 = trees_blocks[ 0 ]
235
+ tree_block_1 = trees_blocks[ 1 ]
236
+ assert_equal( tree_block_0.get_tree_names[ 0 ], "best" )
237
+ assert_equal( tree_block_0.get_tree_names[ 1 ], "other" )
238
+ assert_equal( tree_block_0.get_tree_strings_by_name( "best" )[ 0 ], "(fish,(frog,(snake,mouse)));" )
239
+ assert_equal( tree_block_0.get_tree_strings_by_name( "other" )[ 0 ], "(snake,(frog,(fish,mouse)));" )
240
+
241
+ best_tree = tree_block_0.get_trees_by_name( "best" )[ 0 ]
242
+ other_tree = tree_block_0.get_trees_by_name( "other" )[ 0 ]
243
+ worst_tree = tree_block_1.get_tree( 0 )
244
+ bad_tree = tree_block_1.get_tree( 1 )
245
+ assert_equal( 6, best_tree.descendents( best_tree.root ).size )
246
+ assert_equal( 4, best_tree.leaves.size)
247
+ assert_equal( 6, other_tree.descendents( other_tree.root ).size )
248
+ assert_equal( 4, other_tree.leaves.size)
249
+ fish_leaf_best = best_tree.nodes.find { |x| x.name == 'fish' }
250
+ assert_equal( 1, best_tree.ancestors( fish_leaf_best ).size )
251
+ fish_leaf_other = other_tree.nodes.find { |x| x.name == 'fish' }
252
+ assert_equal( 3, other_tree.ancestors( fish_leaf_other ).size )
253
+
254
+ a_leaf_worst = worst_tree.nodes.find { |x| x.name == 'A' }
255
+ assert_equal( 1, worst_tree.ancestors( a_leaf_worst ).size )
256
+ c_leaf_bad = bad_tree.nodes.find { |x| x.name == 'c' }
257
+ assert_equal( 3, bad_tree.ancestors( c_leaf_bad ).size )
258
+
259
+
260
+ dist_block = distances_blocks[ 0 ]
261
+ assert_equal( dist_block.get_number_of_taxa.to_i, 5 )
262
+ assert_equal( dist_block.get_number_of_characters.to_i, 20 )
263
+ assert_equal( dist_block.get_triangle, "Both" )
264
+ assert_equal( dist_block.get_matrix.get_value( 0, 0 ), "taxon_1" )
265
+ assert_equal( dist_block.get_matrix.get_value( 1, 0 ), "taxon_2" )
266
+ assert_equal( dist_block.get_matrix.get_value( 2, 0 ), "taxon_3" )
267
+ assert_equal( dist_block.get_matrix.get_value( 3, 0 ), "taxon_4" )
268
+ assert_equal( dist_block.get_matrix.get_value( 4, 0 ), "taxon_5" )
269
+ assert_equal( dist_block.get_matrix.get_value( 0, 5 ).to_f, 7.0 )
270
+ assert_equal( dist_block.get_matrix.get_value( 1, 5 ).to_f, 8.0 )
271
+ assert_equal( dist_block.get_matrix.get_value( 2, 5 ).to_f, 9.0 )
272
+ assert_equal( dist_block.get_matrix.get_value( 3, 5 ).to_f, 9.5 )
273
+ assert_equal( dist_block.get_matrix.get_value( 4, 5 ).to_f, 0.0 )
274
+
275
+ data_block = data_blocks[ 0 ]
276
+ assert_equal( data_block.get_number_of_taxa.to_i, 5 )
277
+ assert_equal( data_block.get_number_of_characters.to_i, 14 )
278
+ assert_equal( data_block.get_datatype, "RNA" )
279
+ assert_equal( data_block.get_match_character, "^" )
280
+ assert_equal( data_block.get_missing, "x" )
281
+ assert_equal( data_block.get_gap_character, "#" )
282
+ assert_equal( data_block.get_matrix.get_value( 0, 0 ), "taxon_1" )
283
+ assert_equal( data_block.get_matrix.get_value( 1, 0 ), "taxon_2" )
284
+ assert_equal( data_block.get_matrix.get_value( 2, 0 ), "taxon_3" )
285
+ assert_equal( data_block.get_matrix.get_value( 3, 0 ), "taxon_4" )
286
+ assert_equal( data_block.get_matrix.get_value( 4, 0 ), "taxon_5" )
287
+ assert_equal( data_block.get_matrix.get_value( 0, 14 ), "A" )
288
+ assert_equal( data_block.get_matrix.get_value( 1, 14 ), "C" )
289
+ assert_equal( data_block.get_matrix.get_value( 2, 14 ), "G" )
290
+ assert_equal( data_block.get_matrix.get_value( 3, 14 ), "T" )
291
+ assert_equal( data_block.get_matrix.get_value( 4, 14 ), "A" )
292
+ assert_equal( data_block.get_taxa[ 0 ], "ciona" )
293
+ assert_equal( data_block.get_taxa[ 1 ], "cow" )
294
+ assert_equal( data_block.get_taxa[ 2 ], "ape" )
295
+ assert_equal( data_block.get_taxa[ 3 ], "purple_urchin" )
296
+ assert_equal( data_block.get_taxa[ 4 ], "green_lizard" )
297
+
298
+
299
+ assert_equal( data_block.get_characters_strings_by_name( "taxon_1" )[ 0 ], "A-CCGTCGA-GTTA" )
300
+ assert_equal( data_block.get_characters_strings_by_name( "taxon_2" )[ 0 ], "T-CCG-CGA-GATC" )
301
+ assert_equal( data_block.get_characters_strings_by_name( "taxon_3" )[ 0 ], "A-C-GTCGA-GATG" )
302
+ assert_equal( data_block.get_characters_strings_by_name( "taxon_4" )[ 0 ], "A-CCTCGA--GTTT" )
303
+ assert_equal( data_block.get_characters_strings_by_name( "taxon_5" )[ 0 ], "T-CGGTCGT-CTTA" )
304
+
305
+ assert_equal( data_block.get_characters_string( 0 ), "A-CCGTCGA-GTTA" )
306
+ assert_equal( data_block.get_characters_string( 1 ), "T-CCG-CGA-GATC" )
307
+ assert_equal( data_block.get_characters_string( 2 ), "A-C-GTCGA-GATG" )
308
+ assert_equal( data_block.get_characters_string( 3 ), "A-CCTCGA--GTTT" )
309
+ assert_equal( data_block.get_characters_string( 4 ), "T-CGGTCGT-CTTA" )
310
+
311
+ assert_equal( data_block.get_row_name( 0 ), "taxon_1" )
312
+ assert_equal( data_block.get_row_name( 1 ), "taxon_2" )
313
+ assert_equal( data_block.get_row_name( 2 ), "taxon_3" )
314
+ assert_equal( data_block.get_row_name( 3 ), "taxon_4" )
315
+ assert_equal( data_block.get_row_name( 4 ), "taxon_5" )
316
+
317
+ assert_equal( data_block.get_sequences_by_name( "taxon_1" )[ 0 ].seq.to_s.downcase, "A-CCGTCGA-GTTA".downcase )
318
+ assert_equal( data_block.get_sequences_by_name( "taxon_2" )[ 0 ].seq.to_s.downcase, "T-CCG-CGA-GATC".downcase )
319
+ assert_equal( data_block.get_sequences_by_name( "taxon_3" )[ 0 ].seq.to_s.downcase, "A-C-GTCGA-GATG".downcase )
320
+ assert_equal( data_block.get_sequences_by_name( "taxon_4" )[ 0 ].seq.to_s.downcase, "A-CCTCGA--GTTT".downcase )
321
+ assert_equal( data_block.get_sequences_by_name( "taxon_5" )[ 0 ].seq.to_s.downcase, "T-CGGTCGT-CTTA".downcase )
322
+
323
+ assert_equal( data_block.get_sequences_by_name( "taxon_1" )[ 0 ].definition, "taxon_1" )
324
+ assert_equal( data_block.get_sequences_by_name( "taxon_2" )[ 0 ].definition, "taxon_2" )
325
+ assert_equal( data_block.get_sequences_by_name( "taxon_3" )[ 0 ].definition, "taxon_3" )
326
+ assert_equal( data_block.get_sequences_by_name( "taxon_4" )[ 0 ].definition, "taxon_4" )
327
+ assert_equal( data_block.get_sequences_by_name( "taxon_5" )[ 0 ].definition, "taxon_5" )
328
+
329
+ assert_equal( data_block.get_sequence( 0 ).seq.to_s.downcase, "A-CCGTCGA-GTTA".downcase )
330
+ assert_equal( data_block.get_sequence( 1 ).seq.to_s.downcase, "T-CCG-CGA-GATC".downcase )
331
+ assert_equal( data_block.get_sequence( 2 ).seq.to_s.downcase, "A-C-GTCGA-GATG".downcase )
332
+ assert_equal( data_block.get_sequence( 3 ).seq.to_s.downcase, "A-CCTCGA--GTTT".downcase )
333
+ assert_equal( data_block.get_sequence( 4 ).seq.to_s.downcase, "T-CGGTCGT-CTTA".downcase )
334
+
335
+ assert_equal( data_block.get_sequence( 0 ).definition, "taxon_1" )
336
+ assert_equal( data_block.get_sequence( 1 ).definition, "taxon_2" )
337
+ assert_equal( data_block.get_sequence( 2 ).definition, "taxon_3" )
338
+ assert_equal( data_block.get_sequence( 3 ).definition, "taxon_4" )
339
+ assert_equal( data_block.get_sequence( 4 ).definition, "taxon_5" )
340
+
341
+ assert_equal( DATA_BLOCK_OUTPUT_STRING, data_block.to_nexus() )
342
+
343
+ generic_0 = private_blocks[ 0 ]
344
+ generic_1 = private_blocks[ 1 ]
345
+ assert_equal( generic_0.get_tokens[ 0 ], "Something" )
346
+ assert_equal( generic_0.get_tokens[ 1 ], "foo" )
347
+ assert_equal( generic_0.get_tokens[ 2 ], "5" )
348
+ assert_equal( generic_0.get_tokens[ 3 ], "bar" )
349
+ assert_equal( generic_0.get_tokens[ 4 ], "20" )
350
+ assert_equal( generic_0.get_tokens[ 5 ], "Format" )
351
+ assert_equal( generic_0.get_tokens[ 6 ], "Datatype" )
352
+ assert_equal( generic_0.get_tokens[ 7 ], "DNA" )
353
+ assert_equal( generic_0.get_tokens[ 8 ], "Matrix" )
354
+ assert_equal( generic_0.get_tokens[ 9 ], "taxon_1" )
355
+ assert_equal( generic_0.get_tokens[10 ], "1111" )
356
+ assert_equal( generic_1.get_tokens[ 0 ], "some" )
357
+ assert_equal( generic_1.get_tokens[ 1 ], "interesting" )
358
+ assert_equal( generic_1.get_tokens[ 2 ], "data" )
359
+ assert_equal( generic_1.get_tokens[ 3 ], "be" )
360
+ assert_equal( generic_1.get_tokens[ 4 ], "here" )
361
+
362
+ end # test_nexus
363
+ end # class TestNexus
364
+ end # module Bio
@@ -0,0 +1,1437 @@
1
+ #
2
+ # test/unit/bio/db/test_prosite.rb - Unit test for Bio::PROSITE
3
+ #
4
+ # Copyright:: Copyright (C) 2005 Mitsuteru Nakao <n@bioruby.org>
5
+ # License:: The Ruby License
6
+ #
7
+ # $Id: test_prosite.rb,v 1.6 2007/04/05 23:35:43 trevor Exp $
8
+ #
9
+
10
+ require 'pathname'
11
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
12
+ $:.unshift(libpath) unless $:.include?(libpath)
13
+
14
+ require 'test/unit'
15
+ require 'bio/db/prosite'
16
+
17
+ module Bio
18
+ class TestPROSITEConst < Test::Unit::TestCase
19
+
20
+ def test_delimiter
21
+ assert_equal("\n//\n", Bio::PROSITE::DELIMITER)
22
+ assert_equal("\n//\n", Bio::PROSITE::RS)
23
+ end
24
+
25
+ def test_tagsize
26
+ assert_equal(5, Bio::PROSITE::TAGSIZE)
27
+ end
28
+
29
+ end # class TestPROSITEConst
30
+
31
+
32
+ class TestPROSITE < Test::Unit::TestCase
33
+
34
+ def setup
35
+ bioruby_root = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4)).cleanpath.to_s
36
+ data = File.open(File.join(bioruby_root, 'test', 'data', 'prosite', 'prosite.dat')).read
37
+ data = data.split(Bio::PROSITE::RS)[0]
38
+ @obj = Bio::PROSITE.new(data)
39
+ end
40
+
41
+ def test_name
42
+ assert_equal("G_PROTEIN_RECEP_F1_1", @obj.name)
43
+ end
44
+
45
+ def test_division
46
+ data = "PATTERN"
47
+ assert_equal(data, @obj.division)
48
+ end
49
+
50
+ def test_ac
51
+ data = "PS00237"
52
+ assert_equal(data, @obj.ac)
53
+ end
54
+
55
+ def test_dt
56
+ assert_equal("APR-1990 (CREATED); NOV-1997 (DATA UPDATE); JUL-1998 (INFO UPDATE).", @obj.dt)
57
+ end
58
+
59
+ def test_de
60
+ data = "G-protein coupled receptors family 1 signature."
61
+ assert_equal(data, @obj.de)
62
+ end
63
+
64
+ def test_pa
65
+ pattern = "[GSTALIVMFYWC]-[GSTANCPDE]-{EDPKRH}-x(2)-[LIVMNQGA]-x(2)-[LIVMFT]-[GSTANC]-[LIVMFYWSTAC]-[DENH]-R-[FYWCSH]-x(2)-[LIVM]."
66
+ assert_equal(pattern, @obj.pa)
67
+ end
68
+
69
+ def test_ma
70
+ assert_equal('', @obj.ma)
71
+ end
72
+
73
+ def test_ru
74
+ assert_equal('', @obj.ru)
75
+ end
76
+
77
+ def test_nr
78
+ data = {"FALSE_NEG"=>112, "POSITIVE"=>[1057, 1057], "PARTIAL"=>48, "FALSE_POS"=>[64, 64], "RELEASE"=>["40.7", 103373], "TOTAL"=>[1121, 1121], "UNKNOWN"=>[0, 0]}
79
+
80
+ assert_equal(data, @obj.nr)
81
+ end
82
+
83
+ def test_release
84
+ assert_equal(['40.7', 103373], @obj.release)
85
+ end
86
+
87
+ def test_swissprot_release_number
88
+ assert_equal('40.7', @obj.swissprot_release_number)
89
+ end
90
+
91
+ def test_swissprot_release_sequences
92
+ assert_equal(103373, @obj.swissprot_release_sequences)
93
+ end
94
+
95
+ def test_total
96
+ assert_equal([1121, 1121], @obj.total)
97
+ end
98
+
99
+ def test_total_hits
100
+ assert_equal(1121, @obj.total_hits)
101
+ end
102
+
103
+ def test_total_sequences
104
+ assert_equal(1121, @obj.total_sequences)
105
+ end
106
+
107
+ def test_positive
108
+ assert_equal([1057, 1057], @obj.positive)
109
+ end
110
+
111
+ def test_positive_hits
112
+ assert_equal(1057, @obj.positive_hits)
113
+ end
114
+
115
+ def test_positive_sequences
116
+ assert_equal(1057, @obj.positive_sequences)
117
+ end
118
+
119
+ def test_unknown
120
+ assert_equal([0, 0], @obj.unknown)
121
+ end
122
+
123
+ def test_unknown_hits
124
+ assert_equal(0, @obj.unknown_hits)
125
+ end
126
+
127
+ def test_unknown_sequences
128
+ assert_equal(0, @obj.unknown_sequences)
129
+ end
130
+
131
+ def test_false_pos
132
+ assert_equal([64, 64], @obj.false_pos)
133
+ end
134
+
135
+ def test_false_positive_sequences
136
+ assert_equal(64, @obj.false_positive_sequences)
137
+ end
138
+
139
+ def test_false_neg
140
+ assert_equal(112, @obj.false_neg)
141
+ end
142
+
143
+ def test_partial
144
+ assert_equal(48, @obj.partial)
145
+ end
146
+
147
+ def test_cc
148
+ assert_equal({"TAXO-RANGE"=>"??E?V", "MAX-REPEAT"=>"1"}, @obj.cc)
149
+ end
150
+
151
+ def test_taxon_range
152
+ assert_equal('??E?V', @obj.taxon_range)
153
+ end
154
+
155
+ def test_max_repeat
156
+ assert_equal(1, @obj.max_repeat)
157
+ end
158
+
159
+ def test_site
160
+ assert_equal([0, nil], @obj.site)
161
+ end
162
+
163
+ def test_skip_flag
164
+ assert_equal(nil, @obj.skip_flag)
165
+ end
166
+
167
+ def test_dr
168
+ assert_equal(Hash, @obj.dr.class)
169
+ data = ['OPSD_LIMBE', 'T']
170
+ assert_equal(data, @obj.dr["O42427"])
171
+ end
172
+
173
+ def test_list_xref
174
+ flag = ''
175
+ assert_equal([], @obj.list_xref(flag))
176
+ end
177
+
178
+ def test_list_truepositive
179
+ data = ["O42427",
180
+ "P11617",
181
+ "P46090",
182
+ "P30939",
183
+ "P28336",
184
+ "Q9Z2J6",
185
+ "Q64326",
186
+ "P46092",
187
+ "P07550",
188
+ "Q9UKL2",
189
+ "P30940",
190
+ "P46093",
191
+ "Q61224",
192
+ "Q63384",
193
+ "P46094",
194
+ "Q28309",
195
+ "P22328",
196
+ "P46095",
197
+ "O77590",
198
+ "O02813",
199
+ "Q9R1C8",
200
+ "P22329",
201
+ "O93441",
202
+ "O42300",
203
+ "Q10904",
204
+ "O43613",
205
+ "Q9Z0D9",
206
+ "P18130",
207
+ "O42301",
208
+ "O43614",
209
+ "P22330",
210
+ "P22331",
211
+ "Q9GLJ8",
212
+ "O15552",
213
+ "O43193",
214
+ "P22332",
215
+ "O43194",
216
+ "Q9WV26",
217
+ "Q9TST4",
218
+ "Q62053",
219
+ "P58307",
220
+ "O42307",
221
+ "Q9TST5",
222
+ "P58308",
223
+ "Q9TST6",
224
+ "P41983",
225
+ "P30951",
226
+ "P41984",
227
+ "O02824",
228
+ "O88626",
229
+ "P91657",
230
+ "P30953",
231
+ "P18825",
232
+ "O62709",
233
+ "O42574",
234
+ "P30954",
235
+ "Q28585",
236
+ "O88628",
237
+ "P30955",
238
+ "P28221",
239
+ "Q9WU02",
240
+ "P28222",
241
+ "P32299",
242
+ "P70310",
243
+ "P28223",
244
+ "O76099",
245
+ "P04201",
246
+ "P35894",
247
+ "Q15722",
248
+ "P35895",
249
+ "O93459",
250
+ "P14416",
251
+ "P35897",
252
+ "P35898",
253
+ "P35899",
254
+ "P49578",
255
+ "O42451",
256
+ "P47745",
257
+ "Q9Y5N1",
258
+ "O42452",
259
+ "P50052",
260
+ "P47746",
261
+ "O97878",
262
+ "O02835",
263
+ "Q09502",
264
+ "Q28596",
265
+ "O00254",
266
+ "P31355",
267
+ "P47747",
268
+ "O97879",
269
+ "O02836",
270
+ "P31356",
271
+ "P30966",
272
+ "P79436",
273
+ "P47748",
274
+ "P87365",
275
+ "P08099",
276
+ "Q9JL21",
277
+ "P47749",
278
+ "P87366",
279
+ "O18481",
280
+ "P16582",
281
+ "P87367",
282
+ "P30968",
283
+ "O97880",
284
+ "P47750",
285
+ "P87368",
286
+ "Q62758",
287
+ "P30969",
288
+ "Q28468",
289
+ "O97881",
290
+ "Q09638",
291
+ "P09703",
292
+ "P87369",
293
+ "O95918",
294
+ "Q9TUE1",
295
+ "O97882",
296
+ "P22909",
297
+ "P09704",
298
+ "O18485",
299
+ "O42327",
300
+ "P47751",
301
+ "P47883",
302
+ "P18841",
303
+ "O55193",
304
+ "O97883",
305
+ "O18486",
306
+ "O42328",
307
+ "P47884",
308
+ "Q9EP86",
309
+ "O42329",
310
+ "O14626",
311
+ "P48145",
312
+ "P47887",
313
+ "O08725",
314
+ "P48146",
315
+ "P30974",
316
+ "O08858",
317
+ "O18910",
318
+ "O42330",
319
+ "O55197",
320
+ "O08726",
321
+ "O70526",
322
+ "P30975",
323
+ "O18911",
324
+ "Q28474",
325
+ "O18912",
326
+ "O70528",
327
+ "O18913",
328
+ "P34311",
329
+ "O18914",
330
+ "O42466",
331
+ "O95371",
332
+ "Q9WU25",
333
+ "P47892",
334
+ "P70596",
335
+ "P33396",
336
+ "P70597",
337
+ "Q61130",
338
+ "Q15743",
339
+ "Q15612",
340
+ "P51144",
341
+ "P32745",
342
+ "O00270",
343
+ "Q00991",
344
+ "Q9YGY9",
345
+ "P29754",
346
+ "Q9GZK3",
347
+ "O02721",
348
+ "Q9GZK4",
349
+ "Q15615",
350
+ "Q9Y5P1",
351
+ "Q60613",
352
+ "Q15062",
353
+ "P29755",
354
+ "Q9UKP6",
355
+ "Q28905",
356
+ "Q9YGZ0",
357
+ "P47898",
358
+ "Q60614",
359
+ "P47899",
360
+ "Q9GZK7",
361
+ "Q9YGZ1",
362
+ "Q9YGZ2",
363
+ "O97504",
364
+ "Q15619",
365
+ "P30987",
366
+ "Q9YGZ3",
367
+ "Q9YGZ4",
368
+ "Q93126",
369
+ "Q15620",
370
+ "Q9YGZ5",
371
+ "P30989",
372
+ "Q13725",
373
+ "Q93127",
374
+ "P16473",
375
+ "P23749",
376
+ "Q9YGZ6",
377
+ "O54814",
378
+ "O62743",
379
+ "Q9YGZ7",
380
+ "P52202",
381
+ "Q15622",
382
+ "Q9YGZ8",
383
+ "P56514",
384
+ "P30728",
385
+ "O97772",
386
+ "Q9YGZ9",
387
+ "P30991",
388
+ "P56515",
389
+ "P30729",
390
+ "Q9J529",
391
+ "P56516",
392
+ "P47774",
393
+ "O62747",
394
+ "P30992",
395
+ "P35403",
396
+ "P15823",
397
+ "P47775",
398
+ "Q9WUK7",
399
+ "P30993",
400
+ "O97512",
401
+ "P35404",
402
+ "P06002",
403
+ "O08878",
404
+ "P30730",
405
+ "P30994",
406
+ "O46635",
407
+ "P35405",
408
+ "P30731",
409
+ "P21728",
410
+ "P35406",
411
+ "P42288",
412
+ "P21729",
413
+ "P35407",
414
+ "P49217",
415
+ "P31387",
416
+ "P35408",
417
+ "P42289",
418
+ "O00155",
419
+ "P31388",
420
+ "O46639",
421
+ "P48039",
422
+ "Q64121",
423
+ "P35409",
424
+ "P49219",
425
+ "P31389",
426
+ "O18935",
427
+ "Q9TU05",
428
+ "P42290",
429
+ "P21730",
430
+ "P21731",
431
+ "P18871",
432
+ "P31390",
433
+ "P42291",
434
+ "P48040",
435
+ "P31391",
436
+ "P35410",
437
+ "P20789",
438
+ "Q13606",
439
+ "P48042",
440
+ "O42490",
441
+ "P35411",
442
+ "O88410",
443
+ "P31392",
444
+ "P29089",
445
+ "Q13607",
446
+ "P48043",
447
+ "P35412",
448
+ "P48044",
449
+ "O89039",
450
+ "P35413",
451
+ "P30872",
452
+ "O01668",
453
+ "P35414",
454
+ "P30873",
455
+ "Q9YH00",
456
+ "P79211",
457
+ "P30874",
458
+ "Q9YH01",
459
+ "Q28927",
460
+ "P30875",
461
+ "Q9YH02",
462
+ "P49912",
463
+ "O08890",
464
+ "P25100",
465
+ "Q28928",
466
+ "O95006",
467
+ "Q9YH03",
468
+ "P25101",
469
+ "Q28929",
470
+ "O95007",
471
+ "O15218",
472
+ "O88680",
473
+ "Q9YH04",
474
+ "O08892",
475
+ "Q05394",
476
+ "P79901",
477
+ "Q9YH05",
478
+ "P25102",
479
+ "P33032",
480
+ "Q64264",
481
+ "Q9ERZ3",
482
+ "P79902",
483
+ "P25103",
484
+ "P79217",
485
+ "Q9UGF5",
486
+ "Q9ERZ4",
487
+ "Q9N2A2",
488
+ "P79903",
489
+ "P13945",
490
+ "P25104",
491
+ "P79218",
492
+ "P33033",
493
+ "Q9UGF6",
494
+ "Q9N2A3",
495
+ "P25105",
496
+ "O97661",
497
+ "O70431",
498
+ "P79350",
499
+ "Q9UGF7",
500
+ "Q9N2A4",
501
+ "P48974",
502
+ "P25106",
503
+ "O97663",
504
+ "P03999",
505
+ "P16235",
506
+ "O95013",
507
+ "P22269",
508
+ "O97665",
509
+ "P26684",
510
+ "P97468",
511
+ "P47798",
512
+ "O97666",
513
+ "P22270",
514
+ "O18821",
515
+ "P47799",
516
+ "P49922",
517
+ "Q61038",
518
+ "P51050",
519
+ "P25929",
520
+ "P49238",
521
+ "Q28807",
522
+ "P28285",
523
+ "P79911",
524
+ "P28286",
525
+ "P13953",
526
+ "Q19084",
527
+ "O61303",
528
+ "P04000",
529
+ "P25930",
530
+ "P04001",
531
+ "Q9NPB9",
532
+ "P25931",
533
+ "Q9R1K6",
534
+ "P42866",
535
+ "P56412",
536
+ "P79914",
537
+ "Q61041",
538
+ "Q9GK74",
539
+ "P25115",
540
+ "P04950",
541
+ "P25116",
542
+ "P19020",
543
+ "P18762",
544
+ "O12948",
545
+ "Q26495",
546
+ "Q09561",
547
+ "Q25157",
548
+ "P70115",
549
+ "O77830",
550
+ "Q83207",
551
+ "P02699",
552
+ "O12000",
553
+ "Q01717",
554
+ "Q25158",
555
+ "P29403",
556
+ "P50406",
557
+ "Q01718",
558
+ "P29404",
559
+ "O42384",
560
+ "P50407",
561
+ "P79234",
562
+ "O42385",
563
+ "O02769",
564
+ "Q17232",
565
+ "P79236",
566
+ "P21761",
567
+ "P79237",
568
+ "P04274",
569
+ "Q28003",
570
+ "O75388",
571
+ "P24603",
572
+ "Q9TUK4",
573
+ "P53452",
574
+ "P08588",
575
+ "Q28005",
576
+ "P43240",
577
+ "Q61184",
578
+ "O08786",
579
+ "P79240",
580
+ "P53453",
581
+ "Q13639",
582
+ "Q9Y3N9",
583
+ "Q9UP62",
584
+ "P18089",
585
+ "P53454",
586
+ "P79928",
587
+ "P79242",
588
+ "Q01726",
589
+ "P24053",
590
+ "P79243",
591
+ "Q17239",
592
+ "Q01727",
593
+ "Q14330",
594
+ "P18090",
595
+ "Q9R024",
596
+ "O62791",
597
+ "O02777",
598
+ "P43114",
599
+ "O62792",
600
+ "P79113",
601
+ "O77713",
602
+ "O08790",
603
+ "O62793",
604
+ "P54833",
605
+ "P43116",
606
+ "O62794",
607
+ "Q61614",
608
+ "O77715",
609
+ "Q00788",
610
+ "P43117",
611
+ "O42266",
612
+ "O62795",
613
+ "O88319",
614
+ "Q03566",
615
+ "P43118",
616
+ "O62796",
617
+ "O02781",
618
+ "O08530",
619
+ "P43119",
620
+ "O42268",
621
+ "P16395",
622
+ "O62798",
623
+ "Q9DDN6",
624
+ "P05363",
625
+ "P30518",
626
+ "O13227",
627
+ "Q9GZQ6",
628
+ "P43252",
629
+ "O18982",
630
+ "P43253",
631
+ "P79807",
632
+ "O18983",
633
+ "P79808",
634
+ "O77721",
635
+ "O35786",
636
+ "P30098",
637
+ "P56439",
638
+ "P79809",
639
+ "P20309",
640
+ "O77723",
641
+ "P56440",
642
+ "Q28838",
643
+ "P55919",
644
+ "Q9UHM6",
645
+ "Q9TT23",
646
+ "P56441",
647
+ "P97926",
648
+ "Q63652",
649
+ "P55920",
650
+ "P56442",
651
+ "P79812",
652
+ "P25962",
653
+ "P56443",
654
+ "P35462",
655
+ "P56444",
656
+ "P35463",
657
+ "P56445",
658
+ "O97571",
659
+ "P79393",
660
+ "P56446",
661
+ "O02662",
662
+ "P49144",
663
+ "P56447",
664
+ "P79394",
665
+ "Q25188",
666
+ "P49145",
667
+ "P28190",
668
+ "P56448",
669
+ "P24628",
670
+ "P56449",
671
+ "O02664",
672
+ "P49146",
673
+ "P33765",
674
+ "Q9EQD2",
675
+ "Q24563",
676
+ "P33766",
677
+ "Q90674",
678
+ "O02666",
679
+ "P56450",
680
+ "P06199",
681
+ "Q25190",
682
+ "O02667",
683
+ "Q99500",
684
+ "P25021",
685
+ "P56451",
686
+ "P08482",
687
+ "P30796",
688
+ "Q9H1Y3",
689
+ "Q28031",
690
+ "P79266",
691
+ "O14581",
692
+ "P08483",
693
+ "P25023",
694
+ "P49019",
695
+ "P25024",
696
+ "P08485",
697
+ "P12657",
698
+ "P12526",
699
+ "Q9QXZ9",
700
+ "P08908",
701
+ "P07700",
702
+ "P25025",
703
+ "P32300",
704
+ "Q9Z1S9",
705
+ "P35342",
706
+ "P17200",
707
+ "O09047",
708
+ "P08909",
709
+ "O76100",
710
+ "Q91175",
711
+ "P43140",
712
+ "P49285",
713
+ "P32302",
714
+ "P35343",
715
+ "P43141",
716
+ "P49286",
717
+ "P32303",
718
+ "P35344",
719
+ "Q91178",
720
+ "P32304",
721
+ "Q9Y5X5",
722
+ "P35345",
723
+ "P08911",
724
+ "P43142",
725
+ "O08556",
726
+ "P49288",
727
+ "P35346",
728
+ "P52702",
729
+ "P32305",
730
+ "P08912",
731
+ "P11483",
732
+ "P32306",
733
+ "P52703",
734
+ "Q9R0M1",
735
+ "P08913",
736
+ "P32307",
737
+ "Q62463",
738
+ "P35348",
739
+ "O42294",
740
+ "P30542",
741
+ "P32308",
742
+ "P30411",
743
+ "P30543",
744
+ "P32309",
745
+ "Q9TU77",
746
+ "Q02152",
747
+ "Q02284",
748
+ "Q18904",
749
+ "P35350",
750
+ "P30545",
751
+ "Q28044",
752
+ "P08100",
753
+ "O77616",
754
+ "P35351",
755
+ "P70031",
756
+ "P30546",
757
+ "P79148",
758
+ "P30547",
759
+ "P32310",
760
+ "P16849",
761
+ "P32311",
762
+ "Q9JI35",
763
+ "P30548",
764
+ "P32312",
765
+ "P30549",
766
+ "Q9Y5Y4",
767
+ "P30680",
768
+ "P32313",
769
+ "O08565",
770
+ "Q28997",
771
+ "P97266",
772
+ "P11229",
773
+ "Q28998",
774
+ "Q9NYM4",
775
+ "O93603",
776
+ "P35356",
777
+ "P30550",
778
+ "O15973",
779
+ "P35357",
780
+ "P30551",
781
+ "O77621",
782
+ "P35358",
783
+ "P58173",
784
+ "P34968",
785
+ "P30552",
786
+ "P35359",
787
+ "P34969",
788
+ "P22888",
789
+ "P30553",
790
+ "O19012",
791
+ "P30554",
792
+ "P30555",
793
+ "O19014",
794
+ "P35360",
795
+ "Q9MZV8",
796
+ "P30556",
797
+ "Q99788",
798
+ "P35361",
799
+ "Q04683",
800
+ "P34970",
801
+ "P35362",
802
+ "P70174",
803
+ "P34971",
804
+ "Q9WUT7",
805
+ "P30558",
806
+ "Q9TUP7",
807
+ "P79291",
808
+ "P28088",
809
+ "P35363",
810
+ "P34972",
811
+ "O42179",
812
+ "P30559",
813
+ "P79292",
814
+ "Q99527",
815
+ "Q01776",
816
+ "P35364",
817
+ "P34973",
818
+ "Q64077",
819
+ "P41591",
820
+ "P21554",
821
+ "P34974",
822
+ "Q9XT45",
823
+ "O88495",
824
+ "P46002",
825
+ "Q90309",
826
+ "P41592",
827
+ "P79848",
828
+ "P56479",
829
+ "P21555",
830
+ "Q9GLX8",
831
+ "P35365",
832
+ "P34975",
833
+ "Q29003",
834
+ "P30560",
835
+ "P35366",
836
+ "P21556",
837
+ "P47211",
838
+ "P16177",
839
+ "P34976",
840
+ "P10980",
841
+ "O42604",
842
+ "P35367",
843
+ "Q95247",
844
+ "P34977",
845
+ "Q29005",
846
+ "P33533",
847
+ "P34978",
848
+ "P28646",
849
+ "Q17292",
850
+ "P41595",
851
+ "P35368",
852
+ "P33534",
853
+ "P56481",
854
+ "P79166",
855
+ "P41596",
856
+ "P20905",
857
+ "P35369",
858
+ "P28647",
859
+ "P33535",
860
+ "P56482",
861
+ "P41597",
862
+ "P24530",
863
+ "P56483",
864
+ "P47900",
865
+ "O19024",
866
+ "P35370",
867
+ "P56484",
868
+ "P47901",
869
+ "O18766",
870
+ "Q17296",
871
+ "O19025",
872
+ "P35371",
873
+ "P51651",
874
+ "P34981",
875
+ "P56485",
876
+ "Q9H207",
877
+ "P35372",
878
+ "P56486",
879
+ "Q13304",
880
+ "P35373",
881
+ "P34982",
882
+ "Q29010",
883
+ "Q9H209",
884
+ "P35374",
885
+ "P34983",
886
+ "O76000",
887
+ "P08255",
888
+ "P04761",
889
+ "P22086",
890
+ "P56488",
891
+ "P35375",
892
+ "Q98980",
893
+ "Q28886",
894
+ "Q95254",
895
+ "P14842",
896
+ "P34984",
897
+ "O76001",
898
+ "O76002",
899
+ "P56489",
900
+ "P35376",
901
+ "P34986",
902
+ "Q9XT57",
903
+ "Q98982",
904
+ "Q95125",
905
+ "Q28756",
906
+ "Q9H343",
907
+ "O13018",
908
+ "P35377",
909
+ "P34987",
910
+ "Q9XT58",
911
+ "P97288",
912
+ "P56490",
913
+ "Q9H344",
914
+ "P35378",
915
+ "P70612",
916
+ "P56491",
917
+ "P79175",
918
+ "P34989",
919
+ "P35379",
920
+ "P16610",
921
+ "P56492",
922
+ "O19032",
923
+ "P79176",
924
+ "Q9H346",
925
+ "P49059",
926
+ "P56493",
927
+ "P79177",
928
+ "P56494",
929
+ "Q9NQN1",
930
+ "P56495",
931
+ "P79863",
932
+ "P97292",
933
+ "Q91081",
934
+ "P79178",
935
+ "P97714",
936
+ "Q99677",
937
+ "P35382",
938
+ "P35383",
939
+ "O54798",
940
+ "P56496",
941
+ "Q99678",
942
+ "O19037",
943
+ "Q04573",
944
+ "P34992",
945
+ "P34993",
946
+ "P15409",
947
+ "O54799",
948
+ "P56497",
949
+ "Q99679",
950
+ "Q94741",
951
+ "P97717",
952
+ "P34994",
953
+ "Q29154",
954
+ "P97295",
955
+ "Q90328",
956
+ "P56498",
957
+ "P32211",
958
+ "Q92847",
959
+ "P34995",
960
+ "P32212",
961
+ "P34996",
962
+ "Q60474",
963
+ "P34997",
964
+ "Q63447",
965
+ "Q60475",
966
+ "P10608",
967
+ "Q60476",
968
+ "Q62928",
969
+ "Q13585",
970
+ "O95665",
971
+ "P79188",
972
+ "P37288",
973
+ "Q9DGG4",
974
+ "Q90334",
975
+ "P51436",
976
+ "P26255",
977
+ "P37289",
978
+ "Q17053",
979
+ "O16005",
980
+ "Q28509",
981
+ "P21450",
982
+ "P55167",
983
+ "Q9Z2D5",
984
+ "P79190",
985
+ "P21451",
986
+ "Q9QZN9",
987
+ "P79191",
988
+ "P21452",
989
+ "P51675",
990
+ "Q28642",
991
+ "P21453",
992
+ "P51676",
993
+ "Q60483",
994
+ "P49892",
995
+ "P14600",
996
+ "P51677",
997
+ "Q60484",
998
+ "Q9ES90",
999
+ "Q9HC97",
1000
+ "P51678",
1001
+ "P17124",
1002
+ "P79748",
1003
+ "P51679",
1004
+ "O18793",
1005
+ "Q62805",
1006
+ "P41231",
1007
+ "P28678",
1008
+ "P41232",
1009
+ "Q9Y2T5",
1010
+ "P51680",
1011
+ "P18599",
1012
+ "Q9TT96",
1013
+ "Q9WVD0",
1014
+ "P28679",
1015
+ "O19054",
1016
+ "Q18007",
1017
+ "P32229",
1018
+ "Q9XT82",
1019
+ "O35599",
1020
+ "P51681",
1021
+ "P51682",
1022
+ "P47800",
1023
+ "P28680",
1024
+ "Q25414",
1025
+ "P28681",
1026
+ "P51683",
1027
+ "Q90214",
1028
+ "Q28519",
1029
+ "Q90215",
1030
+ "P51684",
1031
+ "P28682",
1032
+ "O60755",
1033
+ "P28683",
1034
+ "P29371",
1035
+ "P51685",
1036
+ "Q9H3N8",
1037
+ "O16017",
1038
+ "P21462",
1039
+ "P25089",
1040
+ "O00574",
1041
+ "P21463",
1042
+ "P28684",
1043
+ "P79756",
1044
+ "O54689",
1045
+ "P51686",
1046
+ "P47936",
1047
+ "O16018",
1048
+ "P51582",
1049
+ "O16019",
1050
+ "P22671",
1051
+ "Q9UM60",
1052
+ "P47937",
1053
+ "O77408",
1054
+ "Q9TTQ9",
1055
+ "Q95154",
1056
+ "P26824",
1057
+ "P25090",
1058
+ "Q95155",
1059
+ "O16020",
1060
+ "P52500",
1061
+ "Q95156",
1062
+ "Q28524",
1063
+ "O35210",
1064
+ "P32236",
1065
+ "Q95157",
1066
+ "P48302",
1067
+ "Q90352",
1068
+ "P32237",
1069
+ "O35476",
1070
+ "P02700",
1071
+ "P48303",
1072
+ "P32238",
1073
+ "O02213",
1074
+ "P25095",
1075
+ "P32239",
1076
+ "O35214",
1077
+ "O35478",
1078
+ "P32240",
1079
+ "P20395",
1080
+ "P79763",
1081
+ "P18901",
1082
+ "Q16581",
1083
+ "P25099",
1084
+ "P79898",
1085
+ "O77680",
1086
+ "P32244",
1087
+ "Q9PUI7",
1088
+ "P28564",
1089
+ "P49650",
1090
+ "P32245",
1091
+ "P28565",
1092
+ "P49651",
1093
+ "P32246",
1094
+ "P28566",
1095
+ "P49652",
1096
+ "Q98894",
1097
+ "P32247",
1098
+ "Q9H255",
1099
+ "Q98895",
1100
+ "P32248",
1101
+ "P32249",
1102
+ "P20272",
1103
+ "P43088",
1104
+ "Q95170",
1105
+ "P50128",
1106
+ "P32250",
1107
+ "P50391",
1108
+ "P70658",
1109
+ "P08172",
1110
+ "P50129",
1111
+ "P08173",
1112
+ "P32251",
1113
+ "P46616",
1114
+ "Q9QYN8",
1115
+ "P50130",
1116
+ "P51470",
1117
+ "P14763",
1118
+ "P51471",
1119
+ "P50132",
1120
+ "Q27987",
1121
+ "P49660",
1122
+ "P51472",
1123
+ "P51473",
1124
+ "O60412",
1125
+ "P51474",
1126
+ "P51475",
1127
+ "Q90373",
1128
+ "Q95179",
1129
+ "P51476",
1130
+ "P58406",
1131
+ "O88853",
1132
+ "P70536",
1133
+ "Q17094",
1134
+ "O88854",
1135
+ "Q11082",
1136
+ "P37067",
1137
+ "Q90245",
1138
+ "P79785",
1139
+ "P37068",
1140
+ "O13076",
1141
+ "Q92633",
1142
+ "P46626",
1143
+ "Q91559",
1144
+ "P37069",
1145
+ "P46627",
1146
+ "P21917",
1147
+ "P23944",
1148
+ "O97967",
1149
+ "P46628",
1150
+ "P56971",
1151
+ "P43657",
1152
+ "O62809",
1153
+ "Q28553",
1154
+ "P21918",
1155
+ "P23945",
1156
+ "P20288",
1157
+ "O19091",
1158
+ "O15529",
1159
+ "P37070",
1160
+ "Q28422",
1161
+ "P29274",
1162
+ "P37071",
1163
+ "P29275",
1164
+ "Q9Z0Z6",
1165
+ "P29276",
1166
+ "Q25321",
1167
+ "Q18179",
1168
+ "P30372",
1169
+ "Q90252",
1170
+ "O14843",
1171
+ "Q9Z2I3",
1172
+ "Q25322",
1173
+ "Q08520",
1174
+ "Q28558",
1175
+ "P51488",
1176
+ "P41143",
1177
+ "P23265",
1178
+ "Q28691",
1179
+ "P51489",
1180
+ "P09241",
1181
+ "O18312",
1182
+ "P41144",
1183
+ "Q61212",
1184
+ "P23266",
1185
+ "Q9WV08",
1186
+ "P41145",
1187
+ "P46636",
1188
+ "P23267",
1189
+ "P56718",
1190
+ "P41146",
1191
+ "P21109",
1192
+ "P51490",
1193
+ "P79400",
1194
+ "Q9UPC5",
1195
+ "Q62035",
1196
+ "P56719",
1197
+ "P23269",
1198
+ "O14718",
1199
+ "P79798",
1200
+ "P51491",
1201
+ "O18315",
1202
+ "P41149",
1203
+ "P23270",
1204
+ "O60431",
1205
+ "P49681",
1206
+ "P23271",
1207
+ "P19327",
1208
+ "P30935",
1209
+ "P11613",
1210
+ "P49682",
1211
+ "P23272",
1212
+ "P41968",
1213
+ "O43603",
1214
+ "P19328",
1215
+ "Q63931",
1216
+ "P30936",
1217
+ "P49683",
1218
+ "P11614",
1219
+ "P23273",
1220
+ "P46089",
1221
+ "P28334",
1222
+ "P49684",
1223
+ "P30937",
1224
+ "P11615",
1225
+ "P23274",
1226
+ "P28335",
1227
+ "O13092",
1228
+ "O43869",
1229
+ "P97520",
1230
+ "Q01337",
1231
+ "P30938",
1232
+ "P49685",
1233
+ "P11616",
1234
+ "P23275",
1235
+ "Q01338"]
1236
+ assert_equal(data.sort, @obj.list_truepositive.sort)
1237
+ end
1238
+
1239
+ def test_list_falsenegative
1240
+ data = ["P18259",
1241
+ "Q13813",
1242
+ "Q55593",
1243
+ "Q00274",
1244
+ "P54466",
1245
+ "Q9HJA4",
1246
+ "P55687",
1247
+ "Q9W0K0",
1248
+ "Q42608",
1249
+ "P45873",
1250
+ "P45198",
1251
+ "P15828",
1252
+ "P18609",
1253
+ "Q51758",
1254
+ "P24151",
1255
+ "P23892",
1256
+ "P41510",
1257
+ "P22817",
1258
+ "P46457",
1259
+ "O15910",
1260
+ "P23515",
1261
+ "O59098",
1262
+ "P26560",
1263
+ "P26561",
1264
+ "P47551",
1265
+ "P22023",
1266
+ "P21503",
1267
+ "Q9VNB3",
1268
+ "P25147",
1269
+ "Q42675",
1270
+ "P21524",
1271
+ "P06882",
1272
+ "Q61647",
1273
+ "P42790",
1274
+ "Q10775",
1275
+ "O84877",
1276
+ "P51656",
1277
+ "P75548",
1278
+ "Q92839",
1279
+ "P51657",
1280
+ "P37274",
1281
+ "P34724",
1282
+ "P07751",
1283
+ "P00498",
1284
+ "P07886",
1285
+ "P26258",
1286
+ "O67284",
1287
+ "Q25410",
1288
+ "P46724",
1289
+ "P76097",
1290
+ "P16086",
1291
+ "P08032",
1292
+ "P14198",
1293
+ "P77916",
1294
+ "O60779",
1295
+ "P13688",
1296
+ "Q03834",
1297
+ "Q63912",
1298
+ "O68824",
1299
+ "P77932",
1300
+ "Q53547",
1301
+ "P77933",
1302
+ "P34529",
1303
+ "Q00126"]
1304
+ assert_equal(data.sort, @obj.list_falsenegative.sort)
1305
+ end
1306
+
1307
+ def test_list_falsepositive
1308
+ data =["P41985",
1309
+ "P41986",
1310
+ "P17645",
1311
+ "Q60612",
1312
+ "Q60879",
1313
+ "P52592",
1314
+ "Q60882",
1315
+ "Q60883",
1316
+ "Q60884",
1317
+ "Q60885",
1318
+ "Q60886",
1319
+ "Q60887",
1320
+ "Q60888",
1321
+ "Q60889",
1322
+ "Q60890",
1323
+ "P49218",
1324
+ "Q60891",
1325
+ "Q60892",
1326
+ "P49220",
1327
+ "Q60893",
1328
+ "Q60894",
1329
+ "Q60895",
1330
+ "O70430",
1331
+ "O70432",
1332
+ "P51046",
1333
+ "P51047",
1334
+ "P51048",
1335
+ "P51049",
1336
+ "P51051",
1337
+ "P51052",
1338
+ "Q98913",
1339
+ "Q98914",
1340
+ "Q61616",
1341
+ "Q61618",
1342
+ "P79250",
1343
+ "P14803",
1344
+ "P49287",
1345
+ "Q28602",
1346
+ "P97267",
1347
+ "Q90305",
1348
+ "Q29006",
1349
+ "Q95252",
1350
+ "P34985",
1351
+ "Q90456",
1352
+ "Q95136",
1353
+ "Q95137",
1354
+ "Q62953",
1355
+ "Q95195"]
1356
+ assert_equal(data.sort, @obj.list_falsepositive.sort)
1357
+ end
1358
+
1359
+ def test_list_potentialhit
1360
+ data = ["P41985",
1361
+ "P41986",
1362
+ "P17645",
1363
+ "Q60612",
1364
+ "Q60879",
1365
+ "P52592",
1366
+ "Q60882",
1367
+ "Q60883",
1368
+ "Q60884",
1369
+ "Q60885",
1370
+ "Q60886",
1371
+ "Q60887",
1372
+ "Q60888",
1373
+ "Q60889",
1374
+ "Q60890",
1375
+ "P49218",
1376
+ "Q60891",
1377
+ "Q60892",
1378
+ "P49220",
1379
+ "Q60893",
1380
+ "Q60894",
1381
+ "Q60895",
1382
+ "O70430",
1383
+ "O70432",
1384
+ "P51046",
1385
+ "P51047",
1386
+ "P51048",
1387
+ "P51049",
1388
+ "P51051",
1389
+ "P51052",
1390
+ "Q98913",
1391
+ "Q98914",
1392
+ "Q61616",
1393
+ "Q61618",
1394
+ "P79250",
1395
+ "P14803",
1396
+ "P49287",
1397
+ "Q28602",
1398
+ "P97267",
1399
+ "Q90305",
1400
+ "Q29006",
1401
+ "Q95252",
1402
+ "P34985",
1403
+ "Q90456",
1404
+ "Q95136",
1405
+ "Q95137",
1406
+ "Q62953",
1407
+ "Q95195"]
1408
+ assert_equal(data.sort, @obj.list_potentialhit.sort)
1409
+ end
1410
+
1411
+ def test_list_unknown
1412
+ data = []
1413
+ assert_equal(data, @obj.list_unknown)
1414
+ end
1415
+
1416
+ def test_pdb_xref
1417
+ data = ["1BOJ", "1BOK", "1F88"]
1418
+ assert_equal(data, @obj.pdb_xref)
1419
+ end
1420
+
1421
+ def test_pdoc_xref
1422
+ data = "PDOC00210"
1423
+ assert_equal(data, @obj.pdoc_xref)
1424
+ end
1425
+
1426
+ def test_pa2re
1427
+ pa = '[AC]-x-V-x(4)-{ED}.'
1428
+ assert_equal(/[AC].V.{4}[^ED]/i, @obj.pa2re(pa))
1429
+ end
1430
+
1431
+ def test_self_pa2re
1432
+ pa = '[AC]-x-V-x(4)-{ED}.'
1433
+ assert_equal(/[AC].V.{4}[^ED]/i, Bio::PROSITE.pa2re(pa))
1434
+ end
1435
+
1436
+ end # class TestPROSITE
1437
+ end