所以,我想比较一下BLAST(用于与蛋白质或核苷酸进行局部比对的工具)的分析结果
输出文件由具有12列的表格归档组成,我假装比较三列(sseqid,sstart,send),因此我将该文件转换为数据框,并根据信息删除重复的序列这三列(sseqid,sstart,send)中的
import pandas as pd
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-in", "--input", help="blast outfmt 6 formata", required=True)
args = parser.parse_args()
read_file = args.input
header_outfmt6 = ['qseqid','sseqid','pident','length','mismatch','gapopen','qstart','qend','sstart','send','evalue','bitscore']
df = pd.read_csv(read_file, sep='\t',header = None,names = header_outfmt6)
df_2 = df.drop_duplicates(subset=['sseqid','sstart','send'])
out_csv = read_file+'.filtred'
df_2.to_csv(out_csv, sep='\t')
我的脚本几乎是我想要的形式,但是还需要两个步骤:
1º在进行比较时,我想在sstart和send中插入一个-10到+10的变体,如果位置在该范围内匹配,则多余的部分将被删除。
2º在消除冗余的时刻,仅保持具有最大位芯的线路。
有人可以帮我吗?
谢谢。