python 中使用滑动 window 概念的 GC 倾斜方法
GC skew method using sliding window concept in python
我已经完成了 python 的初学者课程,我正在解决一个问题以提高我的编码技能。在这个问题中,我必须通过将整个序列分成等长的子序列来计算 GC-skew 。我在 jupyter 笔记本上工作。
我必须创建一个代码,以便从序列中获取 C 和 G 的数量,然后计算每个 window 中的 GC 偏差。 window大小=5kb,增量为1kb。
到目前为止,我所做的是首先将序列存储在列表中,并获取用户输入的长度 box/window 和框的增量。然后我尝试创建一个循环来计算每个 window 中 C 和 G 的数量,但在这里我遇到了一个问题,而不是在 window/box 中获取 C 和 G 的数量,我得到的是数字整个序列中 C 和 G 的循环次数 运行。我想要每个 window.
中 C 的总数和 G 的总数
请建议如何为每个重叠滑动获得提到的字符数和 GC 偏斜 window/box。还有我可以在这里使用的 python 中滑动 window 的概念吗?
char = []
with open('keratin.txt') as f:
for line in f:
line = line.strip()
for ch in line:
char.append(ch)
print(char)
len(char)
f1 = open('keratin.txt','r')
f2 = open('keratin.txt','a+')
lob = input('Enter length of box =')
iob = input('Enter the increment of the box =')
i=0
lob = 5000
iob = 1000
nob = 1 #no. of boxes
for i in range (0,len(char)-lob):
b = i
while( b < lob + i and b < len(char)):
nC = 0
nG = 0
if char[b] == 'C':
nC = nC + 1
elif char[b] == 'G':
nG = nG + 1
b = b + 1
print(nC)
print(nG)
i = i + iob
nob = nob + 1
希望这对理解有所帮助,
number_of_C_and_G = []
# Go from 0 to end, skipping length of box and increment. 0, 6000, 12000 ...
for i in range(0, len(char), lob+inc):
nC = 0
nG = 0
# Go from start to length of box, 0 to 5000, 6000 to 11000 ...
for j in range(i, lob):
if char[j] == 'C':
nC += 1
else if char[j] == 'G':
nG += 1
# Put the value for the box in the list
number_of_C_and_G.append( (nC, nG) )
我已经完成了 python 的初学者课程,我正在解决一个问题以提高我的编码技能。在这个问题中,我必须通过将整个序列分成等长的子序列来计算 GC-skew 。我在 jupyter 笔记本上工作。 我必须创建一个代码,以便从序列中获取 C 和 G 的数量,然后计算每个 window 中的 GC 偏差。 window大小=5kb,增量为1kb。
到目前为止,我所做的是首先将序列存储在列表中,并获取用户输入的长度 box/window 和框的增量。然后我尝试创建一个循环来计算每个 window 中 C 和 G 的数量,但在这里我遇到了一个问题,而不是在 window/box 中获取 C 和 G 的数量,我得到的是数字整个序列中 C 和 G 的循环次数 运行。我想要每个 window.
中 C 的总数和 G 的总数请建议如何为每个重叠滑动获得提到的字符数和 GC 偏斜 window/box。还有我可以在这里使用的 python 中滑动 window 的概念吗?
char = []
with open('keratin.txt') as f:
for line in f:
line = line.strip()
for ch in line:
char.append(ch)
print(char)
len(char)
f1 = open('keratin.txt','r')
f2 = open('keratin.txt','a+')
lob = input('Enter length of box =')
iob = input('Enter the increment of the box =')
i=0
lob = 5000
iob = 1000
nob = 1 #no. of boxes
for i in range (0,len(char)-lob):
b = i
while( b < lob + i and b < len(char)):
nC = 0
nG = 0
if char[b] == 'C':
nC = nC + 1
elif char[b] == 'G':
nG = nG + 1
b = b + 1
print(nC)
print(nG)
i = i + iob
nob = nob + 1
希望这对理解有所帮助,
number_of_C_and_G = []
# Go from 0 to end, skipping length of box and increment. 0, 6000, 12000 ...
for i in range(0, len(char), lob+inc):
nC = 0
nG = 0
# Go from start to length of box, 0 to 5000, 6000 to 11000 ...
for j in range(i, lob):
if char[j] == 'C':
nC += 1
else if char[j] == 'G':
nG += 1
# Put the value for the box in the list
number_of_C_and_G.append( (nC, nG) )