fetch-sequences
約30000行を含む.bedファイルがあり、rsatツールのモジュール(http://rsat.ulb.ac.be/rsat/help.fetch-sequences.html#usage)。 [注:このツールは、シーケンスを検索するために毎回サーバーに接続されます。]
今、ランダムにソートされた約10000の同じベッドファイルのサブセットがあり、そのシーケンスを検索しようとしています。このfetch-sequences
モジュールを使用すると、この目標を達成するのに10時間かかります。しかし、最初に元のファイルのシーケンスを検索してこれをすばやく実行したいと思います。このローカルファイルを使用してシーケンスのサブセットを検索したいと思います。
LinuxコマンドまたはPerlを使用してこれを行う方法はありますか?ローカルにインストールされたファイルでこれを行う方法がわかりません。助けてください。
私のサンプルベッドファイルは次のとおりです。
chr10 91061477 91062132 peak4069 41 . 134.220 -1 -1
chr12 77456450 77457116 peak7216 97 . 313.820 -1 -1
chr7 150754939 150755706 peak30140 87 . 281.000 -1 -1
chr3 11643031 11643625 peak20536 135 . 435.740 -1 -1
chr19 6521662 6522869 peak14719 264 . 851.950 -1 -1
chr14 35008667 35009076 peak9034 40 . 131.480 -1 -1
chr6 88851148 88852148 peak27572 55 . 178.560 -1 -1
chr6 20212045 20212627 peak26579 44 . 144.630 -1 -1
chr2 136422022 136422722 peak17485 83 . 270.330 -1 -1
chr11 45951365 45952105 peak4995 284 . 915.840 -1 -1
chr19 50181053 50181876 peak15733 101 . 328.650 -1 -1
chr9 36140202 36140695 peak32014 42 . 137.080 -1 -1
chr4 40992483 40993431 peak23120 40 . 129.060 -1 -1
chr14 50528290 50529818 peak9133 256 . 826.310 -1 -1
chr18 57542948 57543911 peak14298 244 . 789.750 -1 -1
chr21 44528945 44529572 peak19741 45 . 148.260 -1 -1
chr6 16763102 16763743 peak26552 84 . 272.680 -1 -1
chr1 44678710 44679433 peak803 97 . 312.860 -1 -1
chr12 11323475 11324633 peak6358 123 . 396.790 -1 -1
chr9 98271450 98271859 peak32325 37 . 120.160 -1 -1
chr19 2167913 2169475 peak14575 455 . 1470.150 -1 -1
chr16 80613819 80615001 peak12054 261 . 843.100 -1 -1
chr12 118574314 118574830 peak7774 43 . 141.040 -1 -1
chr19 59083917 59085058 peak15917 129 . 418.440 -1 -1
chr2 191184311 191184984 peak17942 103 . 332.220 -1 -1
chr15 85956548 85957254 peak10816 179 . 578.110 -1 -1
chr4 84031272 84032016 peak23411 60 . 195.570 -1 -1
chr12 32012425 32013045 peak6654 45 . 148.210 -1 -1
chr6 70575973 70577060 peak27441 52 . 168.800 -1 -1
chr12 57852728 57853291 peak7023 59 . 192.900 -1 -1
chr10 120879718 120880402 peak4449 209 . 675.760 -1 -1
chr1 28833424 28834023 peak526 35 . 114.020 -1 -1
chr8 60963955 60965013 peak30803 329 . 1062.570 -1 -1
chr7 77326420 77326889 peak29382 32 . 103.320 -1 -1
chr5 133476115 133476527 peak25468 37 . 121.150 -1 -1
chr19 45909117 45910074 peak15572 69 . 222.490 -1 -1
chr5 16467271 16468036 peak24373 117 . 380.290 -1 -1
chr15 66682042 66683502 peak10489 182 . 589.480 -1 -1
chr9 35603806 35604394 peak31993 71 . 229.000 -1 -1
chr4 48249067 48249653 peak23178 50 . 162.070 -1 -1
chr3 112775853 112776466 peak21577 62 . 202.250 -1 -1
chr12 12867020 12867982 peak6428 33 . 106.930 -1 -1
chr6 35655359 35655985 peak27066 53 . 171.010 -1 -1
chr6 74171305 74172116 peak27466 161 . 521.390 -1 -1
chr11 12195905 12196539 peak4741 256 . 826.330 -1 -1
chr2 55386393 55386871 peak16583 40 . 131.810 -1 -1
chr9 37030245 37030957 peak32041 89 . 290.090 -1 -1
chr4 30431566 30431997 peak22948 66 . 214.250 -1 -1
chr10 16612633 16613149 peak3304 49 . 160.900 -1 -1
これは私が得たfastaシーケンスの例です(上記のサンプルファイルの最初の3行について)。
>hg19_chr10_91061478_91062132_+ range=chr10:91061478-91062132 5'pad=0 3'pad=0 strand=+ repeatMasking=none
AATTGTATTACAAGTCCCCAACTTAATCTTTTCGAATATGAAATAAGAGAGGGACAGTGCACAAGAGCAATGTCCCCAGACCCATCTTTAAGTGAAGCACCAGGCCGATGAAACATCCCTCTCTGCTGCCTTCTTTCTCTGATCACAACTCAGCTCCGGAGGAAAAAGAGTCCTCTAAAGTATAATAAAAAGAAAAAAAGAAAAAGAGTCCTGCCAATTTCACTTTCTAGTTTCACTTTCCCTTTTGTAACGTCAGCTGAAGGGAAACAAACAAAAAGGAACCAGAGGCCACTTGTATATATAGGTCTCTTCAGCATTTATTGGTGGCAGAAGAGGAAGATTTCTGAAGAGTGCAGCTGCCTGAACCGAGCCCTGCCGAACAGCTGAGAATTGCACTGCAACCATGAGGTAAATATTTTCCCTTCGTATTCGGTAGTGCTGTTGAGTCATCTTGTCCAATGCAAATCCTGAGAAGCTATGTTCCCAAAGAGGGCCAGCTCCATTTTAGTGTTTGTTTATAGCCTTACTATGCCTCTACCTCTGTTGGTTGTAAATCTGTCTTACCAATGGTGGTTTGTTCCCTCCTGAACAATTTTCTGCTTCACACTGGCAAGCTTCCTAAATTCATCTCCAGAACTGCACGCCTGGGGAGTTG
>hg19_chr12_77456451_77457116_+ range=chr12:77456451-77457116 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GTCTTTGTTGAAGGTACTTGATAAAAGTCATTGACCCAGAGGAAGAGAAGTAAAGCACTGACTTAGACGTTATATAAATGTATGGATGTGTATTTTTTCAAGGCTGAACCATCCAAATTGGAAAGGAAAACAAAGTTTTGCTCTAAAACTCTCAAAGCCAAAACTCTGAATATATACTTTAAGTCTGGGCATTTCCACCCTCATGACTTAGATAATTAAAAAAAAAAAAAAAAGGCCACTTTAAATAATCTTCACTTTATCTGTGGTTTCACTTTCAGTGGCCAACTGCGGTCCAAAAATATCACATGGAAAATTCCAGAAATAAACAATTCATGAGTTTTAGATTGTGTGCAGTTCTGTGTAATGAAATCTCACGTCATCCTGCTCCGTCCTGCTTCGGATGTGACTCACCCCTTTGTCCAGCGTATTTGCACGGTAGATACTACCTGCTCGAGCAGCCACTGTGTTTTCAGGCTGGCTGTCACGGTATTGCAGTGCTCATGTTCGAGTAACTCTTATTTGACTTCATAATGGCTCCAAAGCACAAGAGTAGTGATGCTGGCAATTTGGATATGCCAAAGGGAAGCCATAAAGTGCTTCTTTTAAGTGAAAAGGTGAACGTTCTTGACTTAAGGAAAGAAAATCGTACGCCAAGGTTGCTAAGAT
>hg19_chr7_150754940_150755706_+ range=chr7:150754940-150755706 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GCGGCCGCGGGGACCCCTGCGGGCCCTCGGTTTTAAGACTCTGGCCCCGGCGTTGCAGAGGAGGCGGCACCTGAGCCTCCAGCCCCGCCCCGTCTGCCCGCGCAGGGCCTTCTGGGGCTTGTAGTCCTAAAACGACTAGGTCTCCCCGCAATGCCCGAGACCGAGGACAAGAAGACTACAACCCCCAGCCGTCTGCGCTCACGCTCTCTGCAGCACTCGACTCCAGGGCTCCGTTTCTACCGCGGAGGCAAACCTTGGACTTCAAGTCCCAGGAAGCAACGCGTGTCCGTTTTCCGGGCGCCCCGCCGCGGCGCCGTGGTTCCCAGTGTGCCCCGCTGTTGTTATTCCTTTTATGTGCTCCCAGCCCTCTTGAAAAGGGCCGCTCCGGGACTACGCGTTCCAGAATGCAGCGGAAATGGGGGCGGAGCGCTCTCGGTTAGGGGTTTGGGGTTTGGCGGCCTAGATCCCGGGCACTGGCGGCCCAGCGCTGACCTGGTTGGTGGCATTGTGTTCCCAACGGCCTCTTGACGACCTCAGCACGGGTTTCCACCTCTCCCCAAGCCACCTAGTGACCCCAGAATTGACTGGGGAATGCCTGTGAGCGATGATGACCTCACAGGGAACAGCTGACCGCAGGGCTGGGAGAACAGCTGTGCCCCTTCGAGGCTGGATTTTAGTGGAGGGACACACGCCAAAGACCCCCTCTCTGCTGAGCCCCGTTTGTTGTCTCGGAGCCCACCCGACTCTAGCCGCTGAACTCTGACATG
ベストアンサー1
これにより、必要な操作が実行されます。
for i in $(awk '{print $1"_"$2+1"_"$3}' foo.bed); do grep -A 1 $i seqs.fa ; done
説明する
awk '{print $1"_"$2+1"_"$3}' foo.bed
: .bed ファイルの各行の開始座標と終了座標で染色体を印刷します。$2+1
ファイルの座標が異なるため、注意してください.bed
。たとえば、ファイルの最初の3行は次のようになります。$ awk '{print $1"_"$2+1"_"$3}' foo.bed chr10_91061478_91062132 chr12_77456451_77457116 chr7_150754940_150755706
for i in $(command); do ...; done
command
:これはasによって返された各値を保存し、$i
それを使用してアクションを実行します。grep -A 1 $i seqs.fa
:これは「もの」です。awk
コマンドの各結果を把握し、一致する行と次の行(-A 1
)を印刷します。
この操作をやり直す必要がある場合は、RSATを使用しないでください。1これを行う簡単な方法があります。代わりに、各染色体のFASTAシーケンスをダウンロードしてから、パッケージのツールを使用してくださいexonerate
(Debianを介してDebianベースのシステムにインストール可能sudo apt-get install exonerate
)。プロセス(各染色体に名前が付けられたFASTAファイルがあると仮定chrN.fa
):
awk '{print $1,$2,($3-$2)}' foo.bed | while read chr start length; do
fastasubseq /path/to/$chr.fa $start $length >> subseqs.fa
done
上記のコマンドは目的のサブ配列を抽出し(座標が常にアノードストランドに相対的であると仮定して)、数秒しかかかりません。
1 誤解しないでください。 RSATファミリーは優れたツールであり、長年にわたって一緒に作業している著者には多くの尊敬を持っていますが、この種の大規模な作業にとって必ずしも最高のツールではありません。 。