bio 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/bioruby +14 -122
- data/bin/br_biofetch.rb +2 -2
- data/bin/br_bioflat.rb +2 -2
- data/bin/br_biogetseq.rb +2 -2
- data/bin/br_pmfetch.rb +3 -3
- data/doc/Changes-0.7.rd +77 -0
- data/doc/KEGG_API.rd +523 -232
- data/doc/KEGG_API.rd.ja +529 -207
- data/doc/Tutorial.rd +48 -11
- data/lib/bio.rb +59 -6
- data/lib/bio/alignment.rb +713 -103
- data/lib/bio/appl/bl2seq/report.rb +2 -18
- data/lib/bio/appl/blast.rb +108 -91
- data/lib/bio/appl/blast/format0.rb +33 -18
- data/lib/bio/appl/blast/format8.rb +6 -20
- data/lib/bio/appl/blast/report.rb +293 -429
- data/lib/bio/appl/blast/rexml.rb +8 -22
- data/lib/bio/appl/blast/wublast.rb +21 -12
- data/lib/bio/appl/blast/xmlparser.rb +180 -183
- data/lib/bio/appl/blat/report.rb +127 -30
- data/lib/bio/appl/clustalw.rb +87 -59
- data/lib/bio/appl/clustalw/report.rb +20 -22
- data/lib/bio/appl/emboss.rb +113 -20
- data/lib/bio/appl/fasta.rb +173 -198
- data/lib/bio/appl/fasta/format10.rb +244 -347
- data/lib/bio/appl/gcg/msf.rb +212 -0
- data/lib/bio/appl/gcg/seq.rb +195 -0
- data/lib/bio/appl/genscan/report.rb +5 -23
- data/lib/bio/appl/hmmer.rb +8 -45
- data/lib/bio/appl/hmmer/report.rb +2 -20
- data/lib/bio/appl/iprscan/report.rb +374 -0
- data/lib/bio/appl/mafft.rb +87 -50
- data/lib/bio/appl/mafft/report.rb +151 -44
- data/lib/bio/appl/muscle.rb +52 -0
- data/lib/bio/appl/phylip/alignment.rb +129 -0
- data/lib/bio/appl/phylip/distance_matrix.rb +96 -0
- data/lib/bio/appl/probcons.rb +41 -0
- data/lib/bio/appl/psort.rb +89 -96
- data/lib/bio/appl/psort/report.rb +6 -22
- data/lib/bio/appl/pts1.rb +263 -0
- data/lib/bio/appl/sim4.rb +26 -36
- data/lib/bio/appl/sim4/report.rb +2 -18
- data/lib/bio/appl/sosui/report.rb +5 -20
- data/lib/bio/appl/spidey/report.rb +2 -2
- data/lib/bio/appl/targetp/report.rb +4 -20
- data/lib/bio/appl/tcoffee.rb +55 -0
- data/lib/bio/appl/tmhmm/report.rb +4 -20
- data/lib/bio/command.rb +235 -64
- data/lib/bio/data/aa.rb +21 -26
- data/lib/bio/data/codontable.rb +2 -20
- data/lib/bio/data/na.rb +19 -4
- data/lib/bio/db.rb +27 -12
- data/lib/bio/db/aaindex.rb +2 -20
- data/lib/bio/db/embl/common.rb +4 -21
- data/lib/bio/db/embl/embl.rb +33 -85
- data/lib/bio/db/embl/sptr.rb +612 -302
- data/lib/bio/db/embl/swissprot.rb +10 -29
- data/lib/bio/db/embl/trembl.rb +10 -29
- data/lib/bio/db/embl/uniprot.rb +10 -29
- data/lib/bio/db/fantom.rb +15 -20
- data/lib/bio/db/fasta.rb +3 -3
- data/lib/bio/db/genbank/common.rb +37 -46
- data/lib/bio/db/genbank/ddbj.rb +6 -18
- data/lib/bio/db/genbank/genbank.rb +47 -186
- data/lib/bio/db/genbank/genpept.rb +4 -17
- data/lib/bio/db/genbank/refseq.rb +4 -17
- data/lib/bio/db/gff.rb +103 -35
- data/lib/bio/db/go.rb +4 -20
- data/lib/bio/db/kegg/brite.rb +26 -36
- data/lib/bio/db/kegg/compound.rb +81 -85
- data/lib/bio/db/kegg/drug.rb +98 -0
- data/lib/bio/db/kegg/enzyme.rb +133 -110
- data/lib/bio/db/kegg/expression.rb +2 -20
- data/lib/bio/db/kegg/genes.rb +208 -238
- data/lib/bio/db/kegg/genome.rb +164 -285
- data/lib/bio/db/kegg/glycan.rb +114 -157
- data/lib/bio/db/kegg/keggtab.rb +242 -303
- data/lib/bio/db/kegg/kgml.rb +117 -160
- data/lib/bio/db/kegg/orthology.rb +112 -0
- data/lib/bio/db/kegg/reaction.rb +54 -69
- data/lib/bio/db/kegg/taxonomy.rb +331 -0
- data/lib/bio/db/lasergene.rb +209 -0
- data/lib/bio/db/litdb.rb +3 -27
- data/lib/bio/db/medline.rb +228 -249
- data/lib/bio/db/nbrf.rb +3 -3
- data/lib/bio/db/newick.rb +510 -0
- data/lib/bio/db/nexus.rb +1854 -0
- data/lib/bio/db/pdb.rb +5 -17
- data/lib/bio/db/pdb/atom.rb +2 -18
- data/lib/bio/db/pdb/chain.rb +2 -18
- data/lib/bio/db/pdb/chemicalcomponent.rb +2 -18
- data/lib/bio/db/pdb/model.rb +2 -18
- data/lib/bio/db/pdb/pdb.rb +73 -34
- data/lib/bio/db/pdb/residue.rb +4 -20
- data/lib/bio/db/pdb/utils.rb +2 -18
- data/lib/bio/db/prosite.rb +403 -422
- data/lib/bio/db/rebase.rb +84 -40
- data/lib/bio/db/soft.rb +404 -0
- data/lib/bio/db/transfac.rb +5 -17
- data/lib/bio/feature.rb +106 -52
- data/lib/bio/io/das.rb +32 -42
- data/lib/bio/io/dbget.rb +2 -20
- data/lib/bio/io/ddbjxml.rb +77 -138
- data/lib/bio/io/ebisoap.rb +158 -0
- data/lib/bio/io/ensembl.rb +229 -0
- data/lib/bio/io/fastacmd.rb +89 -82
- data/lib/bio/io/fetch.rb +163 -96
- data/lib/bio/io/flatfile.rb +170 -73
- data/lib/bio/io/flatfile/bdb.rb +3 -16
- data/lib/bio/io/flatfile/index.rb +2 -2
- data/lib/bio/io/flatfile/indexer.rb +3 -2
- data/lib/bio/io/higet.rb +12 -31
- data/lib/bio/io/keggapi.rb +210 -269
- data/lib/bio/io/ncbisoap.rb +155 -0
- data/lib/bio/io/pubmed.rb +169 -147
- data/lib/bio/io/registry.rb +4 -20
- data/lib/bio/io/soapwsdl.rb +43 -38
- data/lib/bio/io/sql.rb +242 -305
- data/lib/bio/location.rb +407 -285
- data/lib/bio/map.rb +410 -0
- data/lib/bio/pathway.rb +558 -695
- data/lib/bio/reference.rb +272 -75
- data/lib/bio/sequence.rb +255 -13
- data/lib/bio/sequence/aa.rb +71 -10
- data/lib/bio/sequence/common.rb +187 -33
- data/lib/bio/sequence/compat.rb +59 -4
- data/lib/bio/sequence/format.rb +54 -7
- data/lib/bio/sequence/generic.rb +3 -3
- data/lib/bio/sequence/na.rb +328 -26
- data/lib/bio/shell.rb +11 -4
- data/lib/bio/shell/core.rb +221 -160
- data/lib/bio/shell/demo.rb +18 -15
- data/lib/bio/shell/interface.rb +14 -12
- data/lib/bio/shell/irb.rb +95 -0
- data/lib/bio/shell/object.rb +45 -26
- data/lib/bio/shell/plugin/blast.rb +42 -0
- data/lib/bio/shell/plugin/codon.rb +22 -14
- data/lib/bio/shell/plugin/das.rb +58 -0
- data/lib/bio/shell/plugin/emboss.rb +2 -2
- data/lib/bio/shell/plugin/entry.rb +22 -11
- data/lib/bio/shell/plugin/flatfile.rb +2 -2
- data/lib/bio/shell/plugin/keggapi.rb +13 -6
- data/lib/bio/shell/plugin/midi.rb +4 -4
- data/lib/bio/shell/plugin/obda.rb +2 -2
- data/lib/bio/shell/plugin/psort.rb +56 -0
- data/lib/bio/shell/plugin/seq.rb +35 -8
- data/lib/bio/shell/plugin/soap.rb +87 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/bioruby_generator.rb +29 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/_classes.rhtml +4 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/_log.rhtml +27 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/_methods.rhtml +11 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/_modules.rhtml +4 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/_variables.rhtml +7 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby-bg.gif +0 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby-console.png +0 -0
- data/lib/bio/shell/rails/{public/images/icon.png → vendor/plugins/generators/bioruby/templates/bioruby-gem.png} +0 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby-link.gif +0 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby.css +369 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby.rhtml +47 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby_controller.rb +144 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/bioruby_helper.rb +47 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/commands.rhtml +8 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/history.rhtml +10 -0
- data/lib/bio/shell/rails/vendor/plugins/generators/bioruby/templates/index.rhtml +22 -0
- data/lib/bio/shell/script.rb +25 -0
- data/lib/bio/shell/setup.rb +109 -0
- data/lib/bio/shell/web.rb +70 -58
- data/lib/bio/tree.rb +850 -0
- data/lib/bio/util/color_scheme.rb +84 -107
- data/lib/bio/util/color_scheme/buried.rb +5 -24
- data/lib/bio/util/color_scheme/helix.rb +5 -24
- data/lib/bio/util/color_scheme/hydropathy.rb +5 -24
- data/lib/bio/util/color_scheme/nucleotide.rb +5 -24
- data/lib/bio/util/color_scheme/strand.rb +5 -24
- data/lib/bio/util/color_scheme/taylor.rb +5 -24
- data/lib/bio/util/color_scheme/turn.rb +5 -24
- data/lib/bio/util/color_scheme/zappo.rb +5 -24
- data/lib/bio/util/contingency_table.rb +70 -43
- data/lib/bio/util/restriction_enzyme.rb +228 -0
- data/lib/bio/util/restriction_enzyme/analysis.rb +249 -0
- data/lib/bio/util/restriction_enzyme/analysis_basic.rb +217 -0
- data/lib/bio/util/restriction_enzyme/cut_symbol.rb +107 -0
- data/lib/bio/util/restriction_enzyme/double_stranded.rb +321 -0
- data/lib/bio/util/restriction_enzyme/double_stranded/aligned_strands.rb +130 -0
- data/lib/bio/util/restriction_enzyme/double_stranded/cut_location_pair.rb +103 -0
- data/lib/bio/util/restriction_enzyme/double_stranded/cut_location_pair_in_enzyme_notation.rb +38 -0
- data/lib/bio/util/restriction_enzyme/double_stranded/cut_locations.rb +76 -0
- data/lib/bio/util/restriction_enzyme/double_stranded/cut_locations_in_enzyme_notation.rb +107 -0
- data/lib/bio/util/restriction_enzyme/enzymes.yaml +7061 -0
- data/lib/bio/util/restriction_enzyme/range/cut_range.rb +24 -0
- data/lib/bio/util/restriction_enzyme/range/cut_ranges.rb +47 -0
- data/lib/bio/util/restriction_enzyme/range/horizontal_cut_range.rb +67 -0
- data/lib/bio/util/restriction_enzyme/range/sequence_range.rb +257 -0
- data/lib/bio/util/restriction_enzyme/range/sequence_range/calculated_cuts.rb +242 -0
- data/lib/bio/util/restriction_enzyme/range/sequence_range/fragment.rb +51 -0
- data/lib/bio/util/restriction_enzyme/range/sequence_range/fragments.rb +41 -0
- data/lib/bio/util/restriction_enzyme/range/vertical_cut_range.rb +77 -0
- data/lib/bio/util/restriction_enzyme/single_strand.rb +199 -0
- data/lib/bio/util/restriction_enzyme/single_strand/cut_locations_in_enzyme_notation.rb +135 -0
- data/lib/bio/util/restriction_enzyme/single_strand_complement.rb +23 -0
- data/lib/bio/util/restriction_enzyme/string_formatting.rb +111 -0
- data/lib/bio/util/sirna.rb +4 -22
- data/sample/color_scheme_na.rb +4 -12
- data/sample/enzymes.rb +78 -0
- data/sample/goslim.rb +5 -13
- data/sample/psortplot_html.rb +4 -12
- data/test/data/blast/2.2.15.blastp.m7 +876 -0
- data/test/data/embl/AB090716.embl.rel89 +63 -0
- data/test/data/fasta/example1.txt +75 -0
- data/test/data/fasta/example2.txt +21 -0
- data/test/data/iprscan/merged.raw +32 -0
- data/test/data/iprscan/merged.txt +74 -0
- data/test/data/soft/GDS100_partial.soft +92 -0
- data/test/data/soft/GSE3457_family_partial.soft +874 -0
- data/test/functional/bio/io/test_ensembl.rb +103 -0
- data/test/functional/bio/io/test_soapwsdl.rb +5 -17
- data/test/unit/bio/appl/bl2seq/test_report.rb +2 -2
- data/test/unit/bio/appl/blast/test_report.rb +3 -16
- data/test/unit/bio/appl/blast/test_xmlparser.rb +4 -16
- data/test/unit/bio/appl/genscan/test_report.rb +3 -16
- data/test/unit/bio/appl/hmmer/test_report.rb +3 -16
- data/test/unit/bio/appl/iprscan/test_report.rb +338 -0
- data/test/unit/bio/appl/mafft/test_report.rb +63 -0
- data/test/unit/bio/appl/sosui/test_report.rb +3 -16
- data/test/unit/bio/appl/targetp/test_report.rb +3 -16
- data/test/unit/bio/appl/test_blast.rb +3 -16
- data/test/unit/bio/appl/test_fasta.rb +4 -16
- data/test/unit/bio/appl/test_pts1.rb +140 -0
- data/test/unit/bio/appl/tmhmm/test_report.rb +3 -16
- data/test/unit/bio/data/test_aa.rb +4 -17
- data/test/unit/bio/data/test_codontable.rb +3 -16
- data/test/unit/bio/data/test_na.rb +3 -3
- data/test/unit/bio/db/embl/test_common.rb +3 -16
- data/test/unit/bio/db/embl/test_embl.rb +3 -16
- data/test/unit/bio/db/embl/test_embl_rel89.rb +219 -0
- data/test/unit/bio/db/embl/test_sptr.rb +1548 -41
- data/test/unit/bio/db/embl/test_uniprot.rb +3 -16
- data/test/unit/bio/db/kegg/test_genes.rb +3 -16
- data/test/unit/bio/db/pdb/test_pdb.rb +7 -24
- data/test/unit/bio/db/test_aaindex.rb +2 -2
- data/test/unit/bio/db/test_fasta.rb +3 -16
- data/test/unit/bio/db/test_gff.rb +3 -16
- data/test/unit/bio/db/test_lasergene.rb +95 -0
- data/test/unit/bio/db/test_newick.rb +56 -0
- data/test/unit/bio/db/test_nexus.rb +360 -0
- data/test/unit/bio/db/test_prosite.rb +5 -18
- data/test/unit/bio/db/test_rebase.rb +11 -25
- data/test/unit/bio/db/test_soft.rb +138 -0
- data/test/unit/bio/io/test_ddbjxml.rb +5 -17
- data/test/unit/bio/io/test_ensembl.rb +109 -0
- data/test/unit/bio/io/test_fastacmd.rb +3 -16
- data/test/unit/bio/io/test_flatfile.rb +237 -0
- data/test/unit/bio/io/test_soapwsdl.rb +4 -17
- data/test/unit/bio/sequence/test_aa.rb +3 -3
- data/test/unit/bio/sequence/test_common.rb +3 -16
- data/test/unit/bio/sequence/test_compat.rb +3 -16
- data/test/unit/bio/sequence/test_na.rb +29 -3
- data/test/unit/bio/shell/plugin/test_seq.rb +8 -8
- data/test/unit/bio/test_alignment.rb +16 -27
- data/test/unit/bio/test_command.rb +242 -25
- data/test/unit/bio/test_db.rb +3 -16
- data/test/unit/bio/test_feature.rb +4 -16
- data/test/unit/bio/test_location.rb +4 -16
- data/test/unit/bio/test_map.rb +230 -0
- data/test/unit/bio/test_pathway.rb +4 -16
- data/test/unit/bio/test_reference.rb +2 -2
- data/test/unit/bio/test_sequence.rb +7 -19
- data/test/unit/bio/test_shell.rb +3 -16
- data/test/unit/bio/test_tree.rb +593 -0
- data/test/unit/bio/util/restriction_enzyme/analysis/test_calculated_cuts.rb +299 -0
- data/test/unit/bio/util/restriction_enzyme/analysis/test_cut_ranges.rb +103 -0
- data/test/unit/bio/util/restriction_enzyme/analysis/test_sequence_range.rb +240 -0
- data/test/unit/bio/util/restriction_enzyme/double_stranded/test_aligned_strands.rb +100 -0
- data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair.rb +75 -0
- data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_location_pair_in_enzyme_notation.rb +73 -0
- data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations.rb +53 -0
- data/test/unit/bio/util/restriction_enzyme/double_stranded/test_cut_locations_in_enzyme_notation.rb +104 -0
- data/test/unit/bio/util/restriction_enzyme/single_strand/test_cut_locations_in_enzyme_notation.rb +83 -0
- data/test/unit/bio/util/restriction_enzyme/test_analysis.rb +246 -0
- data/test/unit/bio/util/restriction_enzyme/test_cut_symbol.rb +44 -0
- data/test/unit/bio/util/restriction_enzyme/test_double_stranded.rb +115 -0
- data/test/unit/bio/util/restriction_enzyme/test_single_strand.rb +147 -0
- data/test/unit/bio/util/restriction_enzyme/test_single_strand_complement.rb +147 -0
- data/test/unit/bio/util/restriction_enzyme/test_string_formatting.rb +60 -0
- data/test/unit/bio/util/test_color_scheme.rb +6 -18
- data/test/unit/bio/util/test_contingency_table.rb +6 -18
- data/test/unit/bio/util/test_restriction_enzyme.rb +42 -0
- data/test/unit/bio/util/test_sirna.rb +3 -16
- metadata +228 -169
- data/doc/BioRuby.rd.ja +0 -225
- data/doc/Design.rd.ja +0 -341
- data/doc/TODO.rd.ja +0 -138
- data/lib/bio/appl/fasta/format6.rb +0 -37
- data/lib/bio/db/kegg/cell.rb +0 -88
- data/lib/bio/db/kegg/ko.rb +0 -178
- data/lib/bio/shell/rails/Rakefile +0 -10
- data/lib/bio/shell/rails/app/controllers/application.rb +0 -4
- data/lib/bio/shell/rails/app/controllers/shell_controller.rb +0 -94
- data/lib/bio/shell/rails/app/helpers/application_helper.rb +0 -3
- data/lib/bio/shell/rails/app/models/shell_connection.rb +0 -30
- data/lib/bio/shell/rails/app/views/layouts/shell.rhtml +0 -37
- data/lib/bio/shell/rails/app/views/shell/history.rhtml +0 -5
- data/lib/bio/shell/rails/app/views/shell/index.rhtml +0 -2
- data/lib/bio/shell/rails/app/views/shell/show.rhtml +0 -13
- data/lib/bio/shell/rails/config/boot.rb +0 -19
- data/lib/bio/shell/rails/config/database.yml +0 -85
- data/lib/bio/shell/rails/config/environment.rb +0 -53
- data/lib/bio/shell/rails/config/environments/development.rb +0 -19
- data/lib/bio/shell/rails/config/environments/production.rb +0 -19
- data/lib/bio/shell/rails/config/environments/test.rb +0 -19
- data/lib/bio/shell/rails/config/routes.rb +0 -19
- data/lib/bio/shell/rails/doc/README_FOR_APP +0 -2
- data/lib/bio/shell/rails/public/404.html +0 -8
- data/lib/bio/shell/rails/public/500.html +0 -8
- data/lib/bio/shell/rails/public/dispatch.cgi +0 -10
- data/lib/bio/shell/rails/public/dispatch.fcgi +0 -24
- data/lib/bio/shell/rails/public/dispatch.rb +0 -10
- data/lib/bio/shell/rails/public/favicon.ico +0 -0
- data/lib/bio/shell/rails/public/images/rails.png +0 -0
- data/lib/bio/shell/rails/public/index.html +0 -277
- data/lib/bio/shell/rails/public/javascripts/controls.js +0 -750
- data/lib/bio/shell/rails/public/javascripts/dragdrop.js +0 -584
- data/lib/bio/shell/rails/public/javascripts/effects.js +0 -854
- data/lib/bio/shell/rails/public/javascripts/prototype.js +0 -1785
- data/lib/bio/shell/rails/public/robots.txt +0 -1
- data/lib/bio/shell/rails/public/stylesheets/main.css +0 -187
- data/lib/bio/shell/rails/script/about +0 -3
- data/lib/bio/shell/rails/script/breakpointer +0 -3
- data/lib/bio/shell/rails/script/console +0 -3
- data/lib/bio/shell/rails/script/destroy +0 -3
- data/lib/bio/shell/rails/script/generate +0 -3
- data/lib/bio/shell/rails/script/performance/benchmarker +0 -3
- data/lib/bio/shell/rails/script/performance/profiler +0 -3
- data/lib/bio/shell/rails/script/plugin +0 -3
- data/lib/bio/shell/rails/script/process/reaper +0 -3
- data/lib/bio/shell/rails/script/process/spawner +0 -3
- data/lib/bio/shell/rails/script/process/spinner +0 -3
- data/lib/bio/shell/rails/script/runner +0 -3
- data/lib/bio/shell/rails/script/server +0 -42
- data/lib/bio/shell/rails/test/test_helper.rb +0 -28
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#
|
|
2
|
+
# = bio/appl/probcons.rb - ProbCons application wrapper class
|
|
3
|
+
#
|
|
4
|
+
# Copyright:: Copyright (C) 2006-2007
|
|
5
|
+
# Jeffrey Blakeslee and John Conery University of Oregon <jeffb@uoregon.edu>
|
|
6
|
+
# Naohisa Goto <ng@bioruby.org>
|
|
7
|
+
# License:: The Ruby License
|
|
8
|
+
#
|
|
9
|
+
# $Id: probcons.rb,v 1.1 2007/07/16 12:25:50 ngoto Exp $
|
|
10
|
+
#
|
|
11
|
+
# Bio::Probcons is a wrapper class to execute ProbCons
|
|
12
|
+
# (Probabilistic Consistency-based Multiple Alignment
|
|
13
|
+
# of Amino Acid Sequences).
|
|
14
|
+
#
|
|
15
|
+
# == References
|
|
16
|
+
#
|
|
17
|
+
# * http://probcons.stanford.edu/
|
|
18
|
+
# * Do, C.B., Mahabhashyam, M.S.P., Brudno, M., and Batzoglou, S.
|
|
19
|
+
# ProbCons: Probabilistic Consistency-based Multiple Sequence Alignment.
|
|
20
|
+
# Genome Research 15: 330-340, 2005.
|
|
21
|
+
#
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
module Bio
|
|
25
|
+
|
|
26
|
+
# Bio::Probcons is a wrapper class to execute PROBCONS
|
|
27
|
+
# (Probabilistic Consistency-based Multiple Alignment
|
|
28
|
+
# of Amino Acid Sequences).
|
|
29
|
+
#
|
|
30
|
+
# Please refer documents in bio/apple/probcons.rb for references.
|
|
31
|
+
class Probcons < Bio::Alignment::FactoryTemplate::FileInStdoutOut
|
|
32
|
+
|
|
33
|
+
# default program name
|
|
34
|
+
DEFAULT_PROGRAM = 'probcons'.freeze
|
|
35
|
+
|
|
36
|
+
# default report parser
|
|
37
|
+
DEFAULT_PARSER = Bio::Alignment::MultiFastaFormat
|
|
38
|
+
|
|
39
|
+
end #class Probcons
|
|
40
|
+
|
|
41
|
+
end #module Bio
|
data/lib/bio/appl/psort.rb
CHANGED
|
@@ -1,79 +1,57 @@
|
|
|
1
|
+
module Bio
|
|
2
|
+
|
|
1
3
|
#
|
|
2
4
|
# = bio/appl/psort.rb - PSORT, protein sorting site prediction systems
|
|
3
5
|
#
|
|
4
|
-
# Copyright:: Copyright (C) 2003
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# $Id: psort.rb,v 1.8 2005/11/01 05:15:15 nakao Exp $
|
|
9
|
-
#
|
|
10
|
-
# == A client for PSORT WWW Server
|
|
11
|
-
#
|
|
12
|
-
# A client for PSORT WWW Server for predicting protein subcellular
|
|
13
|
-
# localization.
|
|
14
|
-
#
|
|
15
|
-
# PSORT family members,
|
|
16
|
-
# 1. PSORT
|
|
17
|
-
# 2. PSORT II
|
|
18
|
-
# 3. iPSORT
|
|
19
|
-
# 4. PSORT-B http://psort.org
|
|
20
|
-
# 5. WoLF-PSORT
|
|
21
|
-
#
|
|
22
|
-
# See http://psort.ims.u-tokyo.ac.jp.
|
|
23
|
-
#
|
|
24
|
-
# === Example
|
|
6
|
+
# Copyright:: Copyright (C) 2003-2006
|
|
7
|
+
# Mitsuteru C. Nakao <n@bioruby.org>
|
|
8
|
+
# License:: The Ruby License
|
|
25
9
|
#
|
|
26
|
-
#
|
|
27
|
-
#--
|
|
28
|
-
#
|
|
29
|
-
# This library is free software; you can redistribute it and/or
|
|
30
|
-
# modify it under the terms of the GNU Lesser General Public
|
|
31
|
-
# License as published by the Free Software Foundation; either
|
|
32
|
-
# version 2 of the License, or (at your option) any later version.
|
|
33
|
-
#
|
|
34
|
-
# This library is distributed in the hope that it will be useful,
|
|
35
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
36
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
37
|
-
# Lesser General Public License for more details.
|
|
38
|
-
#
|
|
39
|
-
# You should have received a copy of the GNU Lesser General Public
|
|
40
|
-
# License along with this library; if not, write to the Free Software
|
|
41
|
-
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
42
|
-
#
|
|
43
|
-
#++
|
|
10
|
+
# $Id: psort.rb,v 1.13 2007/04/05 23:35:39 trevor Exp $
|
|
44
11
|
#
|
|
45
12
|
|
|
46
|
-
require 'bio/
|
|
47
|
-
|
|
48
|
-
|
|
13
|
+
require 'bio/appl/psort/report'
|
|
14
|
+
autoload :FastaFormat, 'bio/db/fasta'
|
|
15
|
+
autoload :Command, 'bio/command'
|
|
49
16
|
require 'cgi'
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
17
|
+
require 'uri'
|
|
18
|
+
|
|
19
|
+
# == A client for PSORT WWW Server
|
|
20
|
+
#
|
|
21
|
+
# A client for PSORT WWW Server for predicting protein subcellular
|
|
22
|
+
# localization.
|
|
23
|
+
#
|
|
24
|
+
# PSORT family members,
|
|
25
|
+
# 1. PSORT
|
|
26
|
+
# 2. PSORT II
|
|
27
|
+
# 3. iPSORT
|
|
28
|
+
# 4. PSORT-B http://psort.org
|
|
29
|
+
# 5. WoLF-PSORT
|
|
30
|
+
#
|
|
31
|
+
# == References
|
|
32
|
+
#
|
|
33
|
+
# * http://psort.hgc.jp/
|
|
34
|
+
#
|
|
57
35
|
class PSORT
|
|
36
|
+
|
|
58
37
|
# a Hash for PSORT official hosts:
|
|
59
38
|
# Key value (host)
|
|
60
39
|
# ------- -----------------------
|
|
61
40
|
# IMSUT psort.ims.u-tokyo.ac.jp
|
|
62
41
|
# Okazaki psort.nibb.ac.jp
|
|
63
42
|
# Peking srs.pku.edu.cn:8088
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
43
|
+
ServerURI = {
|
|
44
|
+
:IMSUT => {
|
|
45
|
+
:PSORT1 => URI.parse("http://psort.hgc.jp/cgi-bin/okumura.pl"),
|
|
46
|
+
:PSORT2 => URI.parse("http://psort.hgc.jp/cgi-bin/runpsort.pl") },
|
|
47
|
+
:Okazaki => {
|
|
48
|
+
:PSORT1 => URI.parse("http://psort.nibb.ac.jp/cgi-bin/okumura.pl"),
|
|
49
|
+
:PSORT2 => URI.parse("http://psort.nibb.ac.jp/cgi-bin/runpsort.pl") },
|
|
50
|
+
:Peking => {
|
|
51
|
+
:PSORT1 => URI.parse("http:///src.pku.edu.cn:8088/cgi-bin/okumura.pl"),
|
|
52
|
+
:PSORT2 => URI.parse("http://src.pku.edu.cn:8088/cgi-bin/runpsort.pl") },
|
|
74
53
|
}
|
|
75
54
|
|
|
76
|
-
|
|
77
55
|
# = Generic CGI client class
|
|
78
56
|
# A generic CGI client class for Bio::PSORT::* classes.
|
|
79
57
|
# The class provides an interface for CGI argument processing and output
|
|
@@ -103,12 +81,26 @@ module Bio
|
|
|
103
81
|
attr_reader :report
|
|
104
82
|
|
|
105
83
|
|
|
106
|
-
# Sets remote
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
84
|
+
# Sets remote host name and cgi path or uri.
|
|
85
|
+
#
|
|
86
|
+
# == Examples
|
|
87
|
+
#
|
|
88
|
+
# CGIDriver.new("localhost", "/cgi-bin/psort_www.pl")
|
|
89
|
+
#
|
|
90
|
+
# CGIDriver.new("http://localhost/cgi-bin/psort_www.pl")
|
|
91
|
+
#
|
|
92
|
+
# CGIDriver.new(URI.parse("http://localhost/cgi-bin/psort_www.pl"))
|
|
93
|
+
#
|
|
94
|
+
def initialize(host = '', path = '')
|
|
95
|
+
case host.to_s
|
|
96
|
+
when /^http:/
|
|
97
|
+
uri = host.to_s
|
|
98
|
+
else
|
|
99
|
+
uri = 'http://' + host + '/' + path
|
|
100
|
+
end
|
|
101
|
+
@uri = URI.parse(uri)
|
|
110
102
|
@args = {}
|
|
111
|
-
@report
|
|
103
|
+
@report = ''
|
|
112
104
|
end
|
|
113
105
|
|
|
114
106
|
|
|
@@ -117,7 +109,10 @@ module Bio
|
|
|
117
109
|
data = make_args(query)
|
|
118
110
|
|
|
119
111
|
begin
|
|
120
|
-
result
|
|
112
|
+
result = nil
|
|
113
|
+
Bio::Command.start_http(@uri.host) {|http|
|
|
114
|
+
result, = http.post(@uri.path, data)
|
|
115
|
+
}
|
|
121
116
|
@report = result.body
|
|
122
117
|
output = parse_report(@report)
|
|
123
118
|
end
|
|
@@ -139,7 +134,7 @@ module Bio
|
|
|
139
134
|
|
|
140
135
|
# Erases HTML tags
|
|
141
136
|
def erase_html_tags(str)
|
|
142
|
-
return str.gsub(/<\S.*?>/,'')
|
|
137
|
+
return str.gsub(/<\S.*?>/, '')
|
|
143
138
|
end
|
|
144
139
|
|
|
145
140
|
# Returns CGI argument text in String (key=value&) from a Hash ({key=>value}).
|
|
@@ -148,7 +143,7 @@ module Bio
|
|
|
148
143
|
hash.each do |key, val|
|
|
149
144
|
tmp << CGI.escape(key.to_s) + '=' + CGI.escape(val.to_s)
|
|
150
145
|
end
|
|
151
|
-
return tmp.join(delim) # not ';' but '&' in psort
|
|
146
|
+
return tmp.join(delim) # not ';' but '&' in the psort cgi script.
|
|
152
147
|
end
|
|
153
148
|
|
|
154
149
|
end # class CGIDriver
|
|
@@ -156,6 +151,7 @@ module Bio
|
|
|
156
151
|
|
|
157
152
|
|
|
158
153
|
# = Bio::PSORT::PSORT1
|
|
154
|
+
#
|
|
159
155
|
# Bio::PSORT::PSORT1 is a wapper class for the original PSORT program.
|
|
160
156
|
#
|
|
161
157
|
# == Example
|
|
@@ -168,9 +164,11 @@ module Bio
|
|
|
168
164
|
# report_raw = serv.exec(Bio::FastaFormat.new(seq), false)
|
|
169
165
|
#
|
|
170
166
|
# == References
|
|
167
|
+
#
|
|
171
168
|
# 1. Nakai, K. and Kanehisa, M., A knowledge base for predicting protein
|
|
172
169
|
# localization sites in eukaryotic cells, Genomics 14, 897-911 (1992).
|
|
173
170
|
# [PMID:1478671]
|
|
171
|
+
#
|
|
174
172
|
class PSORT1
|
|
175
173
|
|
|
176
174
|
autoload :Report, 'bio/appl/psort/report'
|
|
@@ -178,33 +176,31 @@ module Bio
|
|
|
178
176
|
# Returns a PSORT1 CGI Driver object (Bio::PSORT::PSORT1::Remote)
|
|
179
177
|
# connecting to the IMSUT server.
|
|
180
178
|
def self.imsut
|
|
181
|
-
self.new(Remote.new(
|
|
182
|
-
WWWServer['IMSUT']['PSORT1']))
|
|
179
|
+
self.new(Remote.new(ServerURI[:IMSUT][:PSORT1]))
|
|
183
180
|
end
|
|
184
181
|
|
|
185
182
|
|
|
186
183
|
# Returns a PSORT1 CGI Driver object (Bio::PSORT::PSORT1::Remote)
|
|
187
184
|
# connecting to the NIBB server.
|
|
188
185
|
def self.okazaki
|
|
189
|
-
self.new(Remote.new(
|
|
190
|
-
WWWServer['Okazaki']['PSORT1']))
|
|
186
|
+
self.new(Remote.new(ServerURI[:Okazaki][:PSORT1]))
|
|
191
187
|
end
|
|
192
188
|
|
|
193
189
|
|
|
194
190
|
# Returns a PSORT1 CGI Driver object (Bio::PSORT::PSORT1::Remote)
|
|
195
191
|
# connecting to the Peking server.
|
|
196
192
|
def self.peking
|
|
197
|
-
self.new(Remote.new(
|
|
198
|
-
WWWServer['Peking']['PSORT1']))
|
|
193
|
+
self.new(Remote.new(ServerURI[:Peking][:PSORT1]))
|
|
199
194
|
end
|
|
200
195
|
|
|
201
196
|
|
|
202
|
-
# Sets a
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
@
|
|
206
|
-
|
|
207
|
-
|
|
197
|
+
# Sets a cgi client (Bio::PSORT::PSORT1::Remote).
|
|
198
|
+
#
|
|
199
|
+
def initialize(driver, origin = 'yeast', title = 'MYSEQ')
|
|
200
|
+
@serv = driver
|
|
201
|
+
@origin = origin # Gram-positive bacterium, Gram-negative bacterium,
|
|
202
|
+
# yeast, aminal, plant
|
|
203
|
+
@title = title
|
|
208
204
|
@sequence = ''
|
|
209
205
|
end
|
|
210
206
|
|
|
@@ -236,9 +232,9 @@ module Bio
|
|
|
236
232
|
# returns ourput text without any parsing.
|
|
237
233
|
def exec(faa, parsing = true)
|
|
238
234
|
if faa.class == Bio::FastaFormat
|
|
239
|
-
@title
|
|
240
|
-
@sequence
|
|
241
|
-
@serv.args
|
|
235
|
+
@title = faa.entry_id if @title == 'MYSEQ'
|
|
236
|
+
@sequence = faa.seq
|
|
237
|
+
@serv.args = {'title' => @title, 'origin' => @origin}
|
|
242
238
|
@serv.parsing = parsing
|
|
243
239
|
return @serv.exec(sequence)
|
|
244
240
|
else
|
|
@@ -267,9 +263,9 @@ module Bio
|
|
|
267
263
|
attr_accessor :parsing
|
|
268
264
|
|
|
269
265
|
# Sets remote ``host'' and cgi ``path''.
|
|
270
|
-
def initialize(host, path)
|
|
271
|
-
@
|
|
272
|
-
@
|
|
266
|
+
def initialize(host, path = nil, title = 'MYSEQ', origin = 'yeast')
|
|
267
|
+
@title = title
|
|
268
|
+
@origin = origin
|
|
273
269
|
@parsing = true
|
|
274
270
|
super(host, path)
|
|
275
271
|
end
|
|
@@ -326,29 +322,26 @@ module Bio
|
|
|
326
322
|
# IMSUT psort.ims.u-tokyo.ac.jp /cgi-bin/runpsort.pl (default)
|
|
327
323
|
# Okazaki psort.nibb.ac.jp /cgi-bin/runpsort.pl
|
|
328
324
|
# Peking srs.pku.edu.cn:8088 /cgi-bin/runpsort.pl
|
|
329
|
-
def self.remote(host, path)
|
|
325
|
+
def self.remote(host, path = nil)
|
|
330
326
|
self.new(Remote.new(host, path))
|
|
331
327
|
end
|
|
332
328
|
|
|
333
329
|
# Returns a PSORT2 CGI Driver object (Bio::PSORT::PSORT2::Remote)
|
|
334
330
|
# connecting to the IMSUT server.
|
|
335
331
|
def self.imsut
|
|
336
|
-
self.remote(
|
|
337
|
-
WWWServer['IMSUT']['PSORT2'])
|
|
332
|
+
self.remote(ServerURI[:IMSUT][:PSORT2])
|
|
338
333
|
end
|
|
339
334
|
|
|
340
335
|
# Returns a PSORT2 CGI Driver object (Bio::PSORT::PSORT2::Remote)
|
|
341
336
|
# connecting to the NIBB server.
|
|
342
337
|
def self.okazaki
|
|
343
|
-
self.remote(
|
|
344
|
-
WWWServer['Okazaki']['PSORT2'])
|
|
338
|
+
self.remote(ServerURI[:Okazaki][:PSORT2])
|
|
345
339
|
end
|
|
346
340
|
|
|
347
341
|
# Returns a PSORT2 CGI Driver object (Bio::PSORT::PSORT2::Remote)
|
|
348
342
|
# connecting to the Peking server.
|
|
349
343
|
def self.peking
|
|
350
|
-
self.remote(
|
|
351
|
-
WWWServer['Peking']['PSORT2'])
|
|
344
|
+
self.remote(ServerURI[:Peking][:PSORT2])
|
|
352
345
|
end
|
|
353
346
|
|
|
354
347
|
# An accessor of the origin argument.
|
|
@@ -373,9 +366,9 @@ module Bio
|
|
|
373
366
|
# Returns PSORT II report in text if parsing = false.
|
|
374
367
|
def exec(faa, parsing = true)
|
|
375
368
|
if faa.class == Bio::FastaFormat
|
|
376
|
-
@title
|
|
377
|
-
@sequence
|
|
378
|
-
@serv.args
|
|
369
|
+
@title = faa.entry_id if @title == nil
|
|
370
|
+
@sequence = faa.seq
|
|
371
|
+
@serv.args = {'origin' => @origin, 'title' => @title}
|
|
379
372
|
@serv.parsing = parsing
|
|
380
373
|
return @serv.exec(@sequence)
|
|
381
374
|
else
|
|
@@ -1,38 +1,22 @@
|
|
|
1
1
|
#
|
|
2
2
|
# = bio/appl/psort/report.rb - PSORT systems report classes
|
|
3
3
|
#
|
|
4
|
-
# Copyright:: Copyright (C) 2003
|
|
5
|
-
#
|
|
4
|
+
# Copyright:: Copyright (C) 2003
|
|
5
|
+
# Mitsuteru C. Nakao <n@bioruby.org>
|
|
6
|
+
# License:: The Ruby License
|
|
6
7
|
#
|
|
7
|
-
# $Id: report.rb,v 1.
|
|
8
|
+
# $Id: report.rb,v 1.15 2007/04/05 23:35:40 trevor Exp $
|
|
8
9
|
#
|
|
9
10
|
# == A Report classes for PSORT Systems
|
|
10
11
|
#
|
|
11
|
-
#--
|
|
12
|
-
#
|
|
13
|
-
# This library is free software; you can redistribute it and/or
|
|
14
|
-
# modify it under the terms of the GNU Lesser General Public
|
|
15
|
-
# License as published by the Free Software Foundation; either
|
|
16
|
-
# version 2 of the License, or (at your option) any later version.
|
|
17
|
-
#
|
|
18
|
-
# This library is distributed in the hope that it will be useful,
|
|
19
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
20
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
21
|
-
# Lesser General Public License for more details.
|
|
22
|
-
#
|
|
23
|
-
# You should have received a copy of the GNU Lesser General Public
|
|
24
|
-
# License along with this library; if not, write to the Free Software
|
|
25
|
-
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
26
|
-
#
|
|
27
|
-
# ++
|
|
28
|
-
#
|
|
29
12
|
|
|
30
|
-
require 'bio/sequence'
|
|
31
13
|
require 'bio/appl/psort'
|
|
32
14
|
|
|
33
15
|
|
|
34
16
|
module Bio
|
|
35
17
|
|
|
18
|
+
autoload :Sequence, 'bio/sequence'
|
|
19
|
+
|
|
36
20
|
class PSORT
|
|
37
21
|
|
|
38
22
|
class PSORT1
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
module Bio
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# = bio/appl/pts1.rb - A web service client of PTS1, predicting for the
|
|
5
|
+
# peroxisomal targeting signal type 1.
|
|
6
|
+
#
|
|
7
|
+
# Copyright:: Copyright (C) 2006
|
|
8
|
+
# Mitsuteru C. Nakao <n@bioruby.org>
|
|
9
|
+
# License:: The Ruby License
|
|
10
|
+
#
|
|
11
|
+
# $Id: pts1.rb,v 1.5 2007/04/05 23:35:39 trevor Exp $
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
require 'uri'
|
|
15
|
+
require 'net/http'
|
|
16
|
+
require 'bio/db/fasta'
|
|
17
|
+
require 'bio/command'
|
|
18
|
+
|
|
19
|
+
# = Bio::PTS1 - A web service client class for PTS1 predictor.
|
|
20
|
+
#
|
|
21
|
+
# == Peroxisomal targeting signal type 1 (PTS1) predictor
|
|
22
|
+
#
|
|
23
|
+
# Bio::PTS1 class is a client of the PTS1 predictor.
|
|
24
|
+
#
|
|
25
|
+
# == Examples
|
|
26
|
+
#
|
|
27
|
+
# require 'bio'
|
|
28
|
+
# sp = Bio::SPTR.new(Bio::Fetch.query("sp", "p53_human"))
|
|
29
|
+
# faa = sp.seq.to_fasta(sp.entry_id)
|
|
30
|
+
# pts1 = Bio::PTS1.new
|
|
31
|
+
# report = pts1.exec_remote(faa)
|
|
32
|
+
# report.output #=> "<HTML>\n<HEAD><TITLE>PTS1 Prediction Server ..."
|
|
33
|
+
# report.prediction #=> "Not targeted"
|
|
34
|
+
# report.cterm #=> "KLMFKTEGPDSD"
|
|
35
|
+
# report.score #=> "-79.881"
|
|
36
|
+
# report.fp #=> "67.79%"
|
|
37
|
+
# report.sppta #=> "-1.110"
|
|
38
|
+
# report.spptna #=> "-41.937"
|
|
39
|
+
# report.profile #=> "-36.834"
|
|
40
|
+
#
|
|
41
|
+
# == References
|
|
42
|
+
#
|
|
43
|
+
# * The PTS1 predictor
|
|
44
|
+
# http://mendel.imp.ac.at/mendeljsp/sat/pts1/PTS1predictor.jsp
|
|
45
|
+
#
|
|
46
|
+
# * Neuberger G, Maurer-Stroh S, Eisenhaber B, Hartig A, Eisenhaber F.
|
|
47
|
+
# Motif refinement of the peroxisomal targeting signal 1 and evaluation
|
|
48
|
+
# of taxon-specific differences.
|
|
49
|
+
# J Mol Biol. 2003 May 2;328(3):567-79. PMID: 12706717
|
|
50
|
+
#
|
|
51
|
+
# * Neuberger G, Maurer-Stroh S, Eisenhaber B, Hartig A, Eisenhaber F.
|
|
52
|
+
# Prediction of peroxisomal targeting signal 1 containing proteins from
|
|
53
|
+
# amino acid sequence.
|
|
54
|
+
# J Mol Biol. 2003 May 2;328(3):581-92. PMID: 12706718
|
|
55
|
+
#
|
|
56
|
+
class PTS1
|
|
57
|
+
|
|
58
|
+
# Organism specific parameter value: function names.
|
|
59
|
+
FUNCTION = {
|
|
60
|
+
'METAZOA-specific' => 1,
|
|
61
|
+
'FUNGI-specific' => 2,
|
|
62
|
+
'GENERAL' => 3,
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
# Output report.
|
|
66
|
+
attr_reader :output
|
|
67
|
+
|
|
68
|
+
# Used function name (Integer).
|
|
69
|
+
# function_name = Bio::PTS1::FUNCTION.find_all {|k,v| v == pts1.function }[0][0]
|
|
70
|
+
attr_reader :function
|
|
71
|
+
|
|
72
|
+
# Short-cut for Bio::PTS1.new(Bio::PTS1::FUNCTION['METAZOA-specific'])
|
|
73
|
+
def self.new_with_metazoa_function
|
|
74
|
+
self.new('METAZOA-specific')
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Short-cut for Bio::PTS1.new(Bio::PTS1::FUNCTION['FUNGI-specific'])
|
|
78
|
+
def self.new_with_fungi_function
|
|
79
|
+
self.new('FUNGI-specific')
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Short-cut for Bio::PTS1.new(Bio::PTS1::FUNCTION['GENERAL'])
|
|
83
|
+
def self.new_with_general_function
|
|
84
|
+
self.new('GENERAL')
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
# Constructs Bio::PTS1 web service client.
|
|
89
|
+
#
|
|
90
|
+
# == Examples
|
|
91
|
+
#
|
|
92
|
+
# serv_default_metazoa_specific = Bio::PTS1.new
|
|
93
|
+
# serv_general_function = Bio::PTS1.new('GENERAL')
|
|
94
|
+
# serv_fungi_specific = Bio::PTS1.new(2) # See Bio::PTS1::FUNCTION.
|
|
95
|
+
#
|
|
96
|
+
def initialize(func = 'METAZOA-specific')
|
|
97
|
+
@host = "mendel.imp.ac.at"
|
|
98
|
+
@cgi_path = "/sat/pts1/cgi-bin/pts1.cgi"
|
|
99
|
+
@output = nil
|
|
100
|
+
@function = function(func)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
# Sets and shows the function parameter.
|
|
105
|
+
#
|
|
106
|
+
# Organism specific parameter: function names (Bio::PTS1::FUNTION.keys).
|
|
107
|
+
#
|
|
108
|
+
#
|
|
109
|
+
# == Examples
|
|
110
|
+
#
|
|
111
|
+
# # sets function name parameter.
|
|
112
|
+
# serv = Bio::PTS1.new
|
|
113
|
+
# serv.function('METAZOA-specific')
|
|
114
|
+
#
|
|
115
|
+
# # shows function name parameter.
|
|
116
|
+
# serv.function #=> "METAZOA-specific"
|
|
117
|
+
#
|
|
118
|
+
def function(func = nil)
|
|
119
|
+
return @function.keys.to_s if func == nil
|
|
120
|
+
|
|
121
|
+
if FUNCTION.values.include?(func)
|
|
122
|
+
@function = Hash[*FUNCTION.find {|x| x[1] == func}]
|
|
123
|
+
elsif FUNCTION[func]
|
|
124
|
+
@function = {func => FUNCTION[func]}
|
|
125
|
+
else
|
|
126
|
+
raise ArgumentError,
|
|
127
|
+
"Invalid argument: #{func}",
|
|
128
|
+
"Available function names: #{FUNCTION.keys.inspect}"
|
|
129
|
+
end
|
|
130
|
+
@function
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
# Executes the query request and returns result output in Bio::PTS1::Report.
|
|
135
|
+
# The query argument is available both aSting in fasta format text and
|
|
136
|
+
# aBio::FastaFormat.
|
|
137
|
+
#
|
|
138
|
+
# == Examples
|
|
139
|
+
#
|
|
140
|
+
# require 'bio'
|
|
141
|
+
# pts1 = Bio::PTS1.new
|
|
142
|
+
# pts1.exec(">title\nKLMFKTEGPDSD")
|
|
143
|
+
#
|
|
144
|
+
# pts1.exec(Bio::FastaFormat.new(">title\nKLMFKTEGPDSD"))
|
|
145
|
+
#
|
|
146
|
+
def exec(query)
|
|
147
|
+
seq = set_sequence_in_fastaformat(query)
|
|
148
|
+
|
|
149
|
+
@form_data = {'function' => @function.values.to_s,
|
|
150
|
+
'sequence' => seq.seq,
|
|
151
|
+
'name' => seq.definition }
|
|
152
|
+
@uri = URI.parse(["http:/", @host, @cgi_path].join('/'))
|
|
153
|
+
|
|
154
|
+
result, = Bio::Command.post_form(@uri, @form_data)
|
|
155
|
+
@output = Report.new(result.body)
|
|
156
|
+
|
|
157
|
+
return @output
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
private
|
|
161
|
+
|
|
162
|
+
# Sets query sequence in Fasta Format if any.
|
|
163
|
+
def set_sequence_in_fastaformat(query)
|
|
164
|
+
if query.class == Bio::FastaFormat
|
|
165
|
+
return query
|
|
166
|
+
else
|
|
167
|
+
return Bio::FastaFormat.new(query)
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
# = Parser for the PTS1 prediction Report (in HTML).
|
|
173
|
+
#
|
|
174
|
+
#
|
|
175
|
+
class Report
|
|
176
|
+
|
|
177
|
+
# Query sequence name.
|
|
178
|
+
attr_reader :entry_id
|
|
179
|
+
|
|
180
|
+
# Amino acids subsequence at C-terminal region.
|
|
181
|
+
attr_reader :cterm
|
|
182
|
+
|
|
183
|
+
# Score
|
|
184
|
+
attr_reader :score
|
|
185
|
+
|
|
186
|
+
# Profile
|
|
187
|
+
attr_reader :profile
|
|
188
|
+
|
|
189
|
+
# S_ppt (non accessibility)
|
|
190
|
+
attr_reader :spptna
|
|
191
|
+
|
|
192
|
+
# S_ppt (accessibility)
|
|
193
|
+
attr_reader :sppta
|
|
194
|
+
|
|
195
|
+
# False positive probability
|
|
196
|
+
attr_reader :fp
|
|
197
|
+
|
|
198
|
+
# Prediction ("Targeted", "Twilight zone" and "Not targeted")
|
|
199
|
+
attr_reader :prediction
|
|
200
|
+
|
|
201
|
+
# Raw output
|
|
202
|
+
attr_reader :output
|
|
203
|
+
|
|
204
|
+
# Parsing PTS1 HTML report.
|
|
205
|
+
#
|
|
206
|
+
# == Example
|
|
207
|
+
#
|
|
208
|
+
# report = Bio::PTS1::Report.new(str)
|
|
209
|
+
# report.cterm
|
|
210
|
+
#
|
|
211
|
+
def initialize(str)
|
|
212
|
+
@cterm = ''
|
|
213
|
+
@score = 0
|
|
214
|
+
@profile = 0
|
|
215
|
+
@spptna = 0
|
|
216
|
+
@sppta = 0
|
|
217
|
+
@fp = 0
|
|
218
|
+
@prediction = 0
|
|
219
|
+
|
|
220
|
+
if /PTS1 query prediction/m =~ str
|
|
221
|
+
@output = str
|
|
222
|
+
parse
|
|
223
|
+
else
|
|
224
|
+
raise
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
private
|
|
230
|
+
|
|
231
|
+
def parse
|
|
232
|
+
@output.each do |line|
|
|
233
|
+
case line
|
|
234
|
+
when /Name<\/td><td>(\S.+)<\/td><\/tr>/
|
|
235
|
+
@entry_id = $1
|
|
236
|
+
when /C-terminus<\/td><td>(\w+)<\/td>/
|
|
237
|
+
@cterm = $1
|
|
238
|
+
when /Score<\/b><td><b>(-?\d.+?)<\/b><\/td><\/tr>/
|
|
239
|
+
@score = $1
|
|
240
|
+
when /Profile<\/i><\/td><td>(.+?)<\/td>/
|
|
241
|
+
@profile = $1
|
|
242
|
+
when /S_ppt \(non-accessibility\)<\/i><\/td><td>(.+?)<\/td>/
|
|
243
|
+
@spptna = $1
|
|
244
|
+
when /S_ppt \(accessibility\)<\/i><\/td><td>(.+?)<\/td>/
|
|
245
|
+
@sppta = $1
|
|
246
|
+
when /P\(false positive\)<\/i><\/td><td>(.+?)<\/td>/
|
|
247
|
+
@fp = $1
|
|
248
|
+
when /Prediction classification<\/i><\/td><td>(\w.+?)<\/td>/
|
|
249
|
+
@prediction = $1
|
|
250
|
+
else
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
end # class Report
|
|
256
|
+
|
|
257
|
+
end # class PTS1
|
|
258
|
+
|
|
259
|
+
end # module Bio
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|