You can write your love letter in……DNA.


#!/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)

view raw

gistfile1.py

hosted with ❤ by GitHub

1. Save the above scripts like ‘translate.py’
2. change permission

chmod +x translate.py

3. compose your love letter or something in ‘plain english’ and save it as text. Let’s assume you wrote something like this

I love you so much, babe..

4. Then execute the script.

./translate.py love.txt
>Iloveyousomuchbabe
ATGATTTTATAGGTTGAATATTAGTGATCTTAGATGTGATGTCATGTGGCTGTGGAATAA

Now you have a functional ‘gene’ for your ‘love letter’!. Even it will be translated in the cell cause it has start and stop codon.

GIST in wordpress.com

이전까지 소스코드를 블로그에 적을떄 <pre>를 쓰거나 아니면

태그를 썼었는데, 알고보니 wordpress.com에서는 gist 를 지원하고 있었다. ;;;

gist에 코드쪼가리를 만든다음, 워드프레스에서 글 작성하면서 그냥 gist URL 쳐넣으면
Screen Shot 2012-12-29 at 2.57.43 AM


#!/bin/bash
mysql -u root allbacteria < gff.sql
mysql -u root allbacteria < accession.sql
awk '{ if ($3=="CDS") print $1"\t"$4"\t"$5"\t"$7"\t"$9}' $1.gff | sed -e 's/ID=.*Name=//' -e 's/;Parent.*$//' > $1.txt
cat $1.txt | mysql -u root allbacteria –local-infile=1 -e "LOAD DATA LOCAL INFILE '/dev/stdin' INTO TABLE gff;"
awk '/^>/ {split($0,a,"|");print a[4],"\t",$1}' $1.fasta | sed 's/>//' > $1.txt2
cat $1.txt2 | mysql -u root allbacteria –local-infile=1 -e "LOAD DATA LOCAL INFILE '/dev/stdin' INTO TABLE accession;"

view raw

gistfile1.sh

hosted with ❤ by GitHub

gist 코드가 요기 임베딩되어있넹? 뭔코드인지는 묻지마셈 걍 흔한 awk 파싱해서 MySQL 쳐넣처넣

Multifasta에서 빠르게 일부 레코드만 추출해오기

이런 작업은 사실 일상적으로 하는 작업인 관계로 Perl이나 Python 과 같은 스크립트 언어를 조금이라도 아는 사람이라면 그닥 어렵지 않게 할 수 있는 일이긴 하지만, 이런 작업도 수GB 이상의 파일이라면 그리고 불러올 파일의 갯수가 늘어나면 적지 않은 시간이 소요된다. 좀 더 빠르게 이런 작업을 마칠 수 없을까?

Profile HMM 에 의해 도메인 및 단백질 검색을 하는 유명한 소프트웨어인 HMMER 3.0 에 딸려있는 유틸리티인 esl-sfetch를 이용하면 아주 빠르게 이런 작업을 할 수 있다.

HMMER3 을 설치하고 hmmer3 의 실행파일에 PATH를 걸어둔 다음

esl-sfetch -h

하면

$ esl-sfetch -h
# esl-sfetch :: retrieve sequence(s) from a file
# Easel h3.0 (March 2010)
# Copyright (C) 2010 Howard Hughes Medical Institute.
# Freely distributed under the Janelia Farm Software License.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Usage: esl-sfetch [options]          (one seq named )
Usage: esl-sfetch [options] -f   (all seqs in )
Usage: esl-sfetch [options] --index        (index )

 where general options are:
  -h     : help; show brief info on version and usage
  ....중략.

가령 지금 나는 vibrio.fasta라는 274MB짜리 fasta 파일이 있고, 이 파일은

