我编写了以下代码,以便在python中创建“重叠滑动窗口”,并在每个窗口中进行一些计算。但是我没有得到正确的输出。
我正在使用Jupyter Notebook。
首先,我将文本文件存储在列表中。然后计算每个窗口中C和G的总数。窗口大小= 50kb,增量= 10kb。 问题在于该代码仅提供5个窗口的输出,其余窗口的输出为0。那么我是否在重叠滑动窗口或计数的代码中犯了任何错误?
char = []
with open('xyz.txt') as f:
for line in f:
line = line.strip()
for ch in line:
char.append(ch)
w_s = 50000 #window size
inc = 10000 #increment
x = 4215606
now = 1 #no. of windows
no_of_C = []
no_of_G = []
i = 0
for i in range (0,len(char)-w_s,i + inc):
nC = 0
nG = 0
for j in range(i,w_s):
if char[j] == 'C':
nC = nC + 1
elif char[j] == 'G':
nG = nG + 1
a = no_of_C.append(nC)
b = no_of_G.append(nG)
print(no_of_C)
print(no_of_G)
我编写此代码时没有使用任何库,但是还有其他方法可以在python中创建重叠的滑动窗口吗?
答案 0 :(得分:0)
已编辑答案。谢谢索纳里。
for j in range(i,w_s):
因为您要进行从i到w_s的for循环,并且经过几次迭代并将w_s设置为50000,所以i为50000以上,因此从迭代5开始,此for循环将不会运行任何内容。 :)
解决方案 我相信,如果您将行更改为:
for j in range(i, i + w_s):
然后,您应该得到想要的结果。 :)