我似乎遇到了一些我正在处理的代码问题。
基本上我试图将SAM
文件中的一堆读取映射到我从gff3
文件中获取的各自功能。
我正在浏览sam
文件中的每一行并拉出染色体并开始读取,然后将其与我试图将其映射到的功能的开头和结尾进行比较(在这种情况下) ORFs
)。
这一切都在for循环中完成,其中包含许多if
语句和for
循环。
我遇到的主要问题是由于某种原因,我的位置工作不正常。我正在查看sam
的行并逐行检查,如果读取的起始位置在功能的开始和结束之间,并且是否正在执行其他一些操作。
但是,根据我的操作,代码不会返回任何位于要素中的内容,也不会随意将内容分配给要素。它似乎没有正确地比较它们。
我尝试了几种不同的方法来比较数字,甚至强迫它们在不同的位置ints
,它给了我以下两个中的一个(出现在代码之后)。
我希望有人能帮助我弄清楚我做错了什么。
这是我的代码
sam=open("qiseqalignCGD.sam", "r")
for sam:
#print line
if "M0" in line:
if "ChrA" in line:
chrom=line.split()[2]#is it in chrom
startlocation=line.split()[3] #where it is mapping to start
if startlocation in ChromAcountingStorage: #look for duplicates
count=0
else:
if chrom == "ChrA_C_glabrata_CBS138": #for this one if it is in chrom A
for i in featureschromA: #cycles through the features
countchromAfeaturekey+=1
insert=int(startlocation)
beginning=int(featureschromA[i][1])
end=int(featureschromA[i][0])
#print type(end)
if beginning <= insert and insert <= end: #checks if it is between that gene
#print "true" + "\t" + (featureschromA[i][0]) + "\t" + startlocation +"\t"+featureschromA[i][1]
if i in ChromAcountingUnique:
ChromAcountingUnique[i]+=1
else:
ChromAcountingUnique.update({i:01}) #counts how many times that key has appeared before then adds it to that keys value""
ChromAcountinglist.append(i)
ChromAcountingStorage.append(startlocation)
#print ChromAcountingStorage
count=0
else:
#print "false" + "\t" + featureschromA[i][0] + "\t" + startlocation +"\t"+featureschromA[i][1]
stall=0
countchromAfeaturekey=0 #resets the counter
结果示例 中间数字是我想要映射的读数。左边的数字是开始,右边的数字是特征的结尾
false 67119 78299 70367
false 69627 78299 70612
false 70937 78299 71320
false 73333 78299 73623
false 74737 78299 76560
false 77494 78299 81497
false 80753 78299 85553
false 84864 78299 86594
false 86383 78299 87887
false 87716 78299 90471
false 90297 78299 92857
粗体的那个应该是真的,但仍然是假的
其他时候,如果我尝试将它们转换为其他地方的int,我会得到类似的东西
false 465618 77756 469181
false 469405 77756 472212
false 470353 77756 480145
true 1608 78299 2636
false 2671 78299 4809
false 11697 78299 13042
看似随机的一个被称为真
有人有任何可能的解释吗?