| Class | Bio::ClustalW |
| In: |
lib/bio/appl/clustalw.rb
lib/bio/appl/clustalw/report.rb |
| Parent: | Object |
Bio::ClustalW is a CLUSTAL W execution wrapper class. Its object is also called an alignment factory. CLUSTAL W is a very popular software for multiple sequence alignment.
| command | [R] | Returns last command-line strings executed by this factory. Note that filenames described in the command-line may already be removed because they are temporary files. Returns an array. |
| data_stdout | [RW] | Last output to the stdout. |
| exit_status | [R] | Last exit status |
| options | [RW] | options |
| output | [R] | Returns last raw alignment result (String or nil). |
| output_dnd | [R] | Returns last alignment guild-tree (file.dnd). |
| program | [RW] | name of the program (usually ‘clustalw’ in UNIX) |
| report | [R] | Returns last alignment result. Returns a Bio::ClustalW::Report object. |
Creates a new CLUSTAL W execution wrapper object (alignment factory).
# File lib/bio/appl/clustalw.rb, line 41
41: def initialize(program = 'clustalw', opt = [])
42: @program = program
43: @options = opt
44: @command = nil
45: @output = nil
46: @report = nil
47: @data_stdout = nil
48: @exit_status = nil
49: @output_dnd = nil
50: end
This method will be deprecated.
Returns last messages of CLUSTAL W execution.
# File lib/bio/appl/clustalw.rb, line 73
73: def log
74: #warn 'Bio::ClustalW#log will be deprecated.'
75: @data_stdout
76: end
Executes the program(clustalw). If seqs is not nil, perform alignment for seqs. If seqs is nil, simply executes CLUSTAL W.
Compatibility note: When seqs is nil, returns true if the program exits normally, and returns false if the program exits abnormally.
# File lib/bio/appl/clustalw.rb, line 108
108: def query(seqs)
109: if seqs then
110: query_align(seqs)
111: else
112: exec_local(@options)
113: @exit_status.exitstatus == 0 ? true : false
114: end
115: end
Note that this method will be renamed to query_alignment.
Performs alignment for seqs. seqs should be Bio::Alignment or Array of sequences or nil.
Compatibility Note: Nucleic or amino is not determined by this method.
# File lib/bio/appl/clustalw.rb, line 123
123: def query_align(seqs)
124: unless seqs.is_a?(Bio::Alignment)
125: seqs = Bio::Alignment.new(seqs)
126: end
127: query_string(seqs.output_fasta(:width => 70,
128: :avoid_same_name => true))
129: end
Performs alignment for seqs. seqs should be Bio::Alignment or Array of sequences or nil.
# File lib/bio/appl/clustalw.rb, line 133
133: def query_alignment(seqs)
134: query_align(seqs)
135: end
Performs alignment of sequences in the file named path.
Compatibility Note: 2nd argument (seqtype) is deprecated and ignored.
# File lib/bio/appl/clustalw.rb, line 159
159: def query_by_filename(path, *arg)
160: if arg.size > 0 then
161: warn '2nd argument of Bio::ClustalW#query_by_filename is ignored'
162: end
163:
164: tf_out = Tempfile.open('clustalout')
165: tf_out.close(false)
166: tf_dnd = Tempfile.open('clustaldnd')
167: tf_dnd.close(false)
168:
169: opt = [ "-align",
170: "-infile=#{path}",
171: "-outfile=#{tf_out.path}",
172: "-newtree=#{tf_dnd.path}",
173: "-outorder=input"
174: ]
175: #opt << "-type=#{seqtype}" if seqtype
176: opt.concat(@options)
177: exec_local(opt)
178: tf_out.open
179: @output = tf_out.read
180: tf_out.close(true)
181: tf_dnd.open
182: @output_dnd = tf_dnd.read
183: tf_dnd.close(true)
184: @report = Report.new(@output)
185: @report
186: end
Performs alignment for str. str should be a string that can be recognized by CLUSTAL W.
Compatibility Note: 2nd argument is deprecated and ignored.
# File lib/bio/appl/clustalw.rb, line 141
141: def query_string(str, *arg)
142: if arg.size > 0 then
143: warn '2nd argument of Bio::ClustalW#query_string is ignored'
144: end
145: begin
146: tf_in = Tempfile.open('align')
147: tf_in.print str
148: ensure
149: tf_in.close(false)
150: end
151: r = query_by_filename(tf_in.path)
152: tf_in.close(true)
153: r
154: end