Contenu connexe
Similaire à 100610_blastclustalw
Similaire à 100610_blastclustalw (20)
100610_blastclustalw
- 4. (1)
blast_clustalw.rb
blast_clustalw.rb
$ ruby blast_clustalw.rb hsa:6469
( has:6469 blast + clustalw
blast_clustalw.rb
step10.rb
step20.rb Blastp
step30.rb Blastp ID E‐value
step40.rb ID E‐value E‐value
step50.rb
step60.rb ClustalW mulSple alignment
- 5. (2) step10.rb
k.step10.txt
‐ hsa:6469 ( ID kegg_id )
‐blast_clustalw.rb 8‐12 get_aaseq
‐ last_clustalw.rb
b get_aaseq 79
#!/usr/bin/env ruby
require ‘open‐uri’ # 8 open URL REST
# kegg_id
kegg_id = "hsa:6469";
# kegg_id aaseq
aaseq = open("hap://togows.dbcls.jp/entry/kegg‐genes/" + kegg_id + "/aaseq").read
#REST hap://togows.dbcls.jp/entry/kegg‐genes/has:6469/aaseq
# aaseq
# aaseq k.step10.txt
out = open("k.step10.txt","w")
out.puts aaseq
out.close
CotEditor
- 6. (3) step20.rb
Sonic Hedgehog query BLAST
‐blast_clustalw.rb 15‐25
‐ blast_clustalw.rb 81
#!/usr/bin/env ruby
require 'soap/wsdlDriver'
# step10.rb aaseq
aaseq = File.read("k.step10.txt”)
# SOAP blast result_blast
wsdl_blast = "hap://togows.dbcls.jp/soap/wsdl/ddbj_blast.wsdl"
serv_blast = SOAP::WSDLDriverFactory.new(wsdl_blast).create_rpc_driver
program = "blastp"
database = "SWISS"
result_blast = serv_blast.DdbjBlastSearchSimple(program,database,aaseq)
# result_blast k.step20.txt
out = open("k.step20.txt","w")
out.puts result_blast
out.close
- 7. (4) step30.rb
BLAST clustalw
‐ blast_clustalw.rb 27 47 84
#!/usr/bin/env ruby
# step20.rb blast result_blast
result_blast = File.read("k.step20.txt")
# result_blast spid_hash
spid_hash = Hash.new #
# blast line
result_blast.each_line do |line|
# blast sp
if line =~ /^sp|(.+)|(.+)s+.+s+[0‐9]+s+(.+)$/
spid = $1 # 1 () spid
spname = $2 # 2 () spname
evalue = $3 # 3 () evalue
if evalue =~ /^e/ # evalue e
evalue = “1.0” + evalue # 1.0
end
#
- 8. #
# evalue evalue_float
evalue_float = evalue.to_f
# spid_hash[spid] name spname evalue evalue_float
spid_hash[spid] = {:name=>spname, :evalue=>evalue_float}
end
end
# spid_hash k.step30.txt
# %s
out = open("k.step30.txt","w");
spid_hash.each {|spid,value|
out.prinv("%s|%s|%sn",spid,value[:name],value[:evalue]);
}
out.close
step20 blast k.step20.txt ID e‐value
k.step30.txt
‐ hsa:6469 ( ID kegg_id )
‐blast_clustalw.rb 28‐47 parse_blast
‐ last_clustalw.rb
b get_aaseq 84
- 9. : step30.rb
‐ if line =~ /^sp|(.+)|(.+)s+.+s+[0‐9]+s+(.+)$/
BLAST ID
sp
1 |
2 |
3
^: , |: |, .: , +: 1 , s: , $: ,
(): , []: []
Score E
Sequences producing significant alignments: (bits) Value
sp|Q15465|SHH_HUMAN Sonic hedgehog... 720 0.0
sp|Q62226|SHH_MOUSE Sonic hedgehog... 682 0.0
sp|Q63673|SHH_RAT Sonic hedgehog... 679 0.0
sp|Q91035|SHH_CHICK Sonic hedgehog... 605 e-172
sp|Q90385|SHH_CYNPY Sonic hedgehog... 510 e-144
spid
spname
evalue
spid_hash[spid][:name]
spid_hash[spid][:evalue]
- 10. (11):E‐value
(ex. 0.0, e‐100 )
query E‐value query
‐
*E‐value
*
- 11. (5) step40.rb
Blast E‐value
Step30 k.step30.txt E‐value
k.step40.txt
‐ hsa:6469 ( ID kegg_id )
‐blast_clustalw.rb 39‐43
‐blast_clustalw.rb e‐value 6
#!/usr/bin/env ruby
#
min_evalue = 1e‐170
# step30.rb
# spid_hash
lns_spid = File.read("k.step30.txt")
spid_hash = Hash.new
lns_spid.each_line do |line|
raise unless line =~ /^(.+)|(.+)|(.+)$/
spid = $1
spname = $2
evalue = $3
spid_hash[spid] =
{:name=>spname, :evalue=>evalue.to_f}
end #
- 12. #
#
#
spid_hash.each {|spid,value|
#
if value[:evalue] > min_evalue then
spid_hash.delete(spid) #
end
}
# k.step40.txt
out = open("k.step40.txt","w");
spid_hash.each {|spid,value|
out.prinv("%s|%s|%sn",
spid,value[:name],value[:evalue]);
}
out.close
- 13. (6) step50.rb
Sonic Hedgehog
‐ blast_clustalw.rb 49 59 87
#!/usr/bin/env ruby
require 'open‐uri’
#
# spid_hash
lns_spid = File.read("k.step40.txt")
spid_hash = Hash.new
lns_spid.each_line do |line|
raise unless line =~ /^(.+)|(.+)|(.+)$/
spid = $1
spname = $2
evalue = $3
spid_hash[spid] = {:name=>spname, :evalue=>evalue.to_f}
end
#
- 14. #
# spid_hash
spid_hash.each {|spid,value|
#
uri = "hap://togows.dbcls.jp/entry/ebi‐uniprot/" + spid + "/seq”
# REST
value[:seq] = open(uri).read
}
# fasta
out = open("k.step50.fa","w");
spid_hash.each {|spid,value|
out.prinv(">%s|%s|%sn",spid,value[:name],value[:evalue]);
out.prinv("%sn",value[:seq]);
}
out.close
- 15. (7) step60.rb
CLUSTALW alignment
Step50.rb clustalw SOAP
‐ blast_clustalw.rb 61 75 90
#!/usr/bin/env ruby
require 'soap/wsdlDriver’
# fasta query
query = File.read("k.step50.fa")
# query mulSple alignment
wsdl_clustalw = "hap://togows.dbcls.jp/soap/wsdl/ddbj_clustalw.wsdl"
serv_clustalw = SOAP::WSDLDriverFactory.new(wsdl_clustalw).create_rpc_driver
param = "‐align ‐matrix=blosum ‐gapdist=8 ‐maxdiv=40 ‐outorder=aligned ‐
pwmatrix=blosum”
# SOAP CLUSTALW
result_clustalw = serv_clustalw.DdbjClustalwAnalyzeParam(query,param)
# k.step60.txt
out = open("k.step60.txt","w");
out.puts result_clustalw
out.close
- 16. (8) blast_clustalw.rb
blast_clustalw.rb 77‐97 Step10‐60
shiy
# ID hsa:6469
# step10.rb
# step20.rb
#step30.rb step40.rb
#step50.rb
#step60.rb
# auto.txt
- 17. blast_clustalw.rb
1) hsa:6469 MIN_EVALUE ( 1.0e‐140, 1.0e‐120,
1.0e‐100 ) mulSple alignment ( )
2) rat Olr1082 mulSple alignment human mouse
ortholog
‐
rat Olr1082 UniProt ID
REST Entry retrieval UniProt KEGG ID
blast_clustalw.rb (MIN_EVALUE 1.0e‐100)
mulSple alignment ortholog
Ensembl Synteny ortholog