모티프 (Motif)는 유전체 내에서 생물학적 기능에 기여하는 짧은 DNA 서열이다. 생물체의 성장, 유지, 번식을 위해서 세포 수준에서 다양한 조절과정이 수반되고 그 조절과정에는 다수의 단백질이 관여한다. 단백질은 다양한 형태로 유전자의 발현 및 번역 과정을 조절하는데, 그 중 한 가지 방법은 DNA분자에 직접 결합하는 것이다. 단백질은 DNA 분자에 직접 결합함으로써 새로운 결합이나 다른 작용을 유발하거나, 억제함으로써 유전자의 발현을 조절한다. 이러한 과정에 참여하는 단백질을 Trnascription factor (TF, 전사인자) 라고 통칭하는데, 당연하게도 DNA의 아무 위치에 결합해서는 의도한 조절작용을 나타낼 수 없다. TF가 인식하여 부착하는 DNA의 염기서열을 찾은 것이 motif이고, 이 염기서열의 패턴은 특정한 하나의 조합이 아니어서 특정한 염기서열로 표현되지 않고, Position weight matrix (PWM, 위치특정가중치매트릭스) 형태로 표현된다. 위치별로 가중치를 가지는 염기 패턴에 부착하므로 하나의 TF는 다양한 조합의 염기서열 위치에 결합할 수 있게 되고, motif 염기서열을 포괄해서 TF가 부착하는 DNA상의 지역을 Transcription factor binding site (TFBS)라고 칭한다.
생물학적 기능은 다양한 유전자들의 발현조절과 발현 산물의 작용의 합으로 표현되므로 TF가 DNA상의 어떤 부위에 결합하는지, 결합한 부위인 TFBS 내에서도 특히 어떤 염기서열 (motif)을 인식한 것인지 등의 정보를 수집하는 것은 생물학적 표현형의 내부 기작을 이해하는데에 매우 중요하다.
따라서 다양한 데이터를 활용해서 motif / TFBS를 예측하는 방법론들이 개발되어오고 있고, 이와 별도로 TF가 부착하는 motif 정보 또한 광범위하게 연구되고, 그 결과가 데이터베이스에 축적되고 있다 (HOMER, JASPAR, KEGG, etc.).
본 포스팅에서 살펴볼 프로그램은 FIMO라는 이름의 모티프 탐색 프로그램이다.
FIMO는 Find Individual Motif Occurrences 의 약자로 입력으로 받은 sequence 상에 존재하는 Motif를 찾아 반환하는 프로그램으로, 각 위치에 대한 log likelihood ratio 점수를 계산하고, 이로부터 p-value, q-value 를 계산해서 출력한다.
Motif 정보는 .meme 형식의 pwm을 사용자가 함께 제공해 주어야 하나, 이는 JASPAR등의 데이터베이스에서 수집할 수 있다.
FIMO를 단일 시행하고자 할 때 사용하는 command는 다음과 같다.
fimo --qv-thresh --thresh 0.05 --oc [output directory] [motif.meme] [sequence database]
내부에서 q-value생성까지 가능하고, threshold 설정을 해 줌으로써 (--thresh) significant한 결과만 출력할 수 있다.
[motif.meme]은 .meme format의 motif 정보로 다음과 같은 형식이다.
MEME version 4
ALPHABET= ACGT
strands: + -
Background letter frequencies
A 0.25 C 0.25 G 0.25 T 0.25
MOTIF MA1653.1 ZNF148
letter-probability matrix: alength= 4 w= 12 nsites= 11199 E= 0
0.124922 0.410126 0.200107 0.264845
0.112778 0.362264 0.287079 0.237878
0.007322 0.964283 0.018305 0.010090
0.011787 0.928297 0.042057 0.017859
0.012144 0.939905 0.035807 0.012144
0.007947 0.967319 0.018841 0.005893
0.011876 0.001250 0.090365 0.896509
0.005893 0.978123 0.010001 0.005983
0.031431 0.885972 0.041075 0.041522
0.039468 0.828913 0.035003 0.096616
0.075542 0.646397 0.171801 0.106259
0.075096 0.635235 0.184302 0.105367
URL http://jaspar.genereg.net/matrix/MA1653.1
[sequence database]에는 motif를 찾고자 하는 시퀀스들의 집합을 넣어주면 되는데, 이 파일은 .fasta format으로 제공하면 된다.
>sequence1
ACCGCTTGTGCCGTCTCGCAACACGACGACGACGACACTATCTAGACGCAGCAGCAGCATCTGCG
>sequence2
ACCGCTTGTGCCGTCTCGCAACACGACGACGACGACACTATCTAGACGCAGCAGCAGCATCTGCG
위와같은 motif로 가지고있던 input 파일에 대해 실행 하면 tab으로 분리된 결과물 파일과 같은 내용의 html 파일이 함께 생성된다.
본 실행에서 사용한 MA1653.1 아이디를 가지는 motif와 실제로 시퀀스 내에서 발견된 motif위치의 시퀀스가 상당부분 유사한 것을 알 수 있고, 좀 더 높은 p-value를 가지는 보다 덜 significant한 위치의 경우 PWM에서 상대적으로 가중치가 적은 base를 앞쪽에서 포함하고 있는 것을 확인할 수 있다.
output에서 Sequence Name 은 [sequence database]에 들어갔던 해당 검색을 수행한 sequence id이다(인데 아래 결과물 캡쳐에서는 id가 조금 잘못 만들어져서 상태가 저렇다. ).
Strand 는 해당 시퀀스에서 발견된 motif의 방향, start, end는 해당 시퀀스 상에서 발견된 motif의 위치 라고 보면 되겠다.
FIMO가 input sequence database상에 존재하는 single motif를 검색하는 작업을 수행하므로 특이적으로 찾고자하는 타겟 motif가 존재하지 않고, 가지고 있는 DB내 모든 motif에 대해 Motif finding을 수행하고 싶은 경우 작은 script를 생성해서 복수의 motif에 대해 결과를 생성할 수 있다.
#!/usr/bin/perl
#
#
use strict;
use warnings;
use File::Basename;
use Cwd 'abs_path';
my $motif_dir = shift;
my $f_inputfasta = shift;
my $cutoff = shift;
my $out_dir = shift;
`mkdir -p $out_dir`;
my @ar_motifs = <$motif_dir/*meme>;
foreach my $thismotif (@ar_motifs){
if ($thismotif !~ /meme$/){next;}
print $thismotif."\n";
my $prefix = basename($thismotif,".meme");
my $cmd = "fimo --qv-thresh --thresh $cutoff --oc $out_dir/$prefix $thismotif $f_inputfasta";
#print STDERR $cmd."\n";
`$cmd`;
}
my $cmd_summary = "cat $out_dir/*/*.tsv | egrep -v \"#|motif\" > $out_dir.result.txt";
`$cmd_summary`;
위 스크립트를 실행하면 가지고 있는 motif정보 전체를 sequence database내의 시퀀스 전체로부터 찾은 결과 테이블을 얻을 수 있게 된다.
References
Insights gained from a comprehensive all-against-all transcription factor binding motif benchmarking study - Genome Biology
Background Positional weight matrix (PWM) is a de facto standard model to describe transcription factor (TF) DNA binding specificities. PWMs inferred from in vivo or in vitro data are stored in many databases and used in a plethora of biological applicatio
genomebiology.biomedcentral.com
FIMO: scanning for occurrences of a given motif
FIMO: scanning for occurrences of a given motif
Abstract. Summary: A motif is a short DNA or protein sequence that contributes to the biological function of the sequence in which it resides. Over the past sev
academic.oup.com