]> git.donarmstrong.com Git - biopieces.git/blobdiff - bp_bin/kmer_freq
added crufty puts method to fastq.rb
[biopieces.git] / bp_bin / kmer_freq
index 7e412d8dbe39f59385beb88157dcaf284db5fa75..290f07d5b8907b013a246152dac093f3b9005d29 100755 (executable)
 
 require 'maasha/biopieces'
 require 'maasha/seq'
-require 'pp'
 
 casts = []
 casts << {:long=>'size', :short=>'s', :type=>'uint',   :mandatory=>false, :default=>4,     :allowed=>nil,               :disallowed=>'0'}
 casts << {:long=>'type', :short=>'t', :type=>'string', :mandatory=>false, :default=>"dna", :allowed=>"dna,rna,protein", :disallowed=>nil}
 
-bp = Biopieces.new
-
-options = bp.parse(ARGV, casts)
+options = Biopieces.options_parse(ARGV, casts)
 
 oligos = Seq.generate_oligos(options[:size], options[:type])
 
-bp.each_record do |record|
-  if record.has_key? :SEQ
-    kmers  = {}
-    oligos.each { |oligo| kmers[oligo.upcase] = 0 }
+Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output|
+  input.each_record do |record|
+    if record.has_key? :SEQ
+      kmers  = {}
+      oligos.each { |oligo| kmers[oligo.upcase] = 0 }
+
+      (0 ... record[:SEQ].length - options[:size]).each do |i|
+        kmer = record[:SEQ][i .. i + options[:size] - 1].upcase
+        kmers[kmer] += 1 if kmers[kmer]
+      end
 
-    (0 ... record[:SEQ].length - options[:size]).each do |i|
-      kmer = record[:SEQ][i .. i + options[:size] - 1].upcase
-      kmers[kmer] += 1 if kmers[kmer]
+      record.merge! kmers
     end
 
-    record.merge! kmers
+    output.puts record
   end
-
-  bp.puts record
 end
 
+
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<