#!/usr/bin/python3 from fasta import FastaList import argparse import subprocess as sub PARSER = argparse.ArgumentParser(description='Test of primerdelete') PARSER.add_argument('-f', type=str, help='input fasta file', required=True) PARSER.add_argument('-p', type=str, help='input primer fasta' ' file', required=True) PARSER.add_argument('-o', type=str, help='output file', required=True) PARSER.add_argument('-m', type=str, help='muscle path', required=True) ARGS = PARSER.parse_args() fa = FastaList(ARGS.f) fa.wr_fasta_file(ARGS.o, ARGS.p) outfi = ARGS.o.split('.')[0] + '.afa' muscle = sub.Popen(ARGS.m + ' -in ' + ARGS.o + ' -out ' + outfi + ' -quiet') muscle.wait()
if os.path.isdir(ARGS.od): shutil.rmtree(ARGS.od) os.mkdir(ARGS.od) refs = FastaList(ARGS.r) for seqfile in os.listdir(ARGS.id): if 'log' in seqfile: continue print('Cleaning: {}'.format(seqfile)) input_name = ARGS.id + seqfile output_name = ARGS.od + seqfile fa_in = FastaList(input_name) # Remove primers if primers exit in seq. rmprimers return an empty list # if no primers are found if fa_in.rmprimers(ARGS.p): fa_in.wr_fasta_file(output_name, ARGS.p) fa_in = FastaList(output_name) for item in refs.seq_list: if seqfile.split('.')[0] in item.split('\n')[0]: with open(output_name, 'a') as fi: fi.write(item) fi.close() muscle_out = output_name.split('.')[0] + '.afa' muscle = sub.Popen(ARGS.m + ' -in ' + output_name + ' -out ' + muscle_out + ' -gapopen -1000 -quiet') muscle.wait() reference_seq = '' cropped_alignment = FastaList(muscle_out).crop_ends() for item in cropped_alignment: if [m.start() for m in re.finditer('ref', item)]: reference_seq = item
#!/usr/bin/python3 # Removes columns containing degenerate nucleotides from alignment and writes # a new alignment as output file. import argparse from fasta import FastaList PARSER = argparse.ArgumentParser(description='Removes columns with degenerate ' 'nucleotides from alignment ' 'and writes a new alignment as ' 'output file') PARSER.add_argument('-i', type=str, help='fastq input filename', required=True) PARSER.add_argument('-o', type=str, help='fastq output filename', default='out.fa') ARGS = PARSER.parse_args() newseq_list = FastaList(ARGS.i) newseq_list.rm_non_agct_columns() newseq_list.wr_fasta_file(ARGS.o)