Top Banner
BioRuby and the KEGG A PI Toshiaki Katayama [email protected] Bioinformatics center, Ky oto U., Japan
22

BioRuby and the KEGG API

Jan 14, 2016

Download

Documents

Mircea raducanu

BioRuby and the KEGG API. Toshiaki Katayama [email protected] Bioinformatics center, Kyoto U., Japan. Use the source!. What is BioRuby?. Yet another BioPerl written in Ruby since Nov 2000 Developed in Japan includes support for Japanese resources like KEGG. So, what is Ruby?. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BioRuby and the KEGG API

BioRuby and the KEGG APIBioRuby and the KEGG API

Toshiaki [email protected]

Bioinformatics center, Kyoto U., Japan

Toshiaki [email protected]

Bioinformatics center, Kyoto U., Japan

Page 2: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

Use the source!Use the source!

Page 3: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

What is BioRuby?What is BioRuby?

Yet another BioPerl written in Ruby since Nov 2000

Developed in Japan includes support for Japanese resources like KEGG

Yet another BioPerl written in Ruby since Nov 2000

Developed in Japan includes support for Japanese resources like KEGG

Page 4: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

So, what is Ruby?So, what is Ruby?

Scripting language clean syntax, v. easy to use/read/write

Everything is object Integer, String, Regexp, Exception etc. w/o exceptio

n

Created by Japanese author 'matz'

Scripting language clean syntax, v. easy to use/read/write

Everything is object Integer, String, Regexp, Exception etc. w/o exceptio

n

Created by Japanese author 'matz'

Page 5: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

So, what is Ruby?So, what is Ruby?

Pre-installed in Mac OS X !

Page 6: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

What the Ruby code looks like?

What the Ruby code looks like?

#!/usr/bin/ruby

puts "Hello world!"

#!/usr/bin/ruby

puts "Hello world!"

Page 7: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

What the BioRuby code looks like?

What the BioRuby code looks like?

#!/usr/bin/env ruby

require 'bio'

gene = Bio::Seq::NA.new("catgaattattgtagannntgataaagacttgac")prot = gene.translate

# => "HELL*XW*RLD" (Bio::Seq::AA object)

puts prot.split('X').join(' ').capitalize.gsub(/\*/, 'o') << '!'

# => "Hello World!"

#!/usr/bin/env ruby

require 'bio'

gene = Bio::Seq::NA.new("catgaattattgtagannntgataaagacttgac")prot = gene.translate

# => "HELL*XW*RLD" (Bio::Seq::AA object)

puts prot.split('X').join(' ').capitalize.gsub(/\*/, 'o') << '!'

# => "Hello World!"

Page 8: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

Bio::SequenceBio::Sequence Bio::Sequence (aliased to Bio::Seq)

seq.compositionseq.window_searchseq.randomizeseq.to_fasta

Bio::Sequence::NAseq.complementseq.splicingseq.translateseq.to_re

Bio::Sequence::AAseq.molecular_weight

Bio::Sequence (aliased to Bio::Seq)seq.compositionseq.window_searchseq.randomizeseq.to_fasta

Bio::Sequence::NAseq.complementseq.splicingseq.translateseq.to_re

Bio::Sequence::AAseq.molecular_weight

#!/usr/bin/env ruby

require 'bio'

