У меня есть задание для класса биоинформатики, который запрашивает скрипт на Python для выполнения следующих действий для файла FASTA с несколькими последовательностями белков:
-Открытие файла .fasta, указанного пользователем
-Печать строку заголовка (то есть строку, начинающуюся с ">")
-Печать первые 10 аминокислот и в той же строке, сообщить количество аминокислот в последовательности
После нескольких часов попыток мне удалось получить только строку заголовка и первые 10 аминокислот, напечатанные только для первой последовательности. Цикл for, который я написал, похоже, не сработает (извините, если это мусор, я новичок!)
input_file = open(input("\nPlease enter the name of a FASTA file (inlcuding the .fasta extension): "))
# Opens the file specified by the user
for line in input_file:
line = line.rstrip()
if line[0] == ">":
header = line
print("\nHeader:", header) # prints the header line
no_lines_searched = 0 # To stop loop after first line of sequence when printing first 10 AAs
for i in input_file:
if ">" not in i and no_lines_searched < 1:
print("First ten amino acid residues: ", i[0:10], "# Amino acids: ") # Prints the first 10 AAs
no_lines_searched = no_lines_searched+1 # To stop loop after first line of sequence
Я пытался быть умным и спроектировал второй циклтаким образом, что он вернет первые 10 аминокислот последовательности, затем остановится, пока не встретится другая последовательность (обозначаемая «>»).
Затем я планировал использовать заполнитель %s
, чтобы каким-то образом рассчитать общее количество. длина последовательности для каждой последовательности в файле, но, кажется, не может пройти эту точку!
Вывод, который я получаю, выглядит следующим образом:
Header: >sp|P03378|ENV_HV1A2 Envelope glycoprotein gp160 OS=Human immunodeficiency virus type 1 group M subtype B (isolate ARV2/SF2) GN=env PE=3 SV=1
First ten amino acid residues: MKVKGTRRNY # Amino acids:
Любая помощь будет наиболее ценной!