アメリエフのブログ

バイオインフォマティクスの紹介と社員の日々
<< 維持してコピー | main | ファイルの大きさを知りたい >>
headとtail
会社(神田)の近くにおいしい鯛焼屋さんが二軒あります。
どちらも餡がたくさん詰まっていて、熱々の焼き立てをほうばると
小麦粉と重曹の香ばしい香りが鼻に抜け、たまらぬおいしさです。
会社が神田に移転して良かったと思うひとときです。

ところで、みなさん鯛焼は頭から食べる派でしょうか?
尾から食べる派でしょうか?

ということで、本日はLinuxのheadコマンドとtailコマンドの話です。

headコマンド、tailコマンドは、ファイルの先頭や末尾から
指定した行数だけ抜き出すコマンドです。

例えば、200,000,000行くらいあるBAMファイルから
先頭の100,000,000行だけ抜き出したSAMを作成するには
以下のコマンドを実行します。

$ samtools view -H A.bam > A2.sam
$ samtools view A.bam | head -n 100000000 >> A2.sam


1つめのコマンドで元のBAMのヘッダーだけを抜き出し、
2つめのコマンドでデータ行を100,000,000行抜き出して追記しています。

同様に、末尾の100,000,000行だけ抜き出したSAMを作成するには
headをtailに変えて以下のようにすればよいはずなのですが、

$ samtools view -H A.bam > A2.sam
$ samtools view A.bam | tail -n 100000000 >> A2.sam

手元のデータで試したところ、なぜか行数が多いと「強制終了」に
なることが多いようです。
同じ行数でも、headでは正常に終わるのですが。
たまたまなのか、なにか原因があるのか...。
もしどなたか理由をご存知の方がいらっしゃいましたら、
ぜひ教えてください。

ちなみに私は鯛焼は頭から行く派です。
| hat | バイオインフォマティクス | 16:54 | comments(0) | - |









   1234
567891011
12131415161718
19202122232425
262728293031 
<< March 2017 >>

このページの先頭へ