Я сделал текстовый файл, содержащий случайные последовательности оснований (ATCG), и хочу найти самый длинный и самый короткий «кадр чтения» в этих последовательностях.Python - количество символов между двумя конкретными строками
Я смог идентифицировать начальные и стоп-коды (упомянутые две конкретные строки) с помощью «searchfile» и for-loop, а также знать основы подсчета (пример кода в конце), но Я не могу найти никакой возможности установить эти два как «границы», между которыми я могу рассчитывать.
Может кто-нибудь, может быть, дать мне подсказку или рассказать мне, как называется такая функция/операция, чтобы я мог хотя бы найти ее в документальном фильме или как это могло бы выглядеть? Я нашел много вариантов, как считать разные вещи, но нет для подсчета между «х» и «у».
Пример того, как я посмотрел строки, между которыми я хочу считать:
searchfile = open('dna.txt', 'r')
for line in searchfile:
if "ATG" in line: print (line)
searchfile.close()
весь код:
import numpy as np
BASES = ('A', 'C', 'T', 'G')
P = (0.25, 0.25, 0.25, 0.25)
def random_dna_sequence(length):
return ''.join(np.random.choice(BASES, p=P) for _ in range(length))
with open('dna.txt', 'w+') as txtout:
for _ in range(10):
dna = random_dna_sequence(50)
txtout.write(dna)
txtout.write("\n")
searchfile = open('dna.txt', 'r')
for line in searchfile:
if "ATG" in line: print (line)
searchfile.close()
searchfile = open('dna.txt', 'r')
for line in searchfile:
if "ATG" in line: print (line)
elif "TAG" in line: print (line)
elif "TAA" in line: print (line)
elif "TGA" in line: print (line)
else: print ("no stop-codon detected")
searchfile.close()
Sidenote: Инструкция печати является лишь временным заполнителем для тестирования. В конце я хотел бы установить найденные строки как упомянутые «границы» (я не могу найти лучшего имени для этого) в этой точке.
Некоторые примеры строк из файла dna.txt:
GAAGACGCAATAGGTTCACGGCGCTCATAGGCTTGCCCTCATAGGGCTTG
TCTGAGGTAGAAGGAGCTACTGCCGTTGCAGGTGACGCCCACAGTCCTGA
GTTATTACTCCCTGACTGTCATCTGTTCGGATACCGTGCAGCGCATCGAG
AGGAGATAACGCGATCCTGAGACAGTTTACCTATATGTTCACTACGCATG
CCGAGCTGATCCGACTACTGAAGGTGAATTCTGAAGCTAATCTGCAGTTC
Это небольшой пример (я использую 10 и 50 для тестирования), но в конце концов, файл должен содержать 10000 последовательностей с 1000 символов.
Можете ли вы дать часть своего ввода и ожидаемого вывода – Ajay
Что вы подразумеваете под словами «вход и ожидаемый результат "? Я отредактирую весь код в начальный пост, возможно, он уточнит хотя бы что-то. – grindbert
опубликуйте некоторые строки из dna.txt – Ajay