X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fpcr_seq;h=dec3ea0e4f1b4c01c6841a9499a5c47394248ec5;hb=ad1772aebdbd833813826c1e414d92e1da82c9a8;hp=ff930cca29e6201b18f273eb57fdb7d285859b3d;hpb=1aaa3e635bdbfed13485bb1e87b0c6e9b137bb87;p=biopieces.git diff --git a/bp_bin/pcr_seq b/bp_bin/pcr_seq index ff930cc..dec3ea0 100755 --- a/bp_bin/pcr_seq +++ b/bp_bin/pcr_seq @@ -29,10 +29,9 @@ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -require 'biopieces' -require 'fasta' -require 'seq' -require 'pp' +require 'maasha/biopieces' +require 'maasha/fasta' +require 'maasha/seq' class Pcr def initialize(tmpdir, infile, options) @@ -51,7 +50,7 @@ class Pcr outfile = pat_file.sub("pat", "fna") command = "scan_for_matches" - command << " -c" + # command << " -c" command << " #{pat_file}" command << " < #{@infile}" command << " > #{outfile}" @@ -157,39 +156,39 @@ casts << {:long=>'forward', :short=>'f', :type=>'string', :mandatory=>true, :de casts << {:long=>'reverse', :short=>'r', :type=>'string', :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil} casts << {:long=>'max_dist', :short=>'m', :type=>'uint', :mandatory=>true, :default=>5000, :allowed=>nil, :disallowed=>"0"} -bp = Biopieces.new - -options = bp.parse(ARGV, casts) -tmpdir = bp.mktmpdir +options = Biopieces.options_parse(ARGV, casts) +tmpdir = Biopieces.mktmpdir infile = File.join(tmpdir, "in.fna") -Fasta.open(infile, mode="w") do |ios| - bp.each_record do |record| - bp.puts record - ios.puts record +Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output| + Fasta.open(infile, mode="w") do |ios| + input.each_record do |record| + output.puts record + ios.puts record + end end -end -outfiles = Pcr.new(tmpdir, infile, options).run - -outfiles.each do |outfile| - Fasta.open(outfile, mode="r") do |ios| - ios.each do |entry| - record = entry.to_bp - record[:REC_TYPE] = "PCR" - record[:STRAND] = "+" - record[:TYPE] = File.basename(outfile).sub(".fna", "").upcase - record[:SEQ_NAME].match(/(.+):\[(\d+),(\d+)\]$/) - record[:SEQ_NAME] = $1 - record[:PCR_BEG] = $2 - record[:PCR_END] = $3 - - if record[:PCR_BEG] > record[:PCR_END] - record[:PCR_BEG], record[:PCR_END] = record[:PCR_END], record[:PCR_BEG] - record[:STRAND] = "-" + outfiles = Pcr.new(tmpdir, infile, options).run + + outfiles.each do |outfile| + Fasta.open(outfile, mode="r") do |ios| + ios.each do |entry| + record = entry.to_bp + record[:REC_TYPE] = "PCR" + record[:STRAND] = "+" + record[:TYPE] = File.basename(outfile).sub(".fna", "").upcase + record[:SEQ_NAME].match(/(.+):\[(\d+),(\d+)\]$/) + record[:SEQ_NAME] = $1 + record[:PCR_BEG] = $2 + record[:PCR_END] = $3 + + if record[:PCR_BEG] > record[:PCR_END] + record[:PCR_BEG], record[:PCR_END] = record[:PCR_END], record[:PCR_BEG] + record[:STRAND] = "-" + end + + output.puts record end - - bp.puts record end end end