ラベル Motif Discovery の投稿を表示しています。 すべての投稿を表示
ラベル Motif Discovery の投稿を表示しています。 すべての投稿を表示

2013年4月20日土曜日

Motif Discovery(Weeder2weblogo)

Weederの「OUTPUTファイル」から、weblogoの「INPUTファイル」であるfastaファイルを生成するスクリプトを書いてみました。

Weederで予測されたモチーフ配列を視覚化するために、予測されたモチーフ配列に対してそれぞれのweblogo用のfastaファイルが生成させるスクリプトです。

このスクリプトに通した後、生成されたfastaファイルを一つ一つweblogoで視覚化。
#!/usr/local/bin/perl
####################################
#Weeder2weblogo#####################
#var1.0_Perl
#update: 2012.4.8
####################################

use strict;
use warnings;

my $file = $ARGV[0];
my $number = $ARGV[1];

#main####################################################
open (IN,"<./$file\.wee") || die;

my $flg_gene=0;
my $flg=0;
my $filehandle = 1;
my $count = 1;
my %gene_ID;

while(my $line = <IN>){
 #Gene_ID
 if($line =~ /^Your sequences/){
  $flg_gene = 1;
  next;
 }elsif($flg_gene == 1){
  $flg_gene = 2;
  next;
 }elsif($flg_gene == 2 && $line eq "\n"){
  $flg_gene = 0;
  next;
 }elsif($flg_gene == 2){
  my @data = split(/\s+/,$line);
  $gene_ID{$data[1]}=$data[3];
  next;
 }

 #Sequence_data
 if($line =~ /^Best occurrences/){
  if($filehandle == 0){
   close(OUT);
   $count++;
  }else{
   $filehandle = 0;
  }
  open (OUT,">./$file\#$count\.fasta") || die;
  $flg = 1;
  next;
 }elsif($flg == 1){
  $flg = 2;
  next;
 }elsif($line eq "\n" && $flg == 2){
  $flg = 0;
  next;
 }elsif($flg == 2){
  if($line =~ /^\s+/){
   $line =~ s/^\s+//;
  }
  my @data = split(/\s+/,$line);
  if($data[2] =~ /^\[/){
   $data[2] =~ s/\[//;
   $data[2] =~ s/\]//;
  }
  print OUT "$gene_ID{$data[0]}\n";
  print OUT "$data[2]\n";
  next;
 }
}
close(IN);
close(OUT);
print "...process successfully completed\n";
〈使用方法〉
$ perl Weeder2weblogo INPUT_file
⇒INPUT_fileの拡張子は「.wee」にしておくこと。
(Weederからの出力ファイル「.wee」を利用しているので、拡張子を変更しないように。)
〈ダウンロード先〉
・github -non-bioinformatician_NGS_analysis
https://github.com/Naoto-Imamachi/non-bioinformatician_NGS_analysis

2013年4月6日土曜日

Motif Discovery(BioProspector2weblogo)

BioProspectorの「OUTPUTファイル」から、weblogoの「INPUTファイル」であるfastaファイルを生成するスクリプトを書いてみました。

BioProspectorでは、複数のモチーフ配列が予想されます。このスクリプトに通すことで予測されたモチーフ配列に対してそれぞれのweblogo用のfastaファイルが生成されるようになっています。(5つのモチーフ配列が予想されていれば、このスクリプトで5つのfastaファイルが生成されます。)

あとは、生成されたfastaファイルを一つ一つweblogoで視覚化するだけ。(あと、一連のステップもバッチ処理で一気に生成出来ればよいのですが…。)

#!/usr/local/bin/perl
####################################
#BioProspector2weblogo##############
#var1.0_Perl
#update: 2012.4.5
####################################

use strict;
use warnings;

my $file = $ARGV[0];
my $number = $ARGV[1];

#main####################################################
open (IN,"<./$file\.result") || die;

my $flg=0;
my $filehandle = 1;
my $count = 1;

while(my $line = <in>){
 if($line eq "\n"){
  next;
 }
 chomp $line;
 if($line =~ /^Try/
 || $line =~ /^The highest/
 || $line =~ /^Width/
 || $line =~ /^Blk1/
 || $line =~ /^[1-6]/){
  next;
 }
 if($line =~ /^Motif/){
  if($filehandle == 0){
   close(OUT);
   $count++;
  }else{
   $filehandle = 0;
  }
  open (OUT,">./$file\#$count\.fasta") || die;
 }else{
  if($line =~ /^>/){
   print OUT "$line\n";
   $flg=1;
  }elsif($flg == 1){
   print OUT "$line\n";
   $flg=0;
  }
 }
}
close(IN);
close(OUT);
print "...process successfully completed\n";
〈使用方法〉
$ perl Bioprospector2weblogo INPUT_file
⇒INPUT_fileの拡張子は「.result」にしておくこと。(もしくはスクリプトを適宜書き換え。)

〈ダウンロード先〉
github -non-bioinformatician_NGS_analysis
https://github.com/Naoto-Imamachi/non-bioinformatician_NGS_analysis

2013年3月29日金曜日

Motif Discovery (Weederを使ってみた)

前回に引き続き、コンセンサス配列(モチーフ配列)の検索ツールについての説明です。

今回は、「Weeder」と呼ばれるソフトを使ってみたいと思います。このソフトもよく利用されていると思います。

〈インストール方法〉
(1)下記のサイトからWeederをダウンロードする。
http://159.149.160.51/modtools/
⇒左側の「Downloads」から「Weeder1.4.2」をクリックする。ダウンロードのページに移動するので、Unix/Linux/Cygwin Source Code (NEW: version 1.4.2)をクリックし、ファイルをダウンロードする。

(2)ファイルを解凍する。
$ tar zxvf weeder1.4.2.tar.gz

(3)Weederのディレクトリに移動する。
$ cd Weeder1.4.2/

(4)コンパイルを実行。
$ ./compileall
gcc src/weederTFBS.c -o weederTFBS.out -O2 -lm
src/weederTFBS.c: 関数 ‘main’ 内:
src/weederTFBS.c:1050:5: 警告: 書式 ‘%d’ は引数の型が ‘int’ であると予期されますが、第 3 引数の型は ‘long int’ です [-Wformat]
src/weederTFBS.c:1050:5: 警告: 書式 ‘%d’ は引数の型が ‘int’ であると予期されますが、第 4 引数の型は ‘long int’ です [-Wformat]
src/weederTFBS.c:1052:5: 警告: 書式 ‘%d’ は引数の型が ‘int’ であると予期されますが、第 3 引数の型は ‘long int’ です [-Wformat]
src/weederTFBS.c:1052:5: 警告: 書式 ‘%d’ は引数の型が ‘int’ であると予期されますが、第 4 引数の型は ‘long int’ です [-Wformat]
src/weederTFBS.c:1054:5: 警告: 書式 ‘%d’ は引数の型が ‘int’ であると予期されますが、第 3 引数の型は ‘long int’ です [-Wformat]
src/weederTFBS.c:1054:5: 警告: 書式 ‘%d’ は引数の型が ‘int’ であると予期されますが、第 4 引数の型は ‘long int’ です [-Wformat]
src/weederTFBS.c:458:10: 警告: warn_unused_result 属性付きで宣言されている ‘fscanf’ の戻り値を無視しています [-Wunused-result]
gcc src/weederlauncher.c -o weederlauncher.out -lm
gcc src/adviser.c -o adviser.out -O2 -lm
src/adviser.c: 関数 ‘main’ 内:
src/adviser.c:289:10: 警告: warn_unused_result 属性付きで宣言されている ‘fscanf’ の戻り値を無視しています [-Wunused-result]
gcc src/locator.c -o locator.out -O2 -lm
src/locator.c: 関数 ‘main’ 内:
src/locator.c:329:10: 警告: warn_unused_result 属性付きで宣言されている ‘fscanf’ の戻り値を無視しています [-Wunused-result]
⇒よくわからない警告文が出ていましたが、インストールはうまくいったようです。

〈Frequency fileの作成〉
Weederの場合、バックグラウンドとなるデータをあらかじめ作っておく必要があります。(転写因子の結合サイトを探す場合は、すでに用意されているファイルを使えばよいみたいです。)

(1)下記のサイトへもう一度行き、左側の「Additional tools」のFrequency maker (for adding new species to Weeder)をクリック。
http://159.149.160.51/modtools/

(2)「How to build a new frequency file for Weeder」というページに移動するので、上から2つ目の「Download this program (works under UNIX/LINUX/MacOSX/Cygwin)」を右クリック、リンク先のファイルを保存してください。(名前は「wfrequency_maker.cpp」のままでダウンロードする。

(3)ファイルをダウンロードしたディレクトリに移動し、コンパイルを実行。
$ g++ wfrequency_maker.cpp -o wfrequency_maker

(4)バックグラウンドとして使用する配列のFASTAファイルのパス、およびバックグラウンドデータを呼び出す際に用いる任意の2文字を入力して、Frequency fileを作成する。
$ ./wfrequency_maker ./任意のパス/INPUT_file.fasta XX(任意の2文字)

Reading sequences file (avoiding duplicates)... done - Read sequence(s): 9360 Good Sequences: 9325 Duplicated sequence(s): 34
Building 6mers list... done
Finding exact occurrences... done
Counting 6mers occurrences...4096/4096 done
Writing freq file: UP.6.freq done

Building 8mers list... done
Finding exact occurrences... done
Counting 8mers occurrences...65527/65527 done
Writing freq file: UP.8.freq done

XX.6.freq
XX.8.freq

⇒上記の2種類のファイルができるので、これらのファイルをWeeder1.4.2ディレクトリ中の「FreqFiles」へ移動させる。

〈モチーフ検索〉
$ ./weederlauncher.out ./任意のパス/INPUT_file.fasta XX(バックグラウンドデータ) analysis_mode
⇒上記はあくまでコマンドの入力例になります。詳しくは、「weedermanual.pdf」を呼んでみてください。

・パラメータ
analysis_modeはいくつか用意されています。
small: 6mer、8merのモチーフを検索する
median: 6mer、8mer、10merのモチーフを検索する
large: 6mer、8mer、10mer、12merのモチーフを検索する
などなど。

・オプションパラメータ
M: モチーフ配列が同一の配列に対して「2回以上」出現するモチーフ配列を検索する。
T[1-n]: モチーフ検索の回数を指定する。(1-n回: default 10)
などなど。

〈参考文献〉
Weeder Web: discovery of transcription factor binding sites in a set of sequences from co-regulated genes
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC441603/

Motif Discovery (BioProspectorを使ってみた)

ChIP-seqやCLIP-seqを行うことにより、転写因子が結合する領域や、RNA結合タンパク質が結合する領域を絞り込むことができます。

さらに、それらの結合領域の配列データから、転写因子やRNA結合タンパク質が結合するであろうコンセンサス配列(モチーフ配列)を調べるというのが一般的な解析の流れだと思います。

ChIP-seqやCLIP-seq用に開発された解析ツールも存在しますが、今回は古典的なモチーフ検索を行うツールによるコンセンサス配列(モチーフ配列)の予測を行なってみたいと思います。

これらのモチーフ検索ソフトを利用することによって、ChIP-seqやCLIP-seqの解析のみならず、3'UTRやintron中などにひそむコンセンサス配列(モチーフ配列)を予測することができます。(予測精度は定かではありませんが…。)

〈インストール方法〉
(1)BioProspector 2004 releaseをダウンロードする。

(2)ダウンロードしてきたファイルを解凍する。
$ unzip Bioprospector.zip

(3)Bioprospectorのディレクトリに移動する。
$ cd Bioprospector

(4)LinuxをOSとして使用している場合は、「BioProspector.linux」のファイル名を「BioProspector」に変更する。
$ mv BioProspector.linux BioProspector

(5)パーミッションの変更。
$ chmod 555 BioProspector

〈モチーフ検索〉
$ ./BioProspector -i INPUT_file.fasta -b Background_file.fasta -W motif_width -n number_of_times_trying_to_find_motif -d 1 -o Result_file.txt
⇒上記はあくまでコマンドの入力例になります。詳しくは、「BioProspector.README」を呼んでみてください。

・オプションパラメータ
-W [4-50]: モチーフ配列の長さを決める。(4-50mer: Default 10mer)
-o Result_file.txt: 結果の出力先を指定。
-b Background_file.fasta: バックグラウンドの配列データ(ゲノム配列、解析対象となる全遺伝子の配列データ(Promoter領域、Intron、3'UTR)など。)
-n [1-200]: モチーフ検索を行う回数。(1-200回: Default 40)
-r [1-n]: スコアの高いモチーフ配列を出力する数(1以上: Default 5)
-d 1: 投げた配列のAntisense鎖は解析に使用しない。(Default 0: 使用する)
などなど。

あとは試行錯誤で、自分の解析目的に応じてパラメータをいじくる。

〈参考文献〉
BioProspector: discovering conserved DNA motifs in upstream regulatory regions of co-expressed genes