16章
FASTX grep:配列を選択するユーティリティプログラムの作成
以前同僚から、LSU(大サブユニットRNAの略)文字列に関する記述や名称を含むFASTQファイルから、その中にあるすべてのRNA配列を見つけてほしいと頼まれたことがあります。FASTQファイルに関するこの問題だけなら、grep
プログラム*1を使って、あるパターンにマッチするファイル中のすべての行を見つければ済みます。一方Pythonでコードを書けば、FASTAのような他のフォーマットを扱うだけでなく、配列長やGC含量などの他の基準に基づいたレコードを選択するように機能を拡張したプログラムを作成することができます。
*1 grepは、「global regular expression print」の略だという説もある。
この章では以下のことを学びます。
- FASTQファイルの構造について
- 大小文字を区別しない正規表現マッチはどうやって行うか
- コード中のDWIM(Do What I Mean)とDRY(Don’t Repeat Yourself)の考え方
- 論理値やビットを削減するための
and
およびor
演算子の使い方
16.1 grepを用いたファイル中の行の検索
grep
プログラムは、与えられたパターンにマッチするファイル内のすべての行を見つけることができます。FASTQファイルの1つでLSU
を検索すると、このパターンを含む2つのヘッダ行が見つかります。
$ grep LSU tests/inputs/lsu.fq@ITSLSUmock2p.ITS_M01380:138:000000000-C9GKM:1:1101:14440:2042 2:N:0@ITSLSUmock2p.ITS_M01384:138:000000000-C9GKM:1:1101:14440:2043 ...
Get Pythonではじめるバイオインフォマティクス ―可読性・拡張性・再現性のあるコードを書くために now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.