$tail vibrio.fasta
SDGATWLDRRLIHGETADLAPTGFGQQVREAMDQRREHHIEQGDATRSRDSRVFYRRNLLAILREREVAG
VGSDMALSKGLPFRAATDGESVSGKFTGTVHLSSGKFAVVEKSHEFTLVPWRPIIDRQLGREVMGIVQGG
SVSWQLGRQRGLER
>gi|424025505|ref|ZP_17765144.1| drug resistance transporter, Bcr/CflA subfamily protein [Vibrio cholerae HC-62B1]
MTTTRPAWAYTLPAALLLMAPFDILASLAMDIYLPVVPAMPGILNTTPAMIQLTLSLYMVMLGVGQVIFG
PLSDRIGRRPILLAGATAFVIASLGAAWSSTAPAFVAFRLLQAVGASAMLVATFATVRDVYANRPEGVVI
YGLFSSMLAFVPALGPIAGALIGEFLGWQAIFITLAILAMLALLNAGFRWHETRPLDQVKTRRSVLPIFA
SPAFWVYTVGFSAGMGTFFVFFSTAPRVLIGQAEYSEIGFSFAFATVALVMIVTTRFAKSFVARWGIAGC
VARGMALLVCGAVLLGIGELYGSPSFLTFILPMWVVAVGIVFTVSVTANGALAEFDDIAGSAVAFYFCVQ
SLIVSIVGTLAVALLNGDTAWPVICYATAMAVLVSLGLVLLRLRGAATEKSPVV

요런 식으로 되어 있는 multifasta 파일이다. 여기서 gi|424025505|ref|ZP_17765144.1| 와 같은 accession 으로 파일을 찾고싶다고 치자.

gi|260362785|ref|ZP_05775654.1|
gi|260880072|ref|ZP_05892427.1|
gi|28901226|ref|NP_800881.1|
gi|153835952|ref|ZP_01988619.1|
gi|308095182|ref|ZP_07663192.1|
gi|254224936|ref|ZP_04918551.1|
gi|229529188|ref|ZP_04418578.1|
gi|254285269|ref|ZP_04960234.1|
gi|421351525|ref|ZP_15801890.1|
gi|229515173|ref|ZP_04404633.1|

요런 내용을 list.txt로 저장했다고 치자
제일 먼저 할 일은 fasta 파일을 인덱싱하여 빨리 검색을 할 수 있게 하는거.

$esl-sfetch --index vibrio.fasta
Creating SSI index for vibrio.fasta...    done.
Indexed 665311 sequences (665311 names).
SSI index written to file vibrio.fasta.ssi

이러면 파일이름.ssi 식의 인덱스 파일이 생기고 이제 검색을 할 수 있다.

$esl-sfetch -f vibrio.fasta list.txt

하면 바로 쫙 stdout 으로 파일이 추출된다. ㅋ

사실 이런 작업은 hmmer 등을 수행해서 나온 결과파일을 가지고 해당하는 fasta 파일을 데이터베이스에서 추출할때 유용한데, hmmer를 수행해서 테이블 형식으로 다음과 같은 출력파일이 나왔다고 하자.
Screen Shot 2012-12-21 at 12.59.44 AM

이 출력물을 awk 등으로 파싱해서 원하는 gi 값만 esl-sfetch에 전달해 주면 곧바로 hmmer hit 에 상응하는 시퀀스 파일을 뽑을 수 있다.

awk '{if (substr($0,0,1)!="#") {print $1}}' VopL.fasta.hmmer | esl-sfetch -f vibrio.fasta - > hmmerresults.fasta

참고로 samtools 에도 faidx 라는 동일한 기능 (fasta 를 indexing한후 추출) 이 있으나 테스트해 본 결과 esl-sftech가 더 빠르다.
약 247MB의 fasta에서 10개 정도의 fasta를 추출할때 시간을 재보면

time awk '{if (substr($0,0,1)!="#") {print $1}}' VopL.fasta.hmmer | xargs samtools faidx vibrio.fasta
real	0m1.033s
user	0m0.921s
sys	0m0.110s

time awk '{if (substr($0,0,1)!="#") {print $1}}' VopL.fasta.hmmer | esl-sfetch -f vibrio.fasta
real	0m0.007s
user	0m0.005s
sys	0m0.006s

수십 GB 정도의 파일이라면 좀 더 차이날 것 같다.;;

