import click
import pandas as pd
import os
@click.command()
@click.option('-r', '--reference', help='accession_file(nucl_gb.accession2taxid/prot.accession2taxid/...)', required=True)
@click.option('-i', '--inputfile', help='search_file(number_nt_virus_blastn.m8/number_nt_bacteria_blastn.m8/...)', required=True)
@click.option('-o1', '--outfile1', help='blastn_match_taxid(number_nt_virus_blastn_match_taxid/...)',required=True)#default='result.fa' ,type=float
@click.option('-o2', '--outfile2', help='blastn_match_taxid_totaxid(number_nt_virus_blastn_match_taxid_totaxid(onlytaxid)/...)',required=True)
def get_hostfilter(reference,inputfile,outfile1,outfile2,outfile3,outfile4,outfile5,outfile6,outfile7,outfile8,outfile9):
val1=os.system("docker cp %s %s" % (inputfile1))
val1 = os.system("taxonkit lineage %s | taxonkit reformat -f '{k};{g};{s}' |cut -f 1,3 > %s " % (
outfile2, outfile3)) # https://blog.csdn.net/njafei/article/details/72764990
val2 = os.system('paste %s %s > %s' % (outfile3, outfile1, outfile4))
if val1 == 0 and val2 == 0:
print("taxid匹配上lineage成功")
else:
print("taxid匹配上lineage失败")
file1 = outfile3
df1 = pd.read_csv(file1, sep='\t', header=None)
# print(df1)
file2 = outfile4
if __name__ == '__main__':
get_hostfilter()
hostfilter_and_blast—后处理(taxid匹配上lineage)_20211213
最新推荐文章于 2024-06-17 17:35:06 发布