Someday you can write your love letter in…DNA.

단백질을 구성하는 아미노산은 20+2 개가 있고, 각각에 대해서는 1letter code 로 된 코드표가 있다. 

여기에 최근에 발견된 Selenocysteine (U) 과 Pyrrolysine (O)를 더하면 총 22개. 거의 알파벳 하나에 매칭되지 않나. 

그리고 당연히 이들 아미노산에 대응하는 유전암호는 존재하고 (분자생물학 들으셨져? 고갱님)..

이러다 보니,  영어로 쓴 문장을 ‘아미노산 1레터코드’ 로 간주하여 이를 DNA서열로 바꿔보면 어떨까 하는 생각이 들었다. 잉여정신 돋네

가령, I LOVE YOU SO MUCH라고 한다면, 

이걸 Isolucine, Leucine, Pyrrolysine, Valine, Glutamate, Tyrosine….으로 번역하고, 

이걸 다시 각각의 코돈에 해당하는 DNA로 Back Translation!

그러면 영어 문장을 DNA 서열로 번역 ㅋ 이걸 Gene Synthesis 해서 벡터에 클로닝해서 생물학 오덕 여친에게 줍니다 고갱님. 

여기서 ‘븅신아 B, Z, X, J는 어쩔겨’ 하는 분이 있겠지만, 뭐 어쩔겨. 걍 B는 발린의 코돈 중에 하나 훔치고, Z는 또 딴거로 훔치고 해서 대치해야지 ㅋㅋㅋ

그런데 손으로 변환하려니 이거 돋네? 그래서 간만에 잉여 코딩을 해 봐따. -.-;;;

translate.py

#!/usr/bin/python

import sys,os,re
def translate(datafile):
#
# Regex strips all of space and non alphabetic from the sentence
#
	regex = re.compile('[s|W|0-9_]')
#
# Dictionary for the Amido acid - Codon relationship
#


	codon = {
	'A':'GCT', # Alanine
	'B':'GTG', # Let's use one of 'V' codon as 'B'. 
	'C':'TGT', # Cysteine
	'D':'GAT', # Aspartate
	'E':'GAA', # Glutamate
	'F':'TTT', # Phenylanaline
	'G':'GGT', # Glycine
	'H':'CAT', # Histidine
	'I':'ATT', # Isoleucine
	'J':'AGA', # In this time, let's steal one of Argninine Codon.
	'K':'AAA', # Lysine
	'L':'TTA', # Leucine
	'M':'ATG', # Methionine
	'N':'AAT', # Asparagine
	'O':'TAG', # Pyrrolysine..Do you know new 22th amino acid is out there? It is called 'Pyrrolysine'
	'P':'CCT', # Proline
	'Q':'CAA', # Glutamine
	'R':'CGT', # Arginine
	'S':'TCT', # Serine
	'T':'ACT', # Threonine
	'U':'TGA', # Selenocysteine..This is 21th amino acid
	'V':'GTT', # Valine
	'W':'TGG', # Tryptopin
	'X':'AGT', # 'X' amino acid would be so weird..Anyway, steal again from serine.
	'Y':'TAT', # Tyrosine
	'Z':'GGG', # 'Z'...Let's steal one of Glycine Codon 'GGG'
	'*':'TAA' # This is the 'Stop' Codon. 
                  # There are other two stop codon (TAG and TGA), 
                  # but they are already used for two rare amino acids.
	}

	try:
		f=open(datafile)
		filecontent=f.readlines()
		oneline=""
		for line in filecontent:
			oneline = oneline+regex.sub('',line)
		aminoacid='M'+oneline.upper()+'*' 
#
# Add 'Start Codon' and 'Stop Codon'. Yes..I would like to make a 'functional' protein..LOL
#
		nucleotide =""
		for ch in aminoacid:
			nucleotide = nucleotide+codon[ch];
		print ">"+oneline
		print nucleotide

	except IOError as e:
		print 'f**k'

if __name__ =='__main__':

	for arg in sys.argv[1:]:
		if os.path.isfile(arg):
			translate(arg)

이걸 카피해다 텍스트에디터에 카피해서 translate.py 뭐 이렇게 저장.

그래서 커맨드 라인에서 chmod +x translate.py 해서 실행권한을 주자. 

I love you so much, babe..

그래서 대충 요런 걸 쓰고, love.txt란 이름의 텍스트 파일로 저장했다구 치자구. 그 담에

./translate.py love.txt
>Iloveyousomuchbabe
ATGATTTTATAGGTTGAATATTAGTGATCTTAGATGTGATGTCATGTGGCTGTGGAATAA

요렇게 FASTA 형식의 파일이 Stdout 으로 출력된다. ㅋ Functional 한 단백질을 만들기 위해 시작코돈과 종결코돈 (TAA)를 넣었음에 주목 ㅋ

