Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2833

MMDBJのサイト内検索がよく分からんかったのでシェルスクリプトで解決した

$
0
0

マイクロサテライトによるマウス系統の特定

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

まとめ

こんなの書く暇あったら普通に検索したほうが速かったかも


Viewing all articles
Browse latest Browse all 2833

Latest Images

Trending Articles