マイクロサテライトによるマウス系統の特定
MMDBJから手がかりとなるマイクロサテライトを検索します。未知系統のマイクロサテライトの塩基対数(以下、bp)と、データベースに登録されたマイクロサテライトのbpと一致する系統を調べるという寸法です。ただ、ぼくの検索が悪いのか知りたいマイクロサテライトがドンピシャでヒットしないので、シェルスクリプトで強引にスマートに解決することにしました。
とりあえずD2Mit30について調べます。幸い、各マイクロサテライトのbpと系統の比較についてのテキストファイルがあったのでダウンロードしませう。
とりあえずD2Mit30のみが欲しい
安直にgrep
した結果。
$ grep "D2Mit30" mmdbj.txt
D2Mit301 2 50.29999923706055 52.2400016784668 2 100136842 100136968 127 Yoshiaki KIKKAWA
D2Mit300 2 50.29999923706055 52.2400016784668 2 100978982 100979087 106 CAST>NC>SK/Cam>NJL>SWN=BLG2>129=B6>PGN2=SWR=SM=MSM=JF1=A/J>CBA=DBA Yoshiaki KIKKAWA 110 104 110 112 125 102 102 104 104 119 114 104 115 104 112 104
D2Mit302 2 50.29999923706055 52.2400016784668 2 92231974 92232128 155 Yoshiaki KIKKAWA
D2Mit303 2 50.29999923706055 52.2400016784668 2 93855204 93855299 96 Yoshiaki KIKKAWA
D2Mit30 2 69.0 58.91999816894531 B6=JF1>MSM>SM=A/J>SWR>129>PGN2Yoshiaki KIKKAWA
D2Mit305 2 60.099998474121094 62.25 2 128400462 128400571 110 Yoshiaki KIKKAWA
D2Mit307 2 74.9000015258789 63.369998931884766 2 131163194 131163342 149 Yoshiaki KIKKAWA
D2Mit306 2 61.20000076293945 63.369998931884766 2 135282065 135282171 107 Yoshiaki KIKKAWA
D2Mit308 2 65.5999984741211 67.81999969482422 2 141711069 141711195 127 MSM>PGN2=129=SWR=SM=B6=A/J>JF1 Yoshiaki KIKKAWA 129 129 129 125 138 129 129 129
D2Mit309 2 71.0 73.37999725341797 2 152127632 152127750 119 Yoshiaki KIKKAWA
D2Mit304 2 73.0 61.13999938964844 2 128023225 128023342 118 SM>PGN2=129=SWR=B6=A/J Yoshiaki KIKKAWA 423 423 423 423 425 423
D2Mit30 2 69.0 69.0 JF1=B6>MSM>BLG2=SWN>NJL>STF>SPRET=HMI/Ms>SEG>DBA=CBA=BALB/c=A/J=SK/Cam=SM>SWR>NC/Nga=NC/jic>129>PGN2 Hiromichi YONEKAWA 120 132 377 132 294 0 132 132 180 377 363 121 121 278 114 174 132 132 180 183 294 123
D2Mit300 2 50.29999923706055 50.29999923706055 2 100978982 100979087 106 STF>SPRET>HMI/Ms>SEG>CAST>NC/Nga=NC/jic>SK/Cam=NJL>BLG2=SWN>129=B6>JF1=MSM=A/J=SWR=PGN2=SM>DBA=CBA=BALB/c Hiromichi YONEKAWA 110 104 110 102 112 125 102 102 166 104 104 119 119 115 104 155 115 104
おやおやおやおや(白目)
D2Mit301とかはお呼びではないので正規表現で除外します。
$ grep -G "D2Mit30[^0-9]" mmdbj.txt
D2Mit30 2 69.0 58.91999816894531 B6=JF1>MSM>SM=A/J>SWR>129>PGN2Yoshiaki KIKKAWA
D2Mit30 2 69.0 69.0 JF1=B6>MSM>BLG2=SWN>NJL>STF>SPRET=HMI/Ms>SEG>DBA=CBA=BALB/c=A/J=SK/Cam=SM>SWR>NC/Nga=NC/jic>129>PGN2 Hiromichi YONEKAWA 120 132 377 132 294 0 132 132 180 377 363 121 121 278 114 174 132 132 180 183 294 123
このテキストファイル、タブ文字で区切られているようなのですがその数がぐっちゃぐちゃで腹立ちます。
シェルスクリプトにする
今回欲しいのはマウスの系統とbpなので、いろいろ試してこうなりました。深夜テンションで書いたので抽象度に欠ける内容になってます。許してください。
search.sh
#!/bin/bash lineage=$(grep-E"D2Mit30[^0-9]" mmdbj.txt | cut-f 9 | tail-n +2)# 系統間bpサイズの大小を代入 echo"$lineage"grep-E"D2Mit30[^0-9]" mmdbj.txt | cut-f 9,11- | tail-n +2 | sed-E's/\t+/\n/g'\
| tail-n +2 | sort-rn
結果
多分うまくいってます。(また後日確認してみます。。。)
$ ./search.sh
JF1=B6>MSM>BLG2=SWN>NJL>STF>SPRET=HMI/Ms>SEG>DBA=CBA=BALB/c=A/J=SK/Cam=SM>SWR>NC/Nga=NC/jic>129>PGN2n
377
377
363
294
294
278
183
180
180
174
132
132
132
132
132
132
123
121
121
120
114
0
まとめ
こんなの書く暇あったら普通に検索したほうが速かったかも