#!/usr/bin/env ruby

require 'json'

if ARGV.count<1 
  puts "Usage: #{$0} stats1.json [stats2.json stats3.json,...]"
  exit -1
end

# print header  
if ARGV[0]=='-t'
	#heads=['sample_name','input_count','sequence_count_paired','sequence_count_single','rejected','rejected_percent']
	#puts heads.join("\t")
	ARGV.shift
end

contaminants={}

ARGV.each do |file_path|
	sample_name = File.basename(File.expand_path(File.join(file_path,'..','..')))

	stats=JSON::parse(File.read(file_path))

	res=[]
	cont=stats['PluginContaminants']['contaminants_ids']

	limit=60	
	cont.keys.sort{|c1,c2| cont[c2].to_i <=> cont[c1].to_i}.each do |k|
		#puts "#{k} => #{cont[k]}"
		contaminants[k]=(contaminants[k] || 0 ) + cont[k]
		limit = limit -1
		break if limit==0
	end

end

puts JSON::pretty_generate(contaminants)