Skip to content

Instantly share code, notes, and snippets.

@friveroll
Created October 8, 2017 22:00
Show Gist options
  • Save friveroll/374c4f3f6fefa83a130172040599fc5a to your computer and use it in GitHub Desktop.
Save friveroll/374c4f3f6fefa83a130172040599fc5a to your computer and use it in GitHub Desktop.
Problema 1 del folleto "A The first look at the Code of Life" de Cleopatra Kozlowski http://emblog.embl.de/ells/teachingbase/code-of-life-2/
# coding: utf-8
import re
def secuencia_degenerada(sequencia):
seq = []
aa_degenerados = {
'A': ['GC.'],
'C': ['TG[CT]'],
'D': ['GA[CT]'],
'E': ['GA[AG]'],
'F': ['TT[CT]'],
'G': ['GG.'],
'H': ['CA[CT]'],
'I': ['AT[CAT]'],
'K': ['AA[AG]'],
'L': ['[CT]T.'],
'M': ['ATG'],
'N': ['AA[CT]'],
'P': ['CC.'],
'Q': ['CA[AG]'],
'R': ['[AC]G.'],
'S': ['[AT][CG].'],
'T': ['AC.'],
'V': ['GT.'],
'W': ['TGG'],
'Y': ['TA[CT]'],
'*': ['T[AG][AG]']
}
for i in range(len(sequencia)):
seq.append(aa_degenerados[sequencia[i]])
regexp = ''.join(str(e) for e in seq)
return regexp.replace("['", "").replace("']", "")
def encuentra_motivo(regexp, DNA_sequence):
return re.search(regexp, DNA_sequence).group()
def main():
#Met Ser Ile Leu Leu Tyr Stop
peptido_1 = "MSILVER*"
#Met Ser Ile Leu Val Glu Arg Stop
peptido_2 = "MCRT*"
#Met Cys Arg Thr Stop
peptido_3 = "MSILLY*"
peptidos = [peptido_1, peptido_2, peptido_3]
for peptido in peptidos:
regexp = secuencia_degenerada(peptido)
DNA_sequence = "TGGTCCTGCAGTCCTCTCCTGGCGCCCCGGGGGCGAGCGGATGTCGATTCTCGTGGAAAGATAGTCCCGCTGCCTGCGGGCGGAGGGACCGTGCTGACCAAGATGTACCCGCGCGGCAACCACTGGGCGGTGGGGCACTTAATGGGGAAAAAGAGCACAGGGGAGTCTTCTTCTGTATGTTCTGAGAGAGGGAGCCTGAAGCAGCAGCTGAGAGATGTGTCGAACGTGAAGTACATCAGGTGGGAAGAAGCTGCAAGGAATTTGCTGGGTCTCATAGAAGCTAAAGGAGAACAGAAACCACCAGCCACCTCAACCCAAGATGTCGATTCTACTTTATTAAGCCCTGGGCAATCAGCAGCCTTCGTGGGATATGTCAGAGGATAGCAGCCAACTGAATAGC"
match = encuentra_motivo(regexp, DNA_sequence)
print(str(DNA_sequence.find(match) + 1 ) + " " + match + " " + str((DNA_sequence.find(match) + len(match))) + "\n")
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment