lib/bio/db/primer3.rb in bio-polyploid-tools-1.2.0 vs lib/bio/db/primer3.rb in bio-polyploid-tools-1.2.1
- old
+ new
@@ -32,16 +32,20 @@
end
end
def self.run(opts={})
puts "Primer3.run running..."
-
+ timeout = 600
f_in=opts[:in]
f_out=opts[:out]
+ timeout = opts[:timeout] if opts[:timeout]
opts.delete(:in)
opts.delete(:out)
primer_3_in = File.read(f_in)
- status = systemu "primer3_core", 0=>primer_3_in, 1=>stdout='', 2=>stderr=''
+ status = systemu "primer3_core", 0=>primer_3_in, 1=>stdout='', 2=>stderr='' do |cid|
+ sleep timeout
+ Process.kill 9, cid
+ end
# $stderr.puts cmdline
if status.exitstatus == 0
File.open(f_out, 'w') { |f| f.write(stdout) }
else
raise Primer3Exception.new(), "Error running primer3. Command line was 'primer3_core'\nPrimer3 STDERR was:\n#{stderr}"