seq = Bio::Seq::NA.new("atggcttcagt..

seq.window_search(15, 3) do |sub| puts sub.translate.molecular_weightend

#!/usr/bin/env ruby

require 'bio'

seq = Bio::Seq::NA.new("atggcttcagt..

seq.window_search(15, 3) do |sub| puts sub.translate.molecular_weightend

Page 9: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

What BioRuby can do more?What BioRuby can do more?

Biological sequence manipulationsRun applications (Blast etc.) and parse its reportDatabase entry retrieval, parsingPubMed reference DB search, reformattingAccessing OBDA, DAS, KEGG API

Biological sequence manipulationsRun applications (Blast etc.) and parse its reportDatabase entry retrieval, parsingPubMed reference DB search, reformattingAccessing OBDA, DAS, KEGG API

Page 10: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

Bio::ApplicationsBio::Applications

Bio::Blast, Fasta, HMMER, EMBOSSBio::GenscanBio::PSORT, TargetPBio::SOSUI, TMHMM

each contains Report class for parsing the results

Bio::Blast, Fasta, HMMER, EMBOSSBio::GenscanBio::PSORT, TargetPBio::SOSUI, TMHMM

each contains Report class for parsing the results

Page 11: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

exampleexample

#!/usr/bin/env rubyrequire 'bio'

File.open("my_blast_output.xml") do |file| Bio::Blast.reports(file) do |report| report.hits do |hit| puts hit.num, hit.query_id, hit.target_id, hit.bit_score, hit.evalue, hit.overlap end endend

#!/usr/bin/env rubyrequire 'bio'

File.open("my_blast_output.xml") do |file| Bio::Blast.reports(file) do |report| report.hits do |hit| puts hit.num, hit.query_id, hit.target_id, hit.bit_score, hit.evalue, hit.overlap end endend

Page 12: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

Bio::DBBio::DB

Bio::GenBank, EMBL, SwissProt, ...Bio::FastaFormat, GFF, GOBio::MEDLINE, LITDBBio::TRANSFAC, PROSITEBio::FANTOMBio::KEGG::GENES, ENZYME, Microarray, ...Bio::AAindex

Bio::GenBank, EMBL, SwissProt, ...Bio::FastaFormat, GFF, GOBio::MEDLINE, LITDBBio::TRANSFAC, PROSITEBio::FANTOMBio::KEGG::GENES, ENZYME, Microarray, ...Bio::AAindex

Page 13: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

OBDA -- Open Bio* DB Access

OBDA -- Open Bio* DB Access

Bio::RegistryBio::FetchBio::FlatFileBio::SQL

+Bio::DAS

Bio::RegistryBio::FetchBio::FlatFileBio::SQL

+Bio::DAS

Page 14: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

OBDA exampleOBDA example

~/.bioinformatics/seqdatabase.ini[embl]protocol=biofetchlocation=http://bioruby.org/cgi-bin/biofetch.rbdbname=embl

[swissprot]protocol=biosqllocation=db.bioruby.orgdbname=biosqldriver=mysqlbiodbname=sp

[genbank]protcol=flatlocation=/export/database/dbname=genbank

~/.bioinformatics/seqdatabase.ini[embl]protocol=biofetchlocation=http://bioruby.org/cgi-bin/biofetch.rbdbname=embl

[swissprot]protocol=biosqllocation=db.bioruby.orgdbname=biosqldriver=mysqlbiodbname=sp

[genbank]protcol=flatlocation=/export/database/dbname=genbank

#!/usr/bin/env rubyrequire 'bio'reg = Bio::Registry.new

sp = reg.get_database('swissprot')puts sp.get_by_id('CYC_BOVIN')

gb = reg.get_database('genbank')puts gb.get_by_id('AA2CG')

#!/usr/bin/env rubyrequire 'bio'reg = Bio::Registry.new

sp = reg.get_database('swissprot')puts sp.get_by_id('CYC_BOVIN')

gb = reg.get_database('genbank')puts gb.get_by_id('AA2CG')

Page 15: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

What is KEGG?What is KEGG?

GENOME, GENESPATHWAYSSDB etc.

GENOME, GENESPATHWAYSSDB etc.

Page 16: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

KEGG in GMODKEGG in GMOD

http://gmod.bioruby.orgImport KEGG/GENES and

KEGG/PATHWAY into GMOD browser (converted by BioRuby)

Over 100 organisms in unified form

linked to GENES and PATHWAY database

http://gmod.bioruby.orgImport KEGG/GENES and

KEGG/PATHWAY into GMOD browser (converted by BioRuby)

Over 100 organisms in unified form

linked to GENES and PATHWAY database

Page 17: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

KEGG APIKEGG API

http://www.genome.ad.jp/kegg/soap/

SOAP/WSDL based web serviceXML, HTTP

Proteome and pathway analysisKEGG/GENESKEGG/SSDBKEGG/PATHWAY

http://www.genome.ad.jp/kegg/soap/

SOAP/WSDL based web serviceXML, HTTP

Proteome and pathway analysisKEGG/GENESKEGG/SSDBKEGG/PATHWAY

Page 18: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

exampleexample

#!/usr/bin/env rubyrequire 'bio'

serv = Bio::KEGG::API.newputs serv.get_best_neighbors_by_gene('eco:b0002')

# serv.get_best_neighbors_by_gene('eco:b0002', 500)# serv.get_best_neighbors_by_gene('eco:b0002', 500, ['hin', 'syn'])

list = ['ec:1.1.1.1', 'ec:1.2.1.1']puts serv.get_genes_by_enzymes(list, ['eco', 'syn'])

list = ['eco:b0600', 'eco:b1190']puts serv.mark_all_pathways_by_genes('eco', list)

#!/usr/bin/env rubyrequire 'bio'

serv = Bio::KEGG::API.newputs serv.get_best_neighbors_by_gene('eco:b0002')

# serv.get_best_neighbors_by_gene('eco:b0002', 500)# serv.get_best_neighbors_by_gene('eco:b0002', 500, ['hin', 'syn'])

list = ['ec:1.1.1.1', 'ec:1.2.1.1']puts serv.get_genes_by_enzymes(list, ['eco', 'syn'])

list = ['eco:b0600', 'eco:b1190']puts serv.mark_all_pathways_by_genes('eco', list)

ISMB poster D-25

Page 19: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

Example : Ortholog cluster and common motif

Example : Ortholog cluster and common motif

#!/usr/bin/ruby

require 'bio'

serv = Bio::KEGG::API.new

homologs = serv.get_all_neighbors_by_gene('hsa:7368', 500)

pfams = {}homologs.each do |g| motifs = serv.get_common_motifs_by_genes(g[0]) motifs.each do |m| if m[0] =~ /pf:/ if pfams.key?(m) pfams[m] << g[0] else pfams[m] = [g[0]] end end endend

pfams.each do |m| p mend

#!/usr/bin/ruby

require 'bio'

serv = Bio::KEGG::API.new

homologs = serv.get_all_neighbors_by_gene('hsa:7368', 500)

pfams = {}homologs.each do |g| motifs = serv.get_common_motifs_by_genes(g[0]) motifs.each do |m| if m[0] =~ /pf:/ if pfams.key?(m) pfams[m] << g[0] else pfams[m] = [g[0]] end end endend

pfams.each do |m| p mend

Page 20: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

Example: Gene expression and Pathway analysis by

KEGG API

Example: Gene expression and Pathway analysis by

KEGG APIserv = Bio::KEGG::API.new

regulated_genes.each do |gene| map_id = serv.get_pathways_by_genes(["bsu:#{gene[0]}"]) map_id.each do |entry| entry.gsub!('map', 'bsu') entry.gsub!('path', 'map') if map_gene.key?(entry) map_gene[entry] << gene[0] else map_gene[entry] = [gene[0]] end endend

map_gene.each do |k, v| colors = [] v.each do |g| colors << "##{ma.orf2rgb[g]}" end p serv.color_pathway_by_genes("bsu:#{k}", v, colors)end

serv = Bio::KEGG::API.new

regulated_genes.each do |gene| map_id = serv.get_pathways_by_genes(["bsu:#{gene[0]}"]) map_id.each do |entry| entry.gsub!('map', 'bsu') entry.gsub!('path', 'map') if map_gene.key?(entry) map_gene[entry] << gene[0] else map_gene[entry] = [gene[0]] end endend

map_gene.each do |k, v| colors = [] v.each do |g| colors << "##{ma.orf2rgb[g]}" end p serv.color_pathway_by_genes("bsu:#{k}", v, colors)end

Page 21: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

AcknowledgementAcknowledgement

BioRuby developersNaohisa Goto, Mitsuteru Nakao, Yoshinori Okuji, Shuichi Ka

washima, Masumi Itoh and many more.

KEGG and KEGG API curators / developersBioinformatics center, Kyoto University, JapanYoko Sato, Shuichi Kawashima, Minoru Kanehisa

Open Bio* community

BioRuby developersNaohisa Goto, Mitsuteru Nakao, Yoshinori Okuji, Shuichi Ka

washima, Masumi Itoh and many more.

KEGG and KEGG API curators / developersBioinformatics center, Kyoto University, JapanYoko Sato, Shuichi Kawashima, Minoru Kanehisa

Open Bio* community

Page 22: BioRuby and the KEGG API

http://bioruby.org/ BOSC 2003

http://bioruby.org/http://bioruby.org/

BioRuby 0.5.0 is out!25 Jun 2003