-C 옵션을 이용하면 multifasta 내의 subsequence을 잘라오는 것도 가능하다. (BED file 등을 파싱해서 빠르게 시퀀스를 얻는것도 가능..아 그건 bedtools쓰면 되나..여튼.

어쩄든 NGS 시대가 되면서 처리해야 할 데이터의 양이 부쩍 늘어난 상황에서 파싱과 같은 간단한 작업의 경우에도 가능하면 unix 기반의 텍스트 툴및 파이프, 리다이렉션을 이용하는 것이 수행속도 면에서도 훨씬 이점이 있는 것 같다는.

1+1은..

요즘 파이썬으로 작성한 스크립트에 최소한의 UI를 씌워보고자 몇가지를 살펴보고 있는데, 요즘 유행하는 Microframework 을 이용하여 간단히 웹 기반의 인터페이스를 씌우는 게 가장 편한 일인듯.

Microframework 의 경우에도 여러가지가 있겠지만, 단 한개의 파일로 해결되는 bottle 을 써볼 예정. 테스트용으로 만든 코드..;;

#!/usr/bin/python
# -*- coding: utf-8 -*-
from bottle import route, run, template
import webbrowser

@route('/:name')
def index(name):
    if int(name) < 6:

        list = u"{0}+{0}은".format(name)
        i = int(name)
        for k in range(i):
            list = list + u"귀요";
        list = list + u"미";
    else:
        list = u"그만해;;;;지겹다";
    return template('<b>{{name}}</b>!', name=list)
webbrowser.open('http://localhost:8080/1')
run(host='localhost', port=8080)

이 파일을 run.py 뭐 이런식으로 저장해서 디렉토리에 넣고, bottle.py 를 다운로드받아 같은 디렉토리에 넣고, 터미널에서

./run.py

로 실행하면…
Screen Shot 2012-12-19 at 12.18.58 AM
…..;;;;;;;

http://localhost:8080/2 로 주소를 바꿔보면..

Screen Shot 2012-12-19 at 12.20.38 AM

6+6은 뭘까? 직접 알아보도록 하고 (쿨럭) 여튼 이렇게 하면 간단히 파일 하나로 웹어플리케이션 구축가능. ㅋ 스크립트 형태로 있는 것에 웹 UI를 달아야 할때와 같을때 매우 유용할 듯 싶다. 특히 twitter bootstrap와 같은 템플릿과 같이 이용하면 최소한의 노력으로 그럴싸한 외관의 웹 UI를 씌울 수 있게 될듯.

Bioawk

Heng Li (author of bwa, samTools..) made a awk version supplemented with bioinoformatic centric functions.
https://github.com/lh3/bioawk
Some examples
Reverse Complement of FASTA

awk -c fastx '{print ">"$name;print revcomp($seq)}' sequence.fasta
Create FASTA from SAM
   samtools view aln.bam | \
awk -c sam '{s=$seq; if(and($flag, 16)) {s=revcomp($seq)} print ">"$qname"\n"s}'

Get the mean Phred quality score from FASTQ:

   awk -c fastx '{print ">"$name;print meanqual($qual)}' seq.fq.gz

Detailed documentation is here.

PacBio로 Gap Filling 하기

오늘 소개할 논문은 아래 논문

 

English et al., Mind the Gap: Upgrading Genomes with Pacific Biosciences RS Long-Read Sequencing Technology, Plos One 2012

 

NGS 시대가 왔다고 하지만, 결국 모델생물이 아닌 잡생물의 지놈 어셈블리 퀄리티는 피니싱까지 마친 모델생물의 지놈 퀄리티에 결코 미치지 못하는 것이 사실. 게다가 short read에 의한 de novo assembly 의 경우 나오는 퀄리티가 기존의 생거 시절의 드래프트 퀄리티보다도 훨씬 못함.

그래서 이것을 좀 개선해 보려고 여러가지 시도가 되고 있는데, 역시 가장 유망한 것은 PacBio나 Oxford Nanopore와 같은 3세대 시퀀싱 기술이 일반화되어 몇kb씩 되는 read를 쑥쑥 뽑아내는 것일것임. 그러나 PacBio는 기껏해야 85% 정도의 base accuracy 를 가지고 있다는 문제, Oxford Nanopore는 뭐 기계가 나와야지 원…ㅋㅋㅋ

그래서 그나마 현재 데이터가 나오는 PacBio 데이터를 좀 보완하는 방법들이 몇가지 발표되고 있는데 이전에 발표된 것은 PacBio 의 long read에 illumina의 short read 데이터를 align 해서 에러교정을 하고, 이 long read 로 assembly를 하는 방법.

Image

그러나 저 위 링크에 나온 방법은 기존의 드래프트 어셈블리를 그대로 두고 여기에 PacBio read 를 얼라인한후 gap 을 메꾸는 넘을 찾아서 Gap 부분만 로컬 어셈블리해서 (한마디로 PacBio 데이터를 gap에 잘라붙이는;;;) 어셈블리를 개선하는 방법. 새롭게 어셈블리를 하지 않고 기존의 어셈블리에 근거해서 어셈블리를 개선하는 것의 장점이라면 어노테이션을 새로 홀라당 다 할 필요가 없다라는 이야기. (어셈블리가 틀려지면 contig 번호, base 넘버가 다 틀려지므로 기존의 유전자 위치정보가 다 도루묵이 됨 ㅋ)

Image

그냥 간단하게 말해서 gap 사이 통과하는 롱다리 PacBio read 골라내고 잘라붙이기 한다고 이해하면 되겠음.

그래서 이런 파이프라인을 거치면 얼마나 어셈블리가 개선되나?

Image

샘플에 따라서 틀리지만 어쨌든 6X 정도의 PacBio  데이터를 이용해서 잘라붙이기 신공을 발휘하면 90%에서 60% 정도의 gap을 메꿀 수 있다고..

물론 몇가지 개선되어야 할 부분은 있는데,

1. 위 파이프라인의 경우 scaffold 내의 gap (sequence gap) 을 메울 수는 있지만 scaffold 간의  gap (physical gap) 을 메우는 것은 현재로써는 불가능한듯. 사실 sequence gap 보다 scaffold 간의 link 를 확립하는 것이 보더 더 유용한 정보를 제공하는데 이 부분에 대해서는 아직 ㅋ 뭐 다음 페이퍼라구염? ㅋㅋㅋ

2. 아무런 에러교정 없이 PacBio 데이터를 잘라붙여서 Gap을 메꾸는 셈이므로 다른 데이터가 없이 PacBio 데이터만 있는 부분이라면 PacBio 의 에러가 같이 스리슬쩍 들어오겠졈? 아놔 Gap 으로 NNNN 하는 것보다는 좀 틀려도 시퀀스가 있는게 더 낫지? 라고 생각할지 모르겠지만 어셈블리가 만들어진 다음 genbank 에 들어갈때 ‘이부분은 PacBio 데이터 밖에 읍음. 에러 있어도 몰라 ㅋ’ 하고 써있는것도 아니고..뭐 하긴 모든 genome sequence는 완벽한게 아니니깐 글타 치자..

3. 결국 Long Read Sequencing 기술의 발전이 더 있어야 이런 꾸질한 짓거리를 안할 수 있다는 말. Oxford Nanopore가 빨리 나오든지 해야지..

4. PacBio는 이제서야 이런 식으로 ‘쓸모가 전혀 없는 것은 아니다’ 라는 내용이 나오긴 하지만..주가를 보면 과연 이 회사 얼마나 버틸까에 대한 의구심이 드는 게 사실ㅋ

Image

 

쥬커버그 “저런 애들도 있는데 나보고 뭐라하는거임? ㅋㅋㅋ”

 

형광단백질을 이용한 단백질 기능 조절

Optical Control of Protein Activity by Fluorescent Protein Domains, Zhou et al., Science 2012

오늘 둘러볼 논문은 이거.

세포내에서 특정한 단백질의 기능을 알아보는 제일 좋은 방법은 해당하는 단백질을 ‘꺼보고’ 무슨 일이 생기는지 보는 것이다. 컴터 부품의 기능을 알려면 일단 뽑아봅니다 고갱님 기계가 정지합니다 아 앙되잖아물론 이러한 목적으로  유전자 레벨에서 Gene을 Knockout 한다거나 아니면 발현을 Knockdown 시킨다든가, 아니면 Dominant Negative/Active Mutant를 과발현한다거나 태워먹은 CPU를 꼽아보자구염 여러가지 잡스러운 방법이 있지만, 결국 이런 방법들은 일시적으로 단백질의 기능을 ‘꺼보는’ 것이라기보다는 단백질을 아예 뽑아버리는 것에 비유되는 방법이기 때문에 여러가지 문제점이 있다. 컴퓨터에 달려있는 부품의 기능을 알아보기 위해서 CPU라는 부품을 뽑았더니 부팅이 안되염 엉엉엉 

따라서 원하는 장소시간 에 맞추어서 단백질의 기능을 조절하는 방법이 필요한데, 여기서 가장 적절한 방법으로는 바로 빛을 이용하는 것이다. 즉 빛을 세포의 특정한 부분에 가해서 해당하는 단백질의 기능을 발휘할 수 있도록 해준다면 얼마나 좋을까?

이러한 것을 위해서 빛에 의해서 유전자의 발현을 조절, 혹은 단백질의 기능을 turn on/off 할 수 있는 시스템들은 여러가지가 개발되어 왔으나 여러가지 문제들이 존재한다.

Image

Lim et al., Nature 2009

Arabidopsis의 광합성관련 단백질의 protein-protein interaction을 이용하여 빛에 따라서 특정 단백질을 특정위치 (위에서는 plasma membrane) 으로 targeting 하는 방법. 단, 이를 위해서는 chromophore인 phycocyanobili (PCB)라는 chemical을 넣어주어야 한다.

Image

Dolmesch et al., Nature Biotechnology 2009

역시 Arabidopsis 의 광합성계 단백질이 Blue light에 의해서 heterodimerization이 되는 것을 이용해서 유전자 발현을 turn on 시키는 예. 파장이 짧아서 에너지가 강하고 따라서 빛에 의한 phototoxicity가 유발될 수 있다는 건 좀 에러. ㅋ

즉, 기존에 여러가지 시스템이 개발되어 왔지만 저마다 여러가지 단점이 있는 경우가 많았다. 게다가 복수의 유전자를 발현시켜야 한다는 점, 단백질 상호작용을 유도하는 것 뿐이고 단백질의 기능을 실제로 off 하는것은 쉽지않다는 점 등등, 이상은 높고 현실은 그닥 녹록하지 않았다라고나 할까.

그러나 지금 발표된 논문은 기존에 발표된 방법들에 비해서 훨씬 간단한 방법으로 특정한 단백질의 기능을 500nm 파장의 빛으로 조절할 수 있다는 점에서 눈길을 끈다.

그럼 이들이 한 일은 무엇인가?

형광단백질 중에서는 특정 파장의 빛에 반응하여 색이 변하거나 색이 나지 않는 것들이 있다. 이중의 하나가 Dronpa 라는 단백질인데, 이 단백질은 500nm 의 빛에서는 빛이 나지 않으나, 400nm 의 빛을 가하면 빛이 나는 것으로 알려져 있고, fluorophore 자체가 화학적으로 변해서 색이 변하는 것이 아니라 가역적으로 turn on/off를 할 수 있는 것으로 알려져 있다.

Image

뭐 대개의 형광단백질과 마찬가지로 맥주통이다 ㅋ

이 단백질은 야생형은 tetramer 였으나 mutation을 도입하여 monomer로 만든 것. 소개하려는 논문에서는 이 단백질의 145번째 아미노산을 N으로 바꾼 돌연변이는 정상적인 경우에서는 tetramer로 존재하나 500nm 파장의 빛을 가하면 monomer 로 변하면서 빛을 잃고, 반대로 400nm 파장을 가하면 tetramer 로 변하면서 더 밝게 된다는 것을 발견하였다. (A,B,C)

Image

그리고 dronpa 도메인을 두개 겹쳐놓고 링커로 연결한 넘의 경우에도 빛에 의해서 dimer가 된다는 것을 확인하였다.

ㅋ 그래 맥주통이 두개 엉긴다 쳐 그게 무슨 대수냐구

이제 이것을 이용해서 이 논문의 본연의 목적을 해보도록 한다. 즉, 두개의 단백질에  Dronpa 도메인을 달고, 빛을 가하면 이 dronpa 도메인의 상호작용에 의해서 두개의 단백질의 상호작용을 유도할 수  있지 않을까? 이를 위해서 먼저 Dronpa 도메인에 membrane에 타겟팅하는 시그널 펩타이드인 CAAX 모티프를 달고, 다른 색깔을 내는 형광단백질인 mNeptue에 Dronpa를 달아보았음. 490nm의 빛을 쪼여주면 -> Dronpa 도메인 엉기는게 해소되고 -> Dronpa 달린 mNeptune은 membrane에서 떨어지게 될것임.

Screen Shot 2012-12-01 at 8.57.10 AM

Dronpa는 membrane localizaiton 시그널이 달려있으니 당연히 멤브레인에 몰려있고, mNeptune은 같이 퓨전된 Dronpa에 의해서 membrane에 로컬라이징 되는 것을 볼 수 있음 (제일 왼쪽 아래패널) 그러다 490nm 을 가하면 Dronpa 의 형광이 꺼지고 (따라서 monomer가 되고) 덩달아 mNeptune은 Dronpa에서 떨어져서 membrane에 몰려있던게 떨어져 나가는 것을 볼 수 있다.

여기서 한발 더 나가서 저자들은 Dronpa가 multimer를 형성하는 것에 의해서 타겟 단백질의 활성을 조절할 수 있지 않을까 하는 착상을 하게 되었다. 이 가설을 입증하기 위해서 사용한 단백질은 GTPase Exchange Factor(GEF)인 DH 도메인과 Protease이고 이것의 활성을 Dronpa에 의해, 즉 ‘어떤 파장의 빛을 가해주냐에 따라서 단백질의 기능을 on off 할수있다’ 를 보여주었다.

일단 GTPase Exchange Factor는 대충 이런거.

Screen Shot 2012-12-01 at 9.04.48 AM

즉 세포내에서 무수한 생명활동의 on/off 스위치로 쓰이는 small GTPase는 붙어있는 게 GTP인지 GTP인지에 따라서 구조가 변하고 타겟 단백질에 붙냐 안붙냐가 결정되는데, GDP 가 붙어있어서 inactive 한 넘의 GDP를 GTP로 갈아넣어서 다시 액티브한 폼으로 바꿔주는게 GEF. ㅇㅋ?

DH-rac

PDB:1FOE

위의 그림에서 파란색이 GTPase (Rac), 하늘색이 GDP 폼의 inactive GTPase 를 GTP 폼으로 바꾸어서 활성화해주는 Rac 얼마까지 알아봤어 싸게 활성화해줄께  GEF 인 DH

그런데 GEF의 앞뒤에 Dronpa를 달면 이게 이렇게 되서 DH에 GTPase인 cdc42가 붙는것을 방해하게 된다.

inhibited

DH : 좋….좋은말 할때 저 걸리적거리는 맥주통 빨리 뻇! 고갱님이 차 못대잖아!

여기에 490nm 파장의 빛을 쬐주면 엉겨있던 Dronpa의 단일화(?)가 결렬되면서 이렇게 GTPase인 cdc42 가 DH 에 결합되서 cdc42를 활성화시켜줄 수 있게 된다.

activated

Dronpa 단일화 결ㅋ렬ㅋ이제 DH 도메인은 다시 활성화 상태

그렇다면 DH도메인이 490nm 파장의 빛에 의해서 활성화되면 어떤 일이 일어나나? cdc42가 활성화되면 세포내의 이동을 촉진하는 메커니즘중의 하나인 filopodia 가 활성화되게 되는데 한마디로 빛을 30초간 쬐주고 30분 정도 기다리면 세포에 이렇게 가시(?)모양의 돌출형태가 생성되게 된다.

Screen Shot 2012-12-01 at 12.56.16 PM

빛받으니 고슴도치 돋넼

또 다른 단백질의 활성을 Dronpa로 조절하는 예로써 든 것은 Protease 활성조절. 역시 Dronpa 를 앞뒤로 달아두어서 Protease 의 활성을 정상상태에서는 막아둔 단백질에 빛을 가해서 단백질 분해효소 활성을 빛으로 조절하는 예이다.

Screen Shot 2012-12-01 at 12.58.39 PM

여튼 본 논문은 Photoactivable Florescence Protein인 Dronpa를 이용하여 단백질 기능을 조절하는 ‘스위치’ 로 활용한 매우 재미있는 예라 하겠다. 물론 Dronpa를 Fusion 시켜서 단백질의 기능을 방해할 수 있는지 없는지는 단백질의 구조에 따라서 틀리고, 어디에 Dronpa를 붙일것인지는 개별적으로 봐야겠지만, 어쨌든 임의의 단백질의 기능을 빛을 통해서 turn on/off 를 시킴으로써 다양한 생명현상을 좌우하는 단백질들에 대한 ‘스위치’ 를 인위적으로 만들 수 있다는 점에서 매우 중요한 논문이라 할 수 있겠다. 물론 형광단백질인 Dronpa를 붙임으로써 Detection 을 쉽게 할 수 있다는 것은 덤 ㅋ