ファイルの列13に「p」が含まれている場合は、「.tsv」ファイルから「exonic」をgrepしたいと思います。

ファイルの列13に「p」が含まれている場合は、「.tsv」ファイルから「exonic」をgrepしたいと思います。

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に変更されました。簡単に言えば、次のコマンドを使用してテスト入力ファイルを作成します。

  1. 実際のtsvテキストは行1です。
  2. 2行目は「」を「」q.に置き換えます。p.
  3. テスト入力ファイルの3行目では、intronic「」という単語を「」という単語に置き換えますexonic

上記のRakuコードは、match列 "12"のテキストを含む行を検索します(index_0は列13にあります)。 ""という単語にも1つがある場合は、その行を返します。最初の(つまり、左側の "")条件がと評価された場合(段落AND演算子)、行はすぐにスキップされます。p..words[12]matchexonic&&p.False

grep正規表現の作成に慣れている場合は、Rakuのルーチンを使用できます。

https://docs.raku.org/routine/match
https://docs.raku.org/routine/grep
https://raku.org

おすすめ記事