Перевести и попарно выровнять белковые последовательности - PullRequest
0 голосов
/ 28 мая 2020

Мне нужно перевести последовательности ДНК (A1, A2, ... A10), перечисленные в файле .txt, в формат FASTA и выровнять их два на два с общей данной последовательностью белка (B). Последовательности A_i почти идентичны C. Единственное отличие - это индекс, состоящий из 1, 2 или 3 нуклеотидов. Перевод должен быть таким, чтобы после стоп-кодона перевод завершался. Мне также нужно представить буквы B, окрашенные (например, зеленый), и парную выровненную последовательность (A_i), окрашенную в тот же цвет, что и B, до положения, в котором последовательности белков идентичны, в то время как остальная часть транслированной последовательности до стоп-кодон был бы окрашен другим цветом. Мне не нужна оценка выравнивания.

Для перевода ниже приведен код. Что касается расклада, я не знаю, как действовать. Любая помощь приветствуется.

def transcribe(sequence):
rna_seq = sequence.replace('T', 'U')
return(rna_seq)

 def translate_rna(sequence):
codon_table = {"AAA":"K", "AAC":"N", "AAG":"K", "AAU":"N", 
            "ACA":"T", "ACC":"T", "ACG":"T", "ACU":"T", 
            "AGA":"R", "AGC":"S", "AGG":"R", "AGU":"S", 
            "AUA":"I", "AUC":"I", "AUG":"M", "AUU":"I", 

            "CAA":"Q", "CAC":"H", "CAG":"Q", "CAU":"H", 
            "CCA":"P", "CCC":"P", "CCG":"P", "CCU":"P", 
            "CGA":"R", "CGC":"R", "CGG":"R", "CGU":"R", 
            "CUA":"L", "CUC":"L", "CUG":"L", "CUU":"L", 

            "GAA":"E", "GAC":"D", "GAG":"E", "GAU":"D", 
            "GCA":"A", "GCC":"A", "GCG":"A", "GCU":"A", 
            "GGA":"G", "GGC":"G", "GGG":"G", "GGU":"G", 
            "GUA":"V", "GUC":"V", "GUG":"V", "GUU":"V", 
            "UAC":"Y", "UAU":"T", "UCA":"S", "UCC":"S", 
            "UCG":"S", "UCU":"S", "UGC":"C", "UGG":"W", 
            "UGU":"C", "UUA":"L", "UUC":"F", "UUG":"L", 
            "UUU":"F"}

 stop_codons={"UAA","UGA","UAG"}

protein_seq = ''
for n in range(0, len(sequence), 3):
    if sequence[n:n+3] in codon_table:
        protein_seq += codon_table[sequence[n:n+3]]
    else:
        protein_seq = protein_seq


   return protein_seq


   ids, sequences = [], []
   n = -1
   with open('82202P-34-seq1.txt') as fh:
   for line in fh:
       line = line.strip()
       if line[0] == '>':
        id = line.split()[0][1:]
        ids.append(id)
        sequences.append('')
        n += 1
    else:
        sequences[n] += line


   for id, seq in zip(ids, sequences):
   print('>'+id)
   rna = transcribe(seq)
   protein = translate_rna(rna)
   print(protein)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...