比较数据与数据框

时间:2019-07-20 12:08:30

标签: python pandas dataframe bioinformatics blast

所以,我想比较一下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º在消除冗余的时刻,仅保持具有最大位芯的线路。

有人可以帮我吗?

谢谢。

0 个答案:

没有答案