exonic
ファイル.tsv
の列13にp.
。
必要なコードをお手伝いできますか?
注:アミノ酸変化のないエクソン修飾もあるので、13列に言及されたアミノ酸変化のあるエクソン修飾をフィルタリングしたいと思います。
p.
アミノ酸の変化を示します。例は次のとおりです。CD24:uc004ftz.1:exon1:c.A130T:p.T44S
p.
これはアミノ酸変化があるすべての変異体に共通して現れます。
例は次のとおりです。
hrY 21154569 21154569 A G PASS hom exonic CD24 . synonymous SNV CD24:NM_001291737:exon1:c.T27C:p.L9L,CD24:NM_001359084:exon1:c.T27C:p.L9L,CD24:NM_013230:exon1:c.T27C:p.L9L,CD24:NM_001291738:exon2:c.T27C:p.L9L
新しくコメントされた.tsv
ファイルには、さまざまな列の各バリアントに対して3つの異なる定義があります。たとえば、亜種は、エクソン、UTR、およびイントロン(使用されているさまざまなデータベースに基づいています)として同時に定義できます。
一部のエクソン変異体にはアミノ酸変化がないので、実際のエクソン変異体をフィルタリングしたいと思います(p.*
)。
答え1
使用幸せ(以前のPerl_6)
raku -ne '.put if .words[12].match("p.") && .match("exonic") ;'
入力例:
hrY 21154569 21154569 A G PASS hom exonic CD24 . synonymous SNV CD24:NM_001291737:exon1:c.T27C:p.L9L,CD24:NM_001359084:exon1:c.T27C:p.L9L,CD24:NM_013230:exon1:c.T27C:p.L9L,CD24:NM_001291738:exon2:c.T27C:p.L9L
hrY 21154569 21154569 A G PASS hom exonic CD24 . synonymous SNV CD24:NM_001291737:exon1:c.T27C:q.L9L,CD24:NM_001359084:exon1:c.T27C:q.L9L,CD24:NM_013230:exon1:c.T27C:q.L9L,CD24:NM_001291738:exon2:c.T27C:q.L9L
hrY 21154569 21154569 A G PASS hom intronic CD24 . synonymous SNV CD24:NM_001291737:exon1:c.T27C:p.L9L,CD24:NM_001359084:exon1:c.T27C:p.L9L,CD24:NM_013230:exon1:c.T27C:p.L9L,CD24:NM_001291738:exon2:c.T27C:p.L9L
出力例:
hrY 21154569 21154569 A G PASS hom exonic CD24 . synonymous SNV CD24:NM_001291737:exon1:c.T27C:p.L9L,CD24:NM_001359084:exon1:c.T27C:p.L9L,CD24:NM_013230:exon1:c.T27C:p.L9L,CD24:NM_001291738:exon2:c.T27C:p.L9L
上記は答えのエンコーディングです。幸せ、Perl プログラミング言語ファミリーのメンバーです。 Perl6プロジェクトは2000年に始まり、2019年に言語名がPerl6からRakuに変更されました。簡単に言えば、次のコマンドを使用してテスト入力ファイルを作成します。
- 実際のtsvテキストは行1です。
- 2行目は「」を「」
q.
に置き換えます。p.
- テスト入力ファイルの3行目では、
intronic
「」という単語を「」という単語に置き換えますexonic
。
上記のRakuコードは、match
列 "12"のテキストを含む行を検索します(index_0は列13にあります)。 ""という単語にも1つがある場合は、その行を返します。最初の(つまり、左側の "")条件がと評価された場合(段落AND演算子)、行はすぐにスキップされます。p.
.words[12]
match
exonic
&&
p.
False
grep
正規表現の作成に慣れている場合は、Rakuのルーチンを使用できます。
https://docs.raku.org/routine/match
https://docs.raku.org/routine/grep
https://raku.org