+ end # each
+ end # def process_hmmscan_data
+
+ def extract_domain( sequence,
+ number,
+ out_of,
+ seq_from,
+ seq_to,
+ in_msa,
+ out_msa,
+ add_position,
+ add_domain_number,
+ add_species )
+ if number.is_a?( Fixnum ) && ( number < 1 || out_of < 1 || number > out_of )
+ error_msg = "impossible: number=" + number.to_s + ", out of=" + out_of.to_s
+ raise StandardError, error_msg
+ end
+ if seq_from < 1 || seq_to < 1 || seq_from >= seq_to
+ error_msg = "impossible: seq-f=" + seq_from.to_s + ", seq-t=" + seq_to.to_s
+ raise StandardError, error_msg
+ end
+ seqs = in_msa.find_by_name_start( sequence, true )
+ if seqs.length < 1
+ error_msg = "sequence \"" + sequence + "\" not found in sequence file"
+ raise IOError, error_msg
+ end
+ if seqs.length > 1
+ error_msg = "sequence \"" + sequence + "\" not unique in sequence file"
+ raise IOError, error_msg
+ end
+ # hmmsearch is 1 based, wheres sequences are 0 bases in this package.
+ seq = in_msa.get_sequence( seqs[ 0 ] ).get_subsequence( seq_from - 1, seq_to - 1 )