我想做的是:
我正在比较两个文件。在
所以有两个文件包含突变的名称和一个与突变相关联的数字aapos
。在
在文件1中,有t
个突变数,在文件2中,有s
个突变数。在
现在,文件号2中的突变具有特定的生物学意义,所以我要做的是查看文件1中的突变名(在我的程序中称为tagname
)是否与文件2中的标记名等效,以及该特定突变的aapos号是否在文件号2中的aapos1和aapos2的范围内。在
如果这两个条件都满足,那么我在文件1中的突变具有特殊的生物学意义,我们称之为1类。否则,就属于第二类,没有生物学意义。在
另外,在每个文件中,都有一个名为synonymous
的列,并且对于文件1中的每一个变异,同义列都被分配一个0或1的数字。在
现在我想做的是:对于属于类别2的每个突变,如果该突变的synonymous
列为0,我希望计数器nonsyntwo
加1,如果它是1,那么我希望计数器syntwo
加1。本质上,对于属于类别2的所有突变,我需要一个计数,即在synonymous
列中有多少个赋值为0,有多少个赋值为1。在
但是,当程序运行时,我得到了nonsyntwo
和syntwo
的一个数字,这远远大于我正在使用的文件中的标记名数目。如果我将s
和{nonsyntwo
的值。在
如果程序迭代15个标记名,这怎么可能?在
for x in range(1,s):
for b in range (1,t):
if tagname1[x]== tagname2[b]:
if int(aapos1[b]) <= int(aapos[x])<= int(aapos2[b]):
snps = snps + 1
elif int(synonymous[x]) == 0:
nonsyntwo = nonsyntwo + 1
elif int(synonymous[x]) == 1:
syntwo = syntwo + 1
elif tagname1[x]!= tagname2[b]:
if int(synonymous[x]) == 0:
nonsyntwo = nonsyntwo + 1
elif int(synonymous[x]) == 1:
syntwo = syntwo + 1
你真的需要把你的问题说清楚。我们不应该仅仅为了了解你在处理什么而挑刺你的问题。在
我明白以下几点:
tagname, appos, synonymous
。在tagname, aapos, appos2, synonymous
。在category2
集合中获取每个项目,并计算1和0的数量如果这是正确的,那么下面就是您需要的(假设您的文件是逗号分隔的)
我不完全理解你想做什么,当我开始命名假设时,它失控了,但这是你的问题:
这对每对
x,b
运行。这意味着它将至少执行次。我怀疑这不是你想要的。在我不清楚你问题的性质。不过,我有以下改进建议:
相关问题 更多 >
编程相关推荐