class JOINCOUNTFILES::MergeCounts

Public Class Methods

buildfile(majorFile,minorFile,sort,outputfile) click to toggle source
# File lib/join_count_files.rb, line 49
def self.buildfile(majorFile,minorFile,sort,outputfile)

        mers1 = Hash.new()
        mers2 = Hash.new()
        comboHash = Hash.new()
        
         File.foreach(majorFile) {|x| 
                xarr = x.split(",")
                mers1.store(xarr[0],xarr[1].to_i)
                }
        
         File.foreach(minorFile) {|y| 
                yarr = y.split(",")
                mers2.store(yarr[0],yarr[1].to_i)
                }
                
        comboHash = mers1.merge(mers2){|key, oldval, newval| newval + oldval}
        
        if(sort == 'asc')
        open(outputfile, 'w') { |f|
                comboHash.sort{|a,b| a[1]<=>b[1]}.each { |elem|
                f.puts "#{elem[0]},#{elem[1]}"
                        }
                }
        end
        if(sort == 'desc')
        open(outputfile, 'w') { |f|
                comboHash.sort{|a,b| b[1]<=>a[1]}.each { |elem|
                f.puts "#{elem[0]},#{elem[1]}"
                        }
                }
        end
return 0
end