Skip to content

Instantly share code, notes, and snippets.

@jodyphelan
Created March 19, 2023 04:58
Show Gist options
  • Save jodyphelan/de49702ae756fe49674a47942aba59c5 to your computer and use it in GitHub Desktop.
Save jodyphelan/de49702ae756fe49674a47942aba59c5 to your computer and use it in GitHub Desktop.
#! /usr/bin/env python
import argparse
import sys
import subprocess as sp
from tqdm import tqdm
def main(args):
background = []
foreground = []
for l in tqdm(open(args.meta)):
row = l.strip().split("\t")
if row[1] in args.species:
foreground.append(row[0])
else:
background.append(row[0])
# sp.call(f"kmc -fm -ci1 -k31 {args.dir}/{row[0]}.fna {args.dir}/{row[0]} .",shell=True)
print(background,foreground)
with open(args.out+".conf","w") as O:
O.write("INPUT:\n")
i = 1
forground_set = ""
background_set = ""
for a in foreground:
O.write(f"set{i} = {args.dir}/{a}\n")
forground_set+=f" * set{i}"
i+=1
for a in background:
O.write(f"set{i} = {args.dir}/{a}\n")
background_set+=f" + set{i}"
i+=1
O.write("OUTPUT:\n")
O.write(f"{args.out} = ({forground_set[2:]}) - ({background_set[2:]})\n")
sp.call(f"kmc_tools complex {args.out}.conf",shell=True)
sp.call(f"kmc_dump {args.out} {args.out}.kmers.txt",shell=True)
parser = argparse.ArgumentParser(description='tbprofiler script',formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--dir',default=".",type=str,help='')
parser.add_argument('--species',nargs="+",type=str,help='',required = True)
parser.add_argument('--meta',help='',required = True)
parser.add_argument('--out',help='',required = True)
parser.set_defaults(func=main)
args = parser.parse_args()
args.func(args)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment