2014年5月18日日曜日

ChIPpeakAnnoのTSSデータを追加する

ChIPpeakAnnoはデフォルトでいくつかのTSSデータが入っている (R-version/library/ChIPpeakAnno/data)
今回はデフォルトにはない、酵母のTSSの情報を得るのが目的

既にbiomaRtがインストールされている前提で、R上で以下のコマンドを入力
mart1 = useMart(biomart="ensembl")
listDatasets(mart1)
とするとリストがでてくる。
13番目にscerevisiae_gene_ensemblがある。

sacCer3= useMart(biomart="ensembl", datset="scerevisiae_gene_ensembl")
TSS.scerevisiae.sacCer3 = getAnnotation(mart=sacCer3, featureType="TSS")
として、
ls()とすると
mart1
TSS.mouse.sacCer3
sacCer3
となるので
rm('mart1')
rm('sacCer3')
として、TSS.mouse.sacCer3のみの状態にしてから
save(list=ls(), file = "./TSS.scerevisiae.sacCer3.rda")
Rを終了させて、カレントディレクトリでlsするとTSS.scerevisiae.sacCer3.rdaがあるのでこれを
/PATH/TO/R-version/library/data/
以下にコピーすれば、デフォルトに入っているマウスやヒトのデータを扱うのと同じように扱えるようになる。

2014年5月16日金曜日

シーケンスデータの一括ダウンロード

論文を見るとGEOのaccsession番号が書かれているが複数のシーケンスデータが置かれている事がほとんどで、前回は一つだけをダウンロードする方法を書いた。深く解析しようと思って全てのシーケンスデータをダウンロードしたいが、一個ずつやってるとめんどくさいので。シェルスクリプトを記述する事でそれを解決する。
シーケンスデータは多くの場合連番でSRAにupされているが、SRRだとかSRXだとか色々番号があって対応関係を把握するのが先決。
例えば以下GSMの番号は連番。
一番上のリンクへ行くと
最下部にとあるのでftpへ行く(chromeで見た方がいい)
となっている。SRR824704にSRR824704.sraという目的のファイルが入っている。
同様にGMS1111729もみてみると
となっていて、SRR824727にSRR824727.sraという目的のファイルが入っている。
なので今回はSRX263794-263817とSRR824704-824727がそれぞれ対応しているという事がわかる。シーケンスデータによっては全てのデータが連番ではないこともあるので注意が必要。
シェルスクリプトの作法はよくわからないのでググるヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノ
vimを使っているので、
vim SRA_download.sh
としてファイルを作る。
シェルスクリプト作る際は思った挙動するかわからないので、echoでおもっているようなスクリプトがかかれているか確認する。
#!/bin/sh
# 全てのSRX Number
srx_list=({263794..263817})
# 全てのSRA Accussion Number
sra_list=({824704..824727})
# ダウンロードする FTP サイトの共通部分までのパス
base_url=ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/SRX%2FSRX263/
for i in {0..23}
do
        echo "wget ${base_url}/SRX${srx_list[i]}/SRR${sra_list[i]}/SRR${sra_list[i]}.sra"
        #sleep 10m
done
と記述して上書きする(esc :wq)
chmod u+x SRA_download.sh
としてから
./SRA_download.sh
とすると確認が出来るので出てきたURLからftp://以下から.sraの一つ上流までをコピーしてブラウザーで確認する。chromeでftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/SRX%2FSRX263/SRX263809/SRR824719とすれば、先ほどのリンクにたどれる。
これで一応問題ないので
#!/bin/sh
# 全てのSRX Number
srx_list=({263794..263817})
# 全てのSRA Accussion Number
sra_list=({824704..824727})
# ダウンロードする FTP サイトの共通部分までのパス
base_url=ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/SRX%2FSRX263/
for i in {0..23}
do
       wget ${base_url}/SRX${srx_list[i]}/SRR${sra_list[i]}/SRR${sra_list[i]}.sra
       sleep 10m
done
とecho" "と#を取り払って、上書きする(esc :wq)
./SRA_download.sh
でダウンロードが始まる。

説明しとくと
#!/bin/sh---シェルスクリプトのおまじない
# 全てのSRX Number
srx_list=({263794..263817})先に調べておいたSRXの番号のリスト
# 全てのSRA Accussion Number
sra_list=({824704..824727})先に調べておいたSRRの番号のリスト
# ダウンロードする FTP サイトの共通部分までのパス
base_url=ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/SRX%2FSRX263/
#全データが24個あるので24回ループさせる。(1番目は0らしい。)
for i in {0..23}
#なんかやらせる時-do
do
#URL共通部分/SRX+番号(リストのi番目)/SRA+番号(リストのi番目)/SRA+番号(リストのi番目).sraってこと
${base_url}/SRX${srx_list[i]}/SRR${sra_list[i]}/SRR${sra_list[i]}.sra
#ftpって色々制限あったりするらしいのでダウンロード終わってから10分待ってから次のダウンロード始める。
sleep 10m
#やらせるの終わったら-done
done