Class: DustMasker
- Inherits:
-
Object
- Object
- DustMasker
- Defined in:
- lib/scbi_blast/dust_masker.rb
Overview
DustMasker launcher class
Instance Method Summary collapse
- #close ⇒ Object
-
#do_dust(seq_fasta) ⇒ Object
do the processing with dustmasker to a set of sequences in fasta stored in a string.
-
#get_cmd(extra_params = '') ⇒ Object
returns command to be executed.
-
#initialize(extra_params = '') ⇒ DustMasker
constructor
initializator.
Constructor Details
#initialize(extra_params = '') ⇒ DustMasker
initializator
50 51 52 53 54 55 |
# File 'lib/scbi_blast/dust_masker.rb', line 50 def initialize(extra_params = '') @format = 'interval' @extra_params=extra_params end |
Instance Method Details
#close ⇒ Object
114 115 116 |
# File 'lib/scbi_blast/dust_masker.rb', line 114 def close end |
#do_dust(seq_fasta) ⇒ Object
do the processing with dustmasker to a set of sequences in fasta stored in a string
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 |
# File 'lib/scbi_blast/dust_masker.rb', line 66 def do_dust(seq_fasta) intervals=[] if !seq_fasta.nil? && !seq_fasta.empty? if seq_fasta.is_a?(Array) seq_fasta=seq_fasta.join("\n") end cmd = get_cmd(@extra_params) if !seq_fasta.index('>') raise "Data passed to dust must be in fasta format" end # puts seq_fasta res='' # Ojo, que una vez nos ibamos a volver locos buscando porque esto no devolvia todos los hits que se encontraban al ejecutar el blast a mano, y era porque en el blast a mano le estabamos pasando la secuencia completa mientras que en el MID le estabamos pasando solo los 20 primeros nt. IO.popen(cmd,'w+') {|blast| blast.sync = true # blast.write(">seq\n") blast.write(seq_fasta) blast.close_write res = blast.readlines blast.close_read } if !$?.exitstatus.nil? && $?.exitstatus>0 raise "Error while doing #{cmd} to seq: #{seq_fasta}" end res.each do |line| # puts "LINEA:" + line if line =~ /^>(.*)$/ intervals.push DustQuery.new($1) elsif line =~ /^(\d+)\s\-\s(\d+)/ # puts "Algo #{$1}, #{$2}" intervals.last.push [$1.to_i,$2.to_i] end end end return intervals end |
#get_cmd(extra_params = '') ⇒ Object
returns command to be executed
58 59 60 61 62 63 |
# File 'lib/scbi_blast/dust_masker.rb', line 58 def get_cmd(extra_params = '') cmd = 'dustmasker '+@extra_params + '-outfmt '+ @format + ' 2>/dev/null' return cmd end |