Перекрывающиеся раздвижные окна в питоне - PullRequest
0 голосов
/ 29 июня 2018

Я написал следующий код, чтобы создать перекрывающееся скользящее окно в python и выполнить некоторые вычисления в каждом окне. Но я не получаю правильный вывод.

Я использую ноутбук Jupyter.

Сначала я сохранил текстовый файл в списке. Затем рассчитывается общее количество C и G в каждом окне. размер окна = 50 КБ и приращение = 10 КБ. Проблема в том, что код выдает выходные данные только для 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?

1 Ответ

0 голосов
/ 29 июня 2018

Отредактированный ответ. Спасибо Сонали.

for j in range(i,w_s): так как вы выполняете цикл for от i до w_s, а i составляет 50000 и более после нескольких итераций, а w_s устанавливается на 50000, с итерации 5 этот цикл for ничего не будет запускать. :)

Решение Я верю, если вы измените строку на:

for j in range(i, i + w_s):

Тогда вы должны получить желаемые результаты. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...