Simulating Central Dogma of Life using Python

Somesh Chaturvedi

GSoC '18 @ Global Alliance for Genomics and Health

IIT Roorkee Alumni in Biotechnology

Agenda

Basics of genetics

Central Dogma of Life

Transcription (DNA -> mRNA)

Translation (mRNA -> Protein)

Why Python?

Computational Biology and its impact

Future

Q&A

 

 

 

 

DNA

ATGCGCTACCCCGGGTTAAGAGTTTTATCGCTTCCATGACGCAGAAGTTAACACTTTCGGATATTTCTGATGAGTCGAAAAATTATCTTGATAAAGCAGGAATTACTACTGCTTGTTTACGAATTAAATCGAAGTGGACTGCTGGCGGAAAATGAGAAAATTCGACCTATCCTTGCGCAGCTCGAGAAGCTCTTACTTTGCGACCTTTCGCCATCAACTAACGATTCTGTATACCGATATTGCTGGCGACCCTGTTTTGTATGG

Biology Perspective

Computer Science perspective

RNA

Biology Perspective

Computer Science perspective

AUGCGCUACCCCGGGUUAAGAGUUUUAUCGCUUCCAUGACGCAGAAGUUAACACUUUCGGAUAUUUCUGAUGAGUCGAAAAAUUAUCUUGAUAAAGCAGGAAUUACUACUGCUUGUUUACGAAUUAAAUCGAAGUGGACUGCUGGCGGAAAAUGAGAAAAUUCGACCUAUCCUUGCGCAGCUCGAGAAGCUCUUACUUUGCGACCUUUCGCCAUCAACUAACGAUUCUGUAUACCGAUAUUGCUGGCGACCCUGUUUUGUAUGG

Protein

Representations in Computer Science

DNA      -> ....ATGCGCATGC....

RNA      -> ....AUGCGCAUGC....

Protein -> ....LGLCLTHRDGT...

Central Dogma of Life

DNA

Protein

RNA

Special (Lab)

Special

General

Replication

Replication

Transcription

Reverse Transcription

Translation

Direct translation from DNA to protein

Transcription

5'    A T G A T C T C G T A A    3'

       | |  | | | |  | | |  | | |

3'    T A C T A G A G C A T T    5'

5'    A T G A T C T C G T A A   3'

3'    T A  C T  A G A G C A T T    5'

       A U G A U C U C G U A A  

       |  | | |   | |  | | |  | | |

5'    A U G A U C U C G U A A   3'

Step 1: DNA generation 

Step 2: DNA reverse complement

Step 3: RNA reverse complement

Step 1: DNA generation

Usual Way

Pythonic Way

size = 100
dna = ""
mapping = {0: "A", 1: "T", 2: "G", 3: "C"}
for i in range(size):
    dna = dna + mapping[random.randint(4)]
return dna
size = 100
return "".join([random.choice('ATGC') for _ in range(size)])

Step 2: DNA reverse compliment

Usual Way

Pythonic Way

mapping = {'A': 'T', 'C': 'G', 'T': 'A', 'G': 'C'}
dna_rev = ""
for i in len(dna):
    dna_rev = dna_rev + mapping[dna[i]]
return dna_rev
mapping = {'A': 'T', 'C': 'G', 'T': 'A', 'G': 'C'}
return "".join([mapping[base] for base in dna])

Step 3: RNA reverse compliment

Usual Way

Pythonic Way

mapping = {'A': 'U', 'C': 'G', 'T': 'A', 'G': 'C'}
rna = ""
for i in len(dna_rev):
    rna = rna + mapping[dna_rev[i]]
return rna
mapping = {'A': 'U', 'C': 'G', 'T': 'A', 'G': 'C'}
return "".join([mapping[base] for base in dna_rev])

Translation

5'    A U G  A U C  U C G  U A A   3'

RNA Pol

mRNA

Codons

Codon - Protein Map

Codon - Protein Map

Codon - Protein Map

5'    A U G  A U C  U C G  U A A   3'

Step 1: Initiation

start codon

5'    A U G  A U C  U C G  U A A   3'

Step 2: Elongation

stop codon

5'    A U G  A U C  U C G  U A A   3'

Step 3: Termination

Protein

Simulating Central Dogma of Life

By Somesh Chaturvedi

Simulating Central Dogma of Life

  • 870