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
data/lib/bio/db/kegg/kgml.rb
CHANGED
|
@@ -3,17 +3,43 @@
|
|
|
3
3
|
#
|
|
4
4
|
# Copyright:: Copyright (C) 2005
|
|
5
5
|
# Toshiaki Katayama <k@bioruby.org>
|
|
6
|
-
# License::
|
|
6
|
+
# License:: The Ruby License
|
|
7
7
|
#
|
|
8
|
-
# $Id: kgml.rb,v 1.
|
|
8
|
+
# $Id: kgml.rb,v 1.7 2007/04/05 23:35:41 trevor Exp $
|
|
9
9
|
#
|
|
10
|
+
|
|
11
|
+
autoload :REXML, 'rexml/document'
|
|
12
|
+
|
|
13
|
+
module Bio
|
|
14
|
+
class KEGG
|
|
15
|
+
|
|
10
16
|
# == KGML (KEGG XML) parser
|
|
11
17
|
#
|
|
12
18
|
# See http://www.genome.jp/kegg/xml/ for more details on KGML.
|
|
13
19
|
#
|
|
20
|
+
# === Incompatible attribute names with KGML tags
|
|
21
|
+
#
|
|
22
|
+
# <entry>
|
|
23
|
+
# :id -> :entry_id
|
|
24
|
+
# :type -> :category
|
|
25
|
+
# :map -> :pathway
|
|
26
|
+
# names()
|
|
27
|
+
# <graphics>
|
|
28
|
+
# :name -> :label
|
|
29
|
+
# :type -> :shape
|
|
30
|
+
# <relation>
|
|
31
|
+
# :entry1 -> :node1
|
|
32
|
+
# :entry2 -> :node2
|
|
33
|
+
# :type -> :rel
|
|
34
|
+
# <subtype>
|
|
35
|
+
# edge()
|
|
36
|
+
# <reaction>
|
|
37
|
+
# :name -> :entry_id
|
|
38
|
+
# :type -> :direction
|
|
39
|
+
#
|
|
14
40
|
# === Examples
|
|
15
41
|
#
|
|
16
|
-
# file =
|
|
42
|
+
# file = File.read("kgml/hsa/hsa00010.xml")
|
|
17
43
|
# kgml = Bio::KEGG::KGML.new(file)
|
|
18
44
|
#
|
|
19
45
|
# # <pathway> attributes
|
|
@@ -26,117 +52,102 @@
|
|
|
26
52
|
#
|
|
27
53
|
# kgml.entries.each do |entry|
|
|
28
54
|
# # <entry> attributes
|
|
29
|
-
# puts entry.
|
|
55
|
+
# puts entry.entry_id
|
|
30
56
|
# puts entry.name
|
|
31
|
-
# puts entry.
|
|
32
|
-
# puts entry.type
|
|
57
|
+
# puts entry.category
|
|
33
58
|
# puts entry.link
|
|
34
59
|
# puts entry.reaction
|
|
35
|
-
# puts entry.
|
|
60
|
+
# puts entry.pathway
|
|
36
61
|
# # <graphics> attributes
|
|
37
|
-
# puts entry.label
|
|
62
|
+
# puts entry.label # name
|
|
63
|
+
# puts entry.shape # type
|
|
38
64
|
# puts entry.x
|
|
39
65
|
# puts entry.y
|
|
40
|
-
# puts entry.type
|
|
41
66
|
# puts entry.width
|
|
42
67
|
# puts entry.height
|
|
43
68
|
# puts entry.fgcolor
|
|
44
69
|
# puts entry.bgcolor
|
|
70
|
+
# # <component> attributes
|
|
71
|
+
# puts entry.components
|
|
72
|
+
# # methood
|
|
73
|
+
# puts entry.names
|
|
45
74
|
# end
|
|
46
75
|
#
|
|
47
76
|
# kgml.relations.each do |relation|
|
|
48
77
|
# # <relation> attributes
|
|
49
|
-
# puts relation.entry1
|
|
50
|
-
# puts relation.entry2
|
|
51
|
-
# puts relation.type
|
|
78
|
+
# puts relation.node1 # entry1
|
|
79
|
+
# puts relation.node2 # entry2
|
|
80
|
+
# puts relation.rel # type
|
|
81
|
+
# # method
|
|
82
|
+
# puts relation.edge
|
|
52
83
|
# # <subtype> attributes
|
|
53
84
|
# puts relation.name
|
|
54
85
|
# puts relation.value
|
|
55
|
-
# # or
|
|
56
|
-
# relation.subtype.each do |value, name|
|
|
57
|
-
# puts value, name
|
|
58
|
-
# end
|
|
59
86
|
# end
|
|
60
87
|
#
|
|
61
88
|
# kgml.reactions.each do |reaction|
|
|
62
89
|
# # <reaction> attributes
|
|
63
|
-
# puts reaction.name
|
|
64
|
-
# puts reaction.type
|
|
90
|
+
# puts reaction.entry_id # name
|
|
91
|
+
# puts reaction.direction # type
|
|
65
92
|
# # <substrate> attributes
|
|
66
|
-
# reaction.substrates.each do |
|
|
67
|
-
# puts
|
|
93
|
+
# reaction.substrates.each do |entry_id|
|
|
94
|
+
# puts entry_id
|
|
68
95
|
# # <alt> attributes
|
|
69
|
-
# altnames = reaction.alt[
|
|
70
|
-
# altnames.each do |
|
|
71
|
-
# puts
|
|
96
|
+
# altnames = reaction.alt[entry_id]
|
|
97
|
+
# altnames.each do |name|
|
|
98
|
+
# puts name
|
|
72
99
|
# end
|
|
73
100
|
# end
|
|
74
101
|
# # <product> attributes
|
|
75
|
-
# reaction.products.each do |
|
|
76
|
-
# puts
|
|
102
|
+
# reaction.products.each do |entry_id|
|
|
103
|
+
# puts entry_id
|
|
77
104
|
# # <alt> attributes
|
|
78
|
-
# altnames = reaction.alt[
|
|
79
|
-
# altnames.each do |
|
|
80
|
-
# puts
|
|
105
|
+
# altnames = reaction.alt[entry_id]
|
|
106
|
+
# altnames.each do |name|
|
|
107
|
+
# puts name
|
|
81
108
|
# end
|
|
82
109
|
# end
|
|
83
110
|
# end
|
|
84
111
|
#
|
|
85
|
-
#--
|
|
86
|
-
#
|
|
87
|
-
# This library is free software; you can redistribute it and/or
|
|
88
|
-
# modify it under the terms of the GNU Lesser General Public
|
|
89
|
-
# License as published by the Free Software Foundation; either
|
|
90
|
-
# version 2 of the License, or (at your option) any later version.
|
|
91
|
-
#
|
|
92
|
-
# This library is distributed in the hope that it will be useful,
|
|
93
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
94
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
95
|
-
# Lesser General Public License for more details.
|
|
96
|
-
#
|
|
97
|
-
# You should have received a copy of the GNU Lesser General Public
|
|
98
|
-
# License along with this library; if not, write to the Free Software
|
|
99
|
-
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
100
|
-
#
|
|
101
|
-
#++
|
|
102
|
-
#
|
|
103
|
-
|
|
104
|
-
require 'rexml/document'
|
|
105
|
-
|
|
106
|
-
module Bio
|
|
107
|
-
class KEGG
|
|
108
|
-
|
|
109
112
|
class KGML
|
|
110
113
|
|
|
111
114
|
def initialize(xml)
|
|
112
|
-
|
|
113
|
-
parse_root
|
|
114
|
-
parse_entry
|
|
115
|
-
parse_relation
|
|
116
|
-
parse_reaction
|
|
115
|
+
dom = REXML::Document.new(xml)
|
|
116
|
+
parse_root(dom)
|
|
117
|
+
parse_entry(dom)
|
|
118
|
+
parse_relation(dom)
|
|
119
|
+
parse_reaction(dom)
|
|
117
120
|
end
|
|
118
121
|
attr_reader :name, :org, :number, :title, :image, :link
|
|
119
|
-
|
|
122
|
+
attr_accessor :entries, :relations, :reactions
|
|
120
123
|
|
|
121
124
|
class Entry
|
|
122
|
-
attr_accessor :
|
|
123
|
-
attr_accessor :label, :
|
|
125
|
+
attr_accessor :entry_id, :name, :category, :link, :reaction, :pathway
|
|
126
|
+
attr_accessor :label, :shape, :x, :y, :width, :height, :fgcolor, :bgcolor
|
|
127
|
+
attr_accessor :components
|
|
128
|
+
def names
|
|
129
|
+
@name.split(/\s+/)
|
|
130
|
+
end
|
|
124
131
|
end
|
|
125
132
|
|
|
126
133
|
class Relation
|
|
127
|
-
attr_accessor :
|
|
134
|
+
attr_accessor :node1, :node2, :rel
|
|
128
135
|
attr_accessor :name, :value
|
|
129
|
-
|
|
136
|
+
def edge
|
|
137
|
+
@value.to_i
|
|
138
|
+
end
|
|
130
139
|
end
|
|
131
140
|
|
|
132
141
|
class Reaction
|
|
133
|
-
attr_accessor :
|
|
134
|
-
attr_accessor :substrates, :products
|
|
135
|
-
attr_accessor :alt
|
|
142
|
+
attr_accessor :entry_id, :direction
|
|
143
|
+
attr_accessor :substrates, :products # Array
|
|
144
|
+
attr_accessor :alt # Hash
|
|
136
145
|
end
|
|
137
146
|
|
|
138
|
-
|
|
139
|
-
|
|
147
|
+
private
|
|
148
|
+
|
|
149
|
+
def parse_root(dom)
|
|
150
|
+
root = dom.root.attributes
|
|
140
151
|
@name = root["name"]
|
|
141
152
|
@org = root["org"]
|
|
142
153
|
@number = root["number"]
|
|
@@ -145,69 +156,73 @@ class KGML
|
|
|
145
156
|
@link = root["link"]
|
|
146
157
|
end
|
|
147
158
|
|
|
148
|
-
def parse_entry
|
|
159
|
+
def parse_entry(dom)
|
|
149
160
|
@entries = Array.new
|
|
150
161
|
|
|
151
|
-
|
|
162
|
+
dom.elements.each("/pathway/entry") { |node|
|
|
152
163
|
attr = node.attributes
|
|
153
164
|
entry = Entry.new
|
|
154
|
-
entry.
|
|
155
|
-
entry.
|
|
156
|
-
entry.
|
|
157
|
-
|
|
158
|
-
entry.
|
|
159
|
-
entry.
|
|
160
|
-
entry.
|
|
165
|
+
entry.entry_id = attr["id"].to_i
|
|
166
|
+
entry.name = attr["name"]
|
|
167
|
+
entry.category = attr["type"]
|
|
168
|
+
# implied
|
|
169
|
+
entry.link = attr["link"]
|
|
170
|
+
entry.reaction = attr["reaction"]
|
|
171
|
+
entry.pathway = attr["map"]
|
|
161
172
|
|
|
162
173
|
node.elements.each("graphics") { |graphics|
|
|
163
174
|
attr = graphics.attributes
|
|
164
|
-
entry.x
|
|
165
|
-
entry.y
|
|
166
|
-
entry.
|
|
167
|
-
entry.label
|
|
168
|
-
entry.width
|
|
169
|
-
entry.height
|
|
170
|
-
entry.fgcolor
|
|
171
|
-
entry.bgcolor
|
|
175
|
+
entry.x = attr["x"].to_i
|
|
176
|
+
entry.y = attr["y"].to_i
|
|
177
|
+
entry.shape = attr["type"]
|
|
178
|
+
entry.label = attr["name"]
|
|
179
|
+
entry.width = attr["width"].to_i
|
|
180
|
+
entry.height = attr["height"].to_i
|
|
181
|
+
entry.fgcolor = attr["fgcolor"]
|
|
182
|
+
entry.bgcolor = attr["bgcolor"]
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
node.elements.each("component") { |component|
|
|
186
|
+
attr = component.attributes
|
|
187
|
+
entry.components ||= []
|
|
188
|
+
entry.components << attr["id"].to_i
|
|
172
189
|
}
|
|
190
|
+
|
|
173
191
|
@entries << entry
|
|
174
192
|
}
|
|
175
193
|
end
|
|
176
194
|
|
|
177
|
-
def parse_relation
|
|
195
|
+
def parse_relation(dom)
|
|
178
196
|
@relations = Array.new
|
|
179
197
|
|
|
180
|
-
|
|
198
|
+
dom.elements.each("/pathway/relation") { |node|
|
|
181
199
|
attr = node.attributes
|
|
182
200
|
relation = Relation.new
|
|
183
|
-
relation.
|
|
184
|
-
relation.
|
|
185
|
-
relation.
|
|
201
|
+
relation.node1 = attr["entry1"].to_i
|
|
202
|
+
relation.node2 = attr["entry2"].to_i
|
|
203
|
+
relation.rel = attr["type"]
|
|
186
204
|
|
|
187
|
-
hash = Hash.new
|
|
188
205
|
node.elements.each("subtype") { |subtype|
|
|
189
206
|
attr = subtype.attributes
|
|
190
|
-
relation.name =
|
|
191
|
-
relation.value =
|
|
192
|
-
hash[value] = name
|
|
207
|
+
relation.name = attr["name"]
|
|
208
|
+
relation.value = attr["value"]
|
|
193
209
|
}
|
|
194
|
-
relation.subtype = hash
|
|
195
210
|
@relations << relation
|
|
196
211
|
}
|
|
197
212
|
end
|
|
198
213
|
|
|
199
|
-
def parse_reaction
|
|
214
|
+
def parse_reaction(dom)
|
|
200
215
|
@reactions = Array.new
|
|
201
216
|
|
|
202
|
-
|
|
217
|
+
dom.elements.each("/pathway/reaction") { |node|
|
|
203
218
|
attr = node.attributes
|
|
204
219
|
reaction = Reaction.new
|
|
205
|
-
reaction.
|
|
206
|
-
reaction.
|
|
220
|
+
reaction.entry_id = attr["name"]
|
|
221
|
+
reaction.direction = attr["type"]
|
|
207
222
|
|
|
208
223
|
substrates = Array.new
|
|
209
224
|
products = Array.new
|
|
210
|
-
hash
|
|
225
|
+
hash = Hash.new
|
|
211
226
|
|
|
212
227
|
node.elements.each("substrate") { |substrate|
|
|
213
228
|
name = substrate.attributes["name"]
|
|
@@ -225,75 +240,17 @@ class KGML
|
|
|
225
240
|
hash[name] << alt.attributes["name"]
|
|
226
241
|
}
|
|
227
242
|
}
|
|
228
|
-
|
|
229
243
|
reaction.substrates = substrates
|
|
230
|
-
reaction.products
|
|
231
|
-
reaction.alt
|
|
244
|
+
reaction.products = products
|
|
245
|
+
reaction.alt = hash
|
|
232
246
|
|
|
233
247
|
@reactions << reaction
|
|
234
248
|
}
|
|
235
249
|
end
|
|
236
250
|
|
|
237
251
|
end # KGML
|
|
252
|
+
|
|
238
253
|
end # KEGG
|
|
239
254
|
end # Bio
|
|
240
255
|
|
|
241
256
|
|
|
242
|
-
if __FILE__ == $0
|
|
243
|
-
require 'pp'
|
|
244
|
-
xml = ARGF.read
|
|
245
|
-
pp Bio::KEGG::KGML.new(xml)
|
|
246
|
-
end
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
=begin
|
|
250
|
-
|
|
251
|
-
# This is a test implementation which reflects original KGML data structure.
|
|
252
|
-
|
|
253
|
-
class KGML
|
|
254
|
-
|
|
255
|
-
class Pathway
|
|
256
|
-
attr_accessor :name, :org, :number, :title, :image, :link
|
|
257
|
-
attr_accessor :entries, :relations, :reactions
|
|
258
|
-
|
|
259
|
-
class Entry
|
|
260
|
-
attr_accessor :id, :name, :type, :link, :reaction, :map
|
|
261
|
-
attr_accessor :components, :graphics
|
|
262
|
-
|
|
263
|
-
class Component
|
|
264
|
-
attr_accessor :id
|
|
265
|
-
end
|
|
266
|
-
|
|
267
|
-
class Graphics
|
|
268
|
-
attr_accessor :name, :x, :y, :type, :width, :height, :fgcolor, :bgcolor
|
|
269
|
-
end
|
|
270
|
-
end
|
|
271
|
-
|
|
272
|
-
class Relation
|
|
273
|
-
attr_accessor :entry1, :entry2, :type
|
|
274
|
-
attr_accessor :
|
|
275
|
-
|
|
276
|
-
class Subtype
|
|
277
|
-
attr_accessor :name, :value
|
|
278
|
-
end
|
|
279
|
-
end
|
|
280
|
-
|
|
281
|
-
class Reaction
|
|
282
|
-
attr_accessor :name, :type
|
|
283
|
-
|
|
284
|
-
class Substrate
|
|
285
|
-
attr_accessor :name
|
|
286
|
-
end
|
|
287
|
-
|
|
288
|
-
class Product
|
|
289
|
-
attr_accessor :name
|
|
290
|
-
end
|
|
291
|
-
|
|
292
|
-
class Alt
|
|
293
|
-
attr_accessor :name
|
|
294
|
-
end
|
|
295
|
-
end
|
|
296
|
-
end
|
|
297
|
-
|
|
298
|
-
end
|
|
299
|
-
=end
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#
|
|
2
|
+
# = bio/db/kegg/orthology.rb - KEGG ORTHOLOGY database class
|
|
3
|
+
#
|
|
4
|
+
# Copyright:: Copyright (C) 2003-2007 Toshiaki Katayama <k@bioruby.org>
|
|
5
|
+
# Copyright:: Copyright (C) 2003 Masumi Itoh <m@bioruby.org>
|
|
6
|
+
# License:: The Ruby License
|
|
7
|
+
#
|
|
8
|
+
# $Id: orthology.rb,v 1.9 2007/04/05 15:42:59 k Exp $
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
require 'bio/db'
|
|
12
|
+
|
|
13
|
+
module Bio
|
|
14
|
+
class KEGG
|
|
15
|
+
|
|
16
|
+
# == Description
|
|
17
|
+
#
|
|
18
|
+
# KO (KEGG Orthology) entry parser.
|
|
19
|
+
#
|
|
20
|
+
# == References
|
|
21
|
+
#
|
|
22
|
+
# * http://www.genome.jp/dbget-bin/get_htext?KO
|
|
23
|
+
# * ftp://ftp.genome.jp/pub/kegg/genes/ko
|
|
24
|
+
#
|
|
25
|
+
class ORTHOLOGY < KEGGDB
|
|
26
|
+
|
|
27
|
+
DELIMITER = RS = "\n///\n"
|
|
28
|
+
TAGSIZE = 12
|
|
29
|
+
|
|
30
|
+
# Reads a flat file format entry of the KO database.
|
|
31
|
+
def initialize(entry)
|
|
32
|
+
super(entry, TAGSIZE)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Returns ID of the entry.
|
|
36
|
+
def entry_id
|
|
37
|
+
field_fetch('ENTRY')[/\S+/]
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Returns NAME field of the entry.
|
|
41
|
+
def name
|
|
42
|
+
field_fetch('NAME')
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Returns an Array of names in NAME field.
|
|
46
|
+
def names
|
|
47
|
+
name.split(', ')
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Returns DEFINITION field of the entry.
|
|
51
|
+
def definition
|
|
52
|
+
field_fetch('DEFINITION')
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Returns CLASS field of the entry.
|
|
56
|
+
def keggclass
|
|
57
|
+
field_fetch('CLASS')
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Returns an Array of biological classes in CLASS field.
|
|
61
|
+
def keggclasses
|
|
62
|
+
keggclass.gsub(/ \[[^\]]+/, '').split(/\] ?/)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Returns an Array of KEGG/PATHWAY ID in CLASS field.
|
|
66
|
+
def pathways
|
|
67
|
+
keggclass.scan(/\[PATH:(.*?)\]/).flatten
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Returns a Hash of Array of a database name and entry IDs in DBLINKS field.
|
|
71
|
+
def dblinks
|
|
72
|
+
unless @data['DBLINKS']
|
|
73
|
+
@data['DBLINKS'] = lines_fetch('DBLINKS')
|
|
74
|
+
end
|
|
75
|
+
@data['DBLINKS']
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Returns a Hash of Array of the organism ID and entry IDs in GENES field.
|
|
79
|
+
def genes
|
|
80
|
+
unless @data['GENES']
|
|
81
|
+
@data['GENES'] = lines_fetch('GENES')
|
|
82
|
+
end
|
|
83
|
+
@data['GENES']
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
end # ORTHOLOGY
|
|
87
|
+
|
|
88
|
+
end # KEGG
|
|
89
|
+
end # Bio
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
if __FILE__ == $0
|
|
94
|
+
|
|
95
|
+
require 'bio/io/fetch'
|
|
96
|
+
|
|
97
|
+
flat = Bio::Fetch.query('ko', 'K00001')
|
|
98
|
+
entry = Bio::KEGG::ORTHOLOGY.new(flat)
|
|
99
|
+
|
|
100
|
+
p entry.entry_id
|
|
101
|
+
p entry.name
|
|
102
|
+
p entry.names
|
|
103
|
+
p entry.definition
|
|
104
|
+
p entry.keggclass
|
|
105
|
+
p entry.keggclasses
|
|
106
|
+
p entry.pathways
|
|
107
|
+
p entry.dblinks
|
|
108
|
+
p entry.genes
|
|
109
|
+
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
|