2016-04-25 4 views
1

Так что я чрезвычайно новичок в программировании, и я не очень разбираюсь в любом языке программирования. Я купил книгу по программированию для биологов, и я пошарил в нескольких вещах. Я хочу: получить последовательности из файла и найти и извлечь из него переменную область. мой код ниже:Обработка последовательности ДНК

**

#!/usr/bin/python 
#for extracting GAA sequences 
import os 
import sys 
import re 
#opens sequence file and defines it as reps 
reps = open('142sequences.txt') 
#defining what to read 
line = reps.readlines() 
#defines what we are looking for in rep lines 
for line in reps: 
    sear = re.search(r"C[A]{2,}G[ATCG]{17, 2700}AAT[A]{2,4}G[A]{2,}", reps) 
    if sear: 
     repeats = sear.group() 
     print(repeats) 
    else: 
     print('Not Recognized') 

** я ничего не получаю взамен. Пожалуйста, помогите

ответ

1

Вам нужно искать каждую строку не повторения, которая представляет собой список всех строк:

with open('142sequences.txt') as reps: 
    # iterate over each line in the file 
    for line in reps: 
     # pass each line to re.search 
     sear = re.search(r"C[A]{2,}G[ATCG]{17, 2700}AAT[A]{2,4}G[A]{2,}", line) 
     if sear: 
      repeats = sear.group() 
      print(repeats) 
     else: 
      print('Not Recognized') 

Вызов readlines читает все строки в список, чтобы вы на самом деле никогда не петля в собственном коде так как вы бы потратили итератор на начальный вызов readlines, если бы вы зациклировали, это вызвало бы ошибку, поскольку вам нужно передать строку, а не список для поиска.

+0

спасибо !! все еще разобрались –