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,229 @@
|
|
|
1
|
+
#
|
|
2
|
+
# = bio/io/ensembl.rb - An Ensembl Genome Browser client.
|
|
3
|
+
#
|
|
4
|
+
# Copyright:: Copyright (C) 2006
|
|
5
|
+
# Mitsuteru C. Nakao <n@bioruby.org>
|
|
6
|
+
# License:: The Ruby License
|
|
7
|
+
#
|
|
8
|
+
# $Id: ensembl.rb,v 1.11 2007/04/05 23:35:41 trevor Exp $
|
|
9
|
+
#
|
|
10
|
+
# == Description
|
|
11
|
+
#
|
|
12
|
+
# Client classes for Ensembl Genome Browser.
|
|
13
|
+
#
|
|
14
|
+
# == Examples
|
|
15
|
+
#
|
|
16
|
+
# human = Bio::Ensembl.new('Homo_sapiens')
|
|
17
|
+
# seq = human.exportview(1, 1000, 100000)
|
|
18
|
+
# gff = human.exportview(1, 1000, 100000, ['gene', 'variation', 'genscan'])
|
|
19
|
+
#
|
|
20
|
+
# human = Bio::Ensembl.human
|
|
21
|
+
# seq = human.exportview(1, 1000, 100000)
|
|
22
|
+
# gff = human.exportview(1, 1000, 100000, ['gene'])
|
|
23
|
+
#
|
|
24
|
+
# seq = Bio::Ensembl.human.exportview(1, 1000, 100000)
|
|
25
|
+
# gff = Bio::Ensembl.human.exportview(1, 1000, 100000, ['gene', 'variation', 'genscan'])
|
|
26
|
+
#
|
|
27
|
+
#
|
|
28
|
+
# == References
|
|
29
|
+
#
|
|
30
|
+
# * Ensembl
|
|
31
|
+
# http:/www.ensembl.org/
|
|
32
|
+
#
|
|
33
|
+
|
|
34
|
+
require 'bio/command'
|
|
35
|
+
|
|
36
|
+
module Bio
|
|
37
|
+
|
|
38
|
+
# == Description
|
|
39
|
+
#
|
|
40
|
+
# An Ensembl Genome Browser client class.
|
|
41
|
+
#
|
|
42
|
+
# == Examples
|
|
43
|
+
#
|
|
44
|
+
# human = Bio::Ensembl.new('Homo_sapiens')
|
|
45
|
+
# seq = human.exportview(1, 1000, 100000)
|
|
46
|
+
# gff = human.exportview(1, 1000, 100000, ['gene'])
|
|
47
|
+
#
|
|
48
|
+
# mouse = Bio::Ensembl.new('Mus_musculus')
|
|
49
|
+
# seq = mouse.exportview(1, 1000, 100000)
|
|
50
|
+
# gff = mouse.exportview(1, 1000, 100000, ['gene', 'variation', 'genscan'])
|
|
51
|
+
#
|
|
52
|
+
# rice = Bio::Enesmbl.new('Oryza_sativa', 'http://www.gramene.org')
|
|
53
|
+
# seq = rice.exportview(1, 1000, 100000)
|
|
54
|
+
#
|
|
55
|
+
# == References
|
|
56
|
+
#
|
|
57
|
+
# * Ensembl
|
|
58
|
+
# http:/www.ensembl.org/
|
|
59
|
+
#
|
|
60
|
+
# * GRAMENE
|
|
61
|
+
# http://www.gramene.org/
|
|
62
|
+
#
|
|
63
|
+
class Ensembl
|
|
64
|
+
|
|
65
|
+
ENSEMBL_URL = 'http://www.ensembl.org'
|
|
66
|
+
|
|
67
|
+
# Server URL (ex. 'http://www.ensembl.org')
|
|
68
|
+
attr_reader :server
|
|
69
|
+
|
|
70
|
+
# Organism name. (ex. 'Homo_sapiens').
|
|
71
|
+
attr_reader :organism
|
|
72
|
+
|
|
73
|
+
def initialize(organism, server = nil)
|
|
74
|
+
@server = server || ENSEMBL_URL
|
|
75
|
+
@organism = organism
|
|
76
|
+
@uri = [ @server.chomp('/'), @organism ].join('/')
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def self.human
|
|
80
|
+
self.new("Homo_sapiens")
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def self.mouse
|
|
84
|
+
self.new("Mus_musculus")
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Ensembl ExportView Client.
|
|
88
|
+
#
|
|
89
|
+
# Retrieve genomic sequence/features from Ensembl ExportView in plain text.
|
|
90
|
+
# Ensembl ExportView exports genomic data (sequence and features) in
|
|
91
|
+
# several file formats including fasta, GFF and tab.
|
|
92
|
+
#
|
|
93
|
+
# * ExportViwe (http://www.ensembl.org/Homo_sapiens/exportview).
|
|
94
|
+
#
|
|
95
|
+
# == Examples
|
|
96
|
+
#
|
|
97
|
+
# human = Bio::Ensembl.new('Homo_sapiens')
|
|
98
|
+
# or
|
|
99
|
+
# human = Bio::Ensembl.human
|
|
100
|
+
#
|
|
101
|
+
# # Genomic sequence in Fasta format
|
|
102
|
+
# human.exportview(:seq_region_name => 1,
|
|
103
|
+
# :anchor1 => 1149206, :anchor2 => 1149229)
|
|
104
|
+
# human.exportview(1, 1149206, 1149229)
|
|
105
|
+
#
|
|
106
|
+
# # Feature in GFF
|
|
107
|
+
# human.exportview(:seq_region_name => 1,
|
|
108
|
+
# :anchor1 => 1149206, :anchor2 => 1150000,
|
|
109
|
+
# :options => ['similarity', 'repeat',
|
|
110
|
+
# 'genscan', 'variation', 'gene'])
|
|
111
|
+
# human.exportview(1, 1149206, 1150000, ['variation', 'gene'])
|
|
112
|
+
#
|
|
113
|
+
# Feature in TAB
|
|
114
|
+
# human.exportview(:seq_region_name => 1,
|
|
115
|
+
# :anchor1 => 1149206, :anchor2 => 1150000,
|
|
116
|
+
# :options => ['similarity', 'repeat',
|
|
117
|
+
# 'genscan', 'variation', 'gene'],
|
|
118
|
+
# :format => 'tab')
|
|
119
|
+
#
|
|
120
|
+
# == Arguments
|
|
121
|
+
#
|
|
122
|
+
# Bio::Ensembl#exportview method allow both orderd arguments and
|
|
123
|
+
# named arguments. (Note: mandatory arguments are marked by '*').
|
|
124
|
+
#
|
|
125
|
+
# === Orderd Arguments
|
|
126
|
+
#
|
|
127
|
+
# 1. seq_region_name - Chromosome number (*)
|
|
128
|
+
# 2. anchor1 - From coordination (*)
|
|
129
|
+
# 3. anchor2 - To coordination (*)
|
|
130
|
+
# 4. options - Features to export (in :format => 'gff' or 'tab')
|
|
131
|
+
# ['similarity', 'repeat', 'genscan', 'variation',
|
|
132
|
+
# 'gene']
|
|
133
|
+
#
|
|
134
|
+
# === Named Arguments
|
|
135
|
+
#
|
|
136
|
+
# * :seq_region_name - Chromosome number (*)
|
|
137
|
+
# * :anchor1 - From coordination (*)
|
|
138
|
+
# * :anchor2 - To coordination (*)
|
|
139
|
+
# * :type1 - From coordination type ['bp', ]
|
|
140
|
+
# * :type2 - To coordination type ['bp', ]
|
|
141
|
+
# * :upstream - Bp upstream
|
|
142
|
+
# * :downstream - Bp downstream
|
|
143
|
+
# * :format - File format ['fasta', 'gff', 'tab']
|
|
144
|
+
# * :options - Features to export (for :format => 'gff' or 'tab')
|
|
145
|
+
# ['similarity', 'repeat', 'genscan', 'variation',
|
|
146
|
+
# 'gene']
|
|
147
|
+
#
|
|
148
|
+
def exportview(*args)
|
|
149
|
+
defaults = {
|
|
150
|
+
:type1 => 'bp',
|
|
151
|
+
:type2 => 'bp',
|
|
152
|
+
:downstream => '',
|
|
153
|
+
:upstream => '',
|
|
154
|
+
:format => 'fasta',
|
|
155
|
+
:options => [],
|
|
156
|
+
:action => 'export',
|
|
157
|
+
:_format => 'Text',
|
|
158
|
+
:output => 'txt',
|
|
159
|
+
:submit => 'Continue >>'
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if args.first.class == Hash
|
|
163
|
+
options = args.first
|
|
164
|
+
if options[:options] and options[:format] != 'fasta' and options[:format] != 'tab'
|
|
165
|
+
options.update({:format => 'gff'})
|
|
166
|
+
end
|
|
167
|
+
else
|
|
168
|
+
options = {
|
|
169
|
+
:seq_region_name => args[0],
|
|
170
|
+
:anchor1 => args[1],
|
|
171
|
+
:anchor2 => args[2],
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
case args[3]
|
|
175
|
+
when Array
|
|
176
|
+
options.update({:format => 'gff', :options => args[3]})
|
|
177
|
+
when Hash
|
|
178
|
+
options.update(args[3])
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
if args[4].class == Hash
|
|
182
|
+
options.update(args[4])
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
params = defaults.update(options)
|
|
187
|
+
|
|
188
|
+
result, = Bio::Command.post_form("#{@uri}/exportview", params)
|
|
189
|
+
|
|
190
|
+
return result.body
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
end # class Ensembl
|
|
194
|
+
|
|
195
|
+
end # module Bio
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
# Codes for backward-compatibility.
|
|
200
|
+
#
|
|
201
|
+
class Bio::Ensembl
|
|
202
|
+
EBIServerURI = ENSEMBL_URL
|
|
203
|
+
|
|
204
|
+
def self.server_uri(uri = nil)
|
|
205
|
+
if uri
|
|
206
|
+
@uri = uri
|
|
207
|
+
else
|
|
208
|
+
@uri || EBIServerURI
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
class Base
|
|
213
|
+
def self.exportview(*args)
|
|
214
|
+
Bio::Ensembl.new(Organism).exportview(*args)
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
class Human < Base
|
|
219
|
+
Organism = Bio::Ensembl.human.organism
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
class Mouse < Base
|
|
223
|
+
Organism = Bio::Ensembl.mouse.organism
|
|
224
|
+
end
|
|
225
|
+
end # class Bio::Ensembl
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
data/lib/bio/io/fastacmd.rb
CHANGED
|
@@ -4,36 +4,42 @@
|
|
|
4
4
|
# Copyright:: Copyright (C) 2005, 2006
|
|
5
5
|
# Shuji SHIGENOBU <shige@nibb.ac.jp>,
|
|
6
6
|
# Toshiaki Katayama <k@bioruby.org>,
|
|
7
|
-
# Mitsuteru C. Nakao <n@bioruby.org
|
|
8
|
-
#
|
|
7
|
+
# Mitsuteru C. Nakao <n@bioruby.org>,
|
|
8
|
+
# Jan Aerts <jan.aerts@bbsrc.ac.uk>
|
|
9
|
+
# License:: The Ruby License
|
|
9
10
|
#
|
|
10
|
-
# $Id: fastacmd.rb,v 1.
|
|
11
|
+
# $Id: fastacmd.rb,v 1.16 2007/04/05 23:35:41 trevor Exp $
|
|
11
12
|
#
|
|
12
|
-
|
|
13
|
+
|
|
14
|
+
require 'bio/db/fasta'
|
|
15
|
+
require 'bio/io/flatfile'
|
|
16
|
+
require 'bio/command'
|
|
17
|
+
|
|
18
|
+
module Bio
|
|
19
|
+
class Blast
|
|
20
|
+
|
|
21
|
+
# = DESCRIPTION
|
|
13
22
|
#
|
|
14
|
-
#
|
|
23
|
+
# Retrieves FASTA formatted sequences from a blast database using
|
|
15
24
|
# NCBI fastacmd command.
|
|
16
25
|
#
|
|
17
26
|
# This class requires 'fastacmd' command and a blast database
|
|
18
27
|
# (formatted using the '-o' option of 'formatdb').
|
|
19
28
|
#
|
|
20
|
-
#
|
|
29
|
+
# = USAGE
|
|
30
|
+
# require 'bio'
|
|
31
|
+
#
|
|
32
|
+
# fastacmd = Bio::Blast::Fastacmd.new("/db/myblastdb")
|
|
21
33
|
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
34
|
+
# entry = fastacmd.get_by_id("sp:128U_DROME")
|
|
35
|
+
# fastacmd.fetch("sp:128U_DROME")
|
|
36
|
+
# fastacmd.fetch(["sp:1433_SPIOL", "sp:1432_MAIZE"])
|
|
25
37
|
#
|
|
26
|
-
#
|
|
38
|
+
# fastacmd.fetch(["sp:1433_SPIOL", "sp:1432_MAIZE"]).each do |fasta|
|
|
39
|
+
# puts fasta
|
|
40
|
+
# end
|
|
27
41
|
#
|
|
28
|
-
#
|
|
29
|
-
# fastacmd.fetch(entry_id)
|
|
30
|
-
# fastacmd.fetch(ent_list)
|
|
31
|
-
#
|
|
32
|
-
# fastacmd.fetch(ent_list).each do |fasta|
|
|
33
|
-
# puts fasta
|
|
34
|
-
# end
|
|
35
|
-
#
|
|
36
|
-
# == References
|
|
42
|
+
# = REFERENCES
|
|
37
43
|
#
|
|
38
44
|
# * NCBI tool
|
|
39
45
|
# ftp://ftp.ncbi.nih.gov/blast/executables/LATEST/ncbi.tar.gz
|
|
@@ -41,78 +47,65 @@
|
|
|
41
47
|
# * fastacmd.html
|
|
42
48
|
# http://biowulf.nih.gov/apps/blast/doc/fastacmd.html
|
|
43
49
|
#
|
|
44
|
-
#--
|
|
45
|
-
#
|
|
46
|
-
# This library is free software; you can redistribute it and/or
|
|
47
|
-
# modify it under the terms of the GNU Lesser General Public
|
|
48
|
-
# License as published by the Free Software Foundation; either
|
|
49
|
-
# version 2 of the License, or (at your option) any later version.
|
|
50
|
-
#
|
|
51
|
-
# This library is distributed in the hope that it will be useful,
|
|
52
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
53
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
54
|
-
# Lesser General Public License for more details.
|
|
55
|
-
#
|
|
56
|
-
# You should have received a copy of the GNU Lesser General Public
|
|
57
|
-
# License along with this library; if not, write to the Free Software
|
|
58
|
-
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
59
|
-
#
|
|
60
|
-
#++
|
|
61
|
-
#
|
|
62
|
-
|
|
63
|
-
require 'bio/db/fasta'
|
|
64
|
-
require 'bio/io/flatfile'
|
|
65
|
-
require 'bio/command'
|
|
66
|
-
|
|
67
|
-
module Bio
|
|
68
|
-
class Blast
|
|
69
|
-
|
|
70
|
-
# NCBI fastacmd wrapper class
|
|
71
|
-
#
|
|
72
50
|
class Fastacmd
|
|
73
51
|
|
|
74
52
|
include Enumerable
|
|
75
|
-
include Bio::Command::Tools
|
|
76
53
|
|
|
77
54
|
# Database file path.
|
|
78
55
|
attr_accessor :database
|
|
79
56
|
|
|
80
|
-
#
|
|
57
|
+
# fastacmd command file path.
|
|
81
58
|
attr_accessor :fastacmd
|
|
82
59
|
|
|
60
|
+
# This method provides a handle to a BLASTable database, which you can then
|
|
61
|
+
# use to retrieve sequences.
|
|
83
62
|
#
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
#
|
|
87
|
-
#
|
|
88
|
-
#
|
|
63
|
+
# Prerequisites:
|
|
64
|
+
# * You have created a BLASTable database with the '-o T' option.
|
|
65
|
+
# * You have the NCBI fastacmd tool installed.
|
|
66
|
+
#
|
|
67
|
+
# For example, suppose the original input file looks like:
|
|
68
|
+
# >my_seq_1
|
|
69
|
+
# ACCGACCTCCGGAACGGATAGCCCGACCTACG
|
|
70
|
+
# >my_seq_2
|
|
71
|
+
# TCCGACCTTTCCTACCGCACACCTACGCCATCAC
|
|
72
|
+
# ...
|
|
73
|
+
# and you've created a BLASTable database from that with the command
|
|
74
|
+
# cd /my_dir/
|
|
75
|
+
# formatdb -i my_input_file -t Test -n Test -o T
|
|
76
|
+
# then you can get a handle to this database with the command
|
|
77
|
+
# fastacmd = Bio::Blast::Fastacmd.new("/my_dir/Test")
|
|
78
|
+
# ---
|
|
79
|
+
# *Arguments*:
|
|
80
|
+
# * _database_:: path and name of BLASTable database
|
|
89
81
|
def initialize(blast_database_file_path)
|
|
90
82
|
@database = blast_database_file_path
|
|
91
83
|
@fastacmd = 'fastacmd'
|
|
92
84
|
end
|
|
93
85
|
|
|
94
86
|
|
|
95
|
-
#
|
|
96
|
-
#
|
|
97
|
-
#
|
|
98
|
-
#
|
|
87
|
+
# Get the sequence of a specific entry in the BLASTable database.
|
|
88
|
+
# For example:
|
|
89
|
+
# entry = fastacmd.get_by_id("sp:128U_DROME")
|
|
90
|
+
# ---
|
|
91
|
+
# *Arguments*:
|
|
92
|
+
# * _id_: id of an entry in the BLAST database
|
|
93
|
+
# *Returns*:: a Bio::FastaFormat object
|
|
99
94
|
def get_by_id(entry_id)
|
|
100
95
|
fetch(entry_id).shift
|
|
101
96
|
end
|
|
102
97
|
|
|
103
|
-
#
|
|
104
|
-
#
|
|
105
|
-
# Fastacmd#fetch(entry_id) returns an Array of a Bio::FastaFormat
|
|
106
|
-
# object even when the result is a single entry.
|
|
98
|
+
# Get the sequence for a _list_ of IDs in the database.
|
|
107
99
|
#
|
|
108
|
-
#
|
|
109
|
-
#
|
|
110
|
-
# Fastacmd#fetch method also accepts a list of entry_id and returns
|
|
111
|
-
# an Array of Bio::FastaFormat objects.
|
|
112
|
-
#
|
|
113
|
-
# ent_list = ["sp:1433_SPIOL", "sp:1432_MAIZE"]
|
|
114
|
-
# p fastacmd.fetch(ent_list)
|
|
100
|
+
# For example:
|
|
101
|
+
# p fastacmd.fetch(["sp:1433_SPIOL", "sp:1432_MAIZE"])
|
|
115
102
|
#
|
|
103
|
+
# This method always returns an array of Bio::FastaFormat objects, even when
|
|
104
|
+
# the result is a single entry.
|
|
105
|
+
# ---
|
|
106
|
+
# *Arguments*:
|
|
107
|
+
# * _ids_: list of IDs to retrieve from the database
|
|
108
|
+
# *Returns*:: array of Bio::FastaFormat objects
|
|
116
109
|
def fetch(list)
|
|
117
110
|
if list.respond_to?(:join)
|
|
118
111
|
entry_id = list.join(",")
|
|
@@ -121,24 +114,24 @@ class Fastacmd
|
|
|
121
114
|
end
|
|
122
115
|
|
|
123
116
|
cmd = [ @fastacmd, '-d', @database, '-s', entry_id ]
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
Bio::FlatFile.new(Bio::FastaFormat,
|
|
117
|
+
Bio::Command.call_command(cmd) do |io|
|
|
118
|
+
io.close_write
|
|
119
|
+
Bio::FlatFile.new(Bio::FastaFormat, io).to_a
|
|
127
120
|
end
|
|
128
121
|
end
|
|
129
122
|
|
|
130
|
-
# Iterates
|
|
131
|
-
#
|
|
132
|
-
# You can also iterate on all sequences in the database!
|
|
133
|
-
# fastacmd.each do |fasta|
|
|
134
|
-
# p [ fasta.definition[0..30], fasta.seq.size ]
|
|
135
|
-
# end
|
|
123
|
+
# Iterates over _all_ sequences in the database.
|
|
136
124
|
#
|
|
125
|
+
# fastacmd.each_entry do |fasta|
|
|
126
|
+
# p [ fasta.definition[0..30], fasta.seq.size ]
|
|
127
|
+
# end
|
|
128
|
+
# ---
|
|
129
|
+
# *Returns*:: a Bio::FastaFormat object for each iteration
|
|
137
130
|
def each_entry
|
|
138
|
-
cmd = [ @fastacmd, '-d', @database, '-D', '
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
Bio::FlatFile.open(Bio::FastaFormat,
|
|
131
|
+
cmd = [ @fastacmd, '-d', @database, '-D', '1' ]
|
|
132
|
+
Bio::Command.call_command(cmd) do |io|
|
|
133
|
+
io.close_write
|
|
134
|
+
Bio::FlatFile.open(Bio::FastaFormat, io) do |f|
|
|
142
135
|
f.each_entry do |entry|
|
|
143
136
|
yield entry
|
|
144
137
|
end
|
|
@@ -153,4 +146,18 @@ end # class Fastacmd
|
|
|
153
146
|
end # class Blast
|
|
154
147
|
end # module Bio
|
|
155
148
|
|
|
149
|
+
if $0 == __FILE__
|
|
150
|
+
fastacmd = Bio::Blast::Fastacmd.new("/path_to_my_db/db_name")
|
|
151
|
+
seq = fastacmd.get_by_id('id_of_entry1')
|
|
152
|
+
puts seq.class
|
|
153
|
+
puts seq
|
|
154
|
+
|
|
155
|
+
seqs = fastacmd.fetch(['id_of_entry1','id_of_entry2'])
|
|
156
|
+
seqs.each do |seq|
|
|
157
|
+
puts seq
|
|
158
|
+
end
|
|
156
159
|
|
|
160
|
+
fastacmd.each_entry do |fasta|
|
|
161
|
+
puts fasta.seq.size.to_s + "\t" + fasta.definition
|
|
162
|
+
end
|
|
163
|
+
end
|