-
Notifications
You must be signed in to change notification settings - Fork 109
/
demo_hmmer_report.rb
149 lines (133 loc) · 3.72 KB
/
demo_hmmer_report.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#
# = sample/demo_hmmer_report.rb - demonstration of Bio::HMMER::Report
#
# Copyright:: Copyright (C) 2002
# Hiroshi Suga <suga@biophys.kyoto-u.ac.jp>,
# Copyright:: Copyright (C) 2005
# Masashi Fujita <fujita@kuicr.kyoto-u.ac.jp>
# License:: The Ruby License
#
#
# == Description
#
# Demonstration of Bio::HMMER::Report (HMMER output parser).
#
# Note that it (and Bio::HMMER::Report) supports HMMER 2.x.
# HMMER 3.x is currently not supported.
#
# == Usage
#
# Specify a file containing a HMMER result.
#
# $ ruby demo_hmmer_report.rb file
#
# Example usage using test data:
#
# $ ruby -Ilib sample/demo_hmmer_report.rb test/data/HMMER/hmmsearch.out
# $ ruby -Ilib sample/demo_blast_report.rb test/data/HMMER/hmmpfam.out
#
# == Development information
#
# The code was moved from lib/bio/appl/hmmer/report.rb.
#
require 'bio'
#if __FILE__ == $0
=begin
#
# for multiple reports in a single output file (hmmpfam)
#
Bio::HMMER.reports(ARGF.read) do |report|
report.hits.each do |hit|
hit.hsps.each do |hsp|
end
end
end
=end
begin
require 'pp'
alias p pp
rescue LoadError
end
rep = Bio::HMMER::Report.new(ARGF.read)
p rep
indent = 18
puts "### hmmer result"
print "name : ".rjust(indent)
p rep.program['name']
print "version : ".rjust(indent)
p rep.program['version']
print "copyright : ".rjust(indent)
p rep.program['copyright']
print "license : ".rjust(indent)
p rep.program['license']
print "HMM file : ".rjust(indent)
p rep.parameter['HMM file']
print "Sequence file : ".rjust(indent)
p rep.parameter['Sequence file']
print "Query sequence : ".rjust(indent)
p rep.query_info['Query sequence']
print "Accession : ".rjust(indent)
p rep.query_info['Accession']
print "Description : ".rjust(indent)
p rep.query_info['Description']
rep.each do |hit|
puts "## each hit"
print "accession : ".rjust(indent)
p [ hit.accession, hit.target_id, hit.hit_id, hit.entry_id ]
print "description : ".rjust(indent)
p [ hit.description, hit.definition ]
print "target_def : ".rjust(indent)
p hit.target_def
print "score : ".rjust(indent)
p [ hit.score, hit.bit_score ]
print "evalue : ".rjust(indent)
p hit.evalue
print "num : ".rjust(indent)
p hit.num
hit.each do |hsp|
puts "## each hsp"
print "accession : ".rjust(indent)
p [ hsp.accession, hsp.target_id ]
print "domain : ".rjust(indent)
p hsp.domain
print "seq_f : ".rjust(indent)
p hsp.seq_f
print "seq_t : ".rjust(indent)
p hsp.seq_t
print "seq_ft : ".rjust(indent)
p hsp.seq_ft
print "hmm_f : ".rjust(indent)
p hsp.hmm_f
print "hmm_t : ".rjust(indent)
p hsp.hmm_t
print "hmm_ft : ".rjust(indent)
p hsp.hmm_ft
print "score : ".rjust(indent)
p [ hsp.score, hsp.bit_score ]
print "evalue : ".rjust(indent)
p hsp.evalue
print "midline : ".rjust(indent)
p hsp.midline
print "hmmseq : ".rjust(indent)
p hsp.hmmseq
print "flatseq : ".rjust(indent)
p hsp.flatseq
print "query_frame : ".rjust(indent)
p hsp.query_frame
print "target_frame : ".rjust(indent)
p hsp.target_frame
print "query_seq : ".rjust(indent)
p hsp.query_seq # hmmseq, flatseq
print "target_seq : ".rjust(indent)
p hsp.target_seq # flatseq, hmmseq
print "target_from : ".rjust(indent)
p hsp.target_from # seq_f, hmm_f
print "target_to : ".rjust(indent)
p hsp.target_to # seq_t, hmm_t
print "query_from : ".rjust(indent)
p hsp.query_from # hmm_f, seq_f
print "query_to : ".rjust(indent)
p hsp.query_to # hmm_t, seq_t
end
end
#end