To be, or not to be, that is the question:
Whether ‘tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles
And by opposing end them. To die—to sleep,
No more; and by a sleep to say we end
The heart-ache and the thousand natural shocks
That flesh is heir to: ‘tis a consummation
Devoutly to be wish’d. To die, to sleep;
To sleep, perchance to dream—ay, there’s the rub:
For in that sleep of death what dreams may come,
When we have shuffled off this mortal coil,
Must give us pause—there’s the respect
That makes calamity of so long life.
For who would bear the whips and scorns of time,
Th’oppressor’s wrong, the proud man’s contumely,
The pangs of dispriz’d love, the law’s delay,
The insolence of office, and the spurns
That patient merit of th’unworthy takes,
When he himself might his quietus make
With a bare bodkin? Who would fardels bear,
To grunt and sweat under a weary life,
But that the dread of something after death,
The undiscovere’d country, from whose bourn
No traveller returns, puzzles the will,
And makes us rather bear those ills we have
Than fly to others that we know not of?
Thus conscience does make cowards of us all,
And thus the native hue of resolution
Is sicklied o’er with the pale cast of thought,
And enterprises of great pitch and moment
With this regard their currents turn awry
And lose the name of action.

요런 대사가 있다 치고, 위 스크립트를 돌려부려

>TobeornottobethatisthequestionWhethertisnoblerinthemindtosufferTheslingsandarrowsofoutrageousfortuneOrtotakearmsagainstaseaoftroublesAndbyopposingendthemTodietosleepNomoreandbyasleeptosayweendTheheartacheandthethousandnaturalshocksThatfleshisheirtotisaconsummationDevoutlytobewishdTodietosleepTosleepperchancetodreamaytherestherubForinthatsleepofdeathwhatdreamsmaycomeWhenwehaveshuffledoffthismortalcoilMustgiveuspausetherestherespectThatmakescalamityofsolonglifeForwhowouldbearthewhipsandscornsoftimeThoppressorswrongtheproudmanscontumelyThepangsofdisprizdlovethelawsdelayTheinsolenceofofficeandthespurnsThatpatientmeritofthunworthytakesWhenhehimselfmighthisquietusmakeWithabarebodkinWhowouldfardelsbearTogruntandsweatunderawearylifeButthatthedreadofsomethingafterdeathTheundiscoveredcountryfromwhosebournNotravellerreturnspuzzlesthewillAndmakesusratherbearthoseillswehaveThanflytoothersthatweknownotofThusconsciencedoesmakecowardsofusallAndthusthenativehueofresolutionIssickliedoerwiththepalecastofthoughtAndenterprisesofgreatpitchandmomentWiththisregardtheircurrentsturnawryAndlosethenameofaction

