https://github.com/jhbadger/scripts
Tip revision: 6ad694835e70be1c38b4cc13806c5b4361f669fc authored by Jonathan Badger on 12 January 2024, 20:33:42 UTC
report misses in virtualPCR
report misses in virtualPCR
Tip revision: 6ad6948
fixPrefixTaxonomy
#!/usr/bin/env ruby
require 'optimist'
ARGV.push("--help") if ARGV.empty?
opts = Optimist::options do
banner File.basename($0)
opt :input, "input file", :required=>true, :type=>:string
end
ranks = ["k","p","c","o","f","g","s"]
File.new(opts.input).each do |line|
tid, tax = line.chomp.split("\t")
tax = tax.split(";")
if tax[1] =~/k__/
tax[1].sub!("k__","p__")
if tax[2] =~/p__/
tax.delete(tax[2])
end
end
if tax.length < 7
missing = []
ranks.size.times do |i|
if tax.grep(/#{ranks[i]}__/).empty?
missing.push(i)
end
end
missing.each do |i|
if i == 6
tax[i] = tax[5].sub("g__","s__")+"_sp."
else
tax.insert(i,tax[i].sub(tax[i][0], ranks[i]))
end
end
end
printf("%d\t%s\n", tid, tax.join(";").gsub(" ","_").tr("[]()",""))
end