ATGACTTAGGTGGAATAGCGTAATTAGACTACTTAGGTGGAAACTCATGCTACTATTTCTACTCATGAACAATGAGAATCTACTATTTAGAATTGGCATGAAACTCATGAACGTACTATTTCTAATTAGGTGTTAGAACGTATTAATACTCATGAAATGATTAATGATACTTAGTCTTGATTTTTTGAACGTACTCATGAATCTTTAATTAATGGTTCTGCTAATGATGCTCGTCGTTAGTGGTCTTAGTTTTAGTGAACTCGTGCTGGTGAATAGTGATCTTTTTAGCGTACTTGAAATGAATAGCGTACTTAGACTGCTAAAGAAGCTCGTATGTCTGCTGGTGCTATTAATTCTACTGCTTCTGAAGCTTAGTTTACTCGTTAGTGAGTGTTAGAATCTGCTAATGATGTGTATTAGCCTCCTTAGTCTATTAATGGTGAAAATGATACTCATGAAATGACTTAGGATATTGAAACTTAGTCTTTAGAAGAACCTAATTAGATGTAGCGTGAAGCTAATGATGTGTATGCTTCTTTAGAAGAACCTACTTAGTCTGCTTATTGGGAAGAAAATGATACTCATGAACATGAAGCTCGTACTGCTTGTCATGAAGCTAATGATACTCATGAAACTCATTAGTGATCTGCTAATGATAATGCTACTTGACGTGCTTTATCTCATTAGTGTAAATCTACTCATGCTACTTTTTTAGAATCTCATATTTCTCATGAAATTCGTACTTAGACTATTTCTGCTTGTTAGAATTCTTGAATGATGGCTACTATTTAGAATGATGAAGTTTAGTGAACTTTATATACTTAGGTGGAATGGATTTCTCATGATACTTAGGATATTGAAACTTAGTCTTTAGAAGAACCTACTTAGTCTTTAGAAGAACCTCCTGAACGTTGTCATGCTAATTGTGAAACTTAGGATCGTGAAGCTATGGCTTATACTCATGAACGTGAATCTACTCATGAACGTTGAGTGTTTTAGCGTATTAATACTCATGCTACTTCTTTAGAAGAACCTTAGTTTGATGAAGCTACTCATTGGCATGCTACTGATCGTGAAGCTATGTCTATGGCTTATTGTTAGATGGAATGGCATGAAAATTGGGAACATGCTGTTGAATCTCATTGATTTTTTTTAGAAGATTAGTTTTTTACTCATATTTCTATGTAGCGTACTGCTTTATGTTAGATTTTAATGTGATCTACTGGTATTGTTGAATGATCTCCTGCTTGATCTGAAACTCATGAACGTGAATCTACTCATGAACGTGAATCTCCTGAATGTACTACTCATGCTACTATGGCTAAAGAATCTTGTGCTTTAGCTATGATTACTTATTAGTTTTCTTAGTTATAGAATGGTTTAATTTTTGAATTTTAGCGTTGGCATTAGTGGTAGTGATTAGATGTGGAAGCTCGTACTCATGAATGGCATATTCCTTCTGCTAATGATTCTTGTTAGCGTAATTCTTAGTTTACTATTATGGAAACTCATTAGCCTCCTCGTGAATCTTCTTAGCGTTCTTGGCGTTAGAATGGTACTCATGAACCTCGTTAGTGAGATATGGCTAATTCTTGTTAGAATACTTGAATGGAATTATATACTCATGAACCTGCTAATGGTTCTTAGTTTGATATTTCTCCTCGTATTGGGGATTTATAGGTTGAAACTCATGAATTAGCTTGGTCTGATGAATTAGCTTATACTCATGAAATTAATTCTTAGTTAGAAAATTGTGAATAGTTTTAGTTTTTTATTTGTGAAGCTAATGATACTCATGAATCTCCTTGACGTAATTCTACTCATGCTACTCCTGCTACTATTGAAAATACTATGGAACGTATTACTTAGTTTACTCATTGAAATTGGTAGCGTACTCATTATACTGCTAAAGAATCTTGGCATGAAAATCATGAACATATTATGTCTGAATTATTTATGATTGGTCATACTCATATTTCTCAATGAATTGAAACTTGATCTATGGCTAAAGAATGGATTACTCATGCTGTGGCTCGTGAAGTGTAGGATAAAATTAATTGGCATTAGTGGTAGTGATTAGATTTTGCTCGTGATGAATTATCTGTGGAAGCTCGTACTTAGGGTCGTTGAAATACTGCTAATGATTCTTGGGAAGCTACTTGAAATGATGAACGTGCTTGGGAAGCTCGTTATTTAATTTTTGAAGTGTGAACTACTCATGCTACTACTCATGAAGATCGTGAAGCTGATTAGTTTTCTTAGATGGAAACTCATATTAATGGTGCTTTTACTGAACGTGATGAAGCTACTCATACTCATGAATGAAATGATATTTCTTGTTAGGTTGAACGTGAAGATTGTTAGTGAAATACTCGTTATTTTCGTTAGATGTGGCATTAGTCTGAAGTGTAGTGACGTAATAATTAGACTCGTGCTGTTGAATTATTAGAACGTCGTGAAACTTGACGTAATTCTCCTTGAGGGGGGTTAGAATCTACTCATGAATGGATTTTATTAGCTAATGATATGGCTAAAGAATCTTGATCTCGTGCTACTCATGAACGTGTGGAAGCTCGTACTCATTAGTCTGAAATTTTATTATCTTGGGAACATGCTGTTGAAACTCATGCTAATTTTTTATATACTTAGTAGACTCATGAACGTTCTACTCATGCTACTTGGGAAAAAAATTAGTGGAATTAGACTTAGTTTACTCATTGATCTTGTTAGAATTCTTGTATTGAAAATTGTGAAGATTAGGAATCTATGGCTAAAGAATGTTAGTGGGCTCGTGATTCTTAGTTTTGATCTGCTTTATTAGCTAATGATACTCATTGATCTACTCATGAAAATGCTACTATTGTTGAACATTGAGAATAGTTTCGTGAATCTTAGTTATGAACTATTTAGAATATTTCTTCTATTTGTAAATTAATTGAAGATTAGGAACGTTGGATTACTCATACTCATGAACCTGCTTTAGAATGTGCTTCTACTTAGTTTACTCATTAGTGAGGTCATACTGCTAATGATGAAAATACTGAACGTCCTCGTATTTCTGAATCTTAGTTTGGTCGTGAAGCTACTCCTATTACTTGTCATGCTAATGATATGTAGATGGAAAATACTTGGATTACTCATACTCATATTTCTCGTGAAGGTGCTCGTGATACTCATGAAATTCGTTGTTGACGTCGTGAAAATACTTCTACTTGACGTAATGCTTGGCGTTATGCTAATGATTTATAGTCTGAAACTCATGAAAATGCTATGGAATAGTTTGCTTGTACTATTTAGAATTAA
어쩄든 요런 개드립을 쳐서 DNA로 변환하고,Genscript  같은데 의뢰해서 합성 유전자로 만들고, 벡터에 클로닝하고 너님 여(남)친님의 생일에 맥시프렙한 DNA를 예쁜 튜브에 넣어서 선물해 보아요. 물론 너무 Geeky하다고 짤리면 어쩔 수 없고. 단백질 전공인 분이면 단백질로 발현해서 줘야겠지여

One thought on “Someday you can write your love letter in…DNA.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s