我想在“.tsv”文件中 grep “exonic”,前提是该文件的第 13 列包含“p”。

我想在“.tsv”文件中 grep “exonic”,前提是该文件的第 13 列包含“p”。

我想exonic在我的.tsv文件中 grep ,前提是该文件的第 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 代码搜索第 12 列中包含match文字“ ”的行(index_0 位于第 13 列)。如果单词“ ”也有一个,则返回该行。如果第一个(即左边的“ ”)条件计算结果为 ,(短路 AND 运算符)会立即跳过该行。p..words[12]matchexonic&&p.False

grep请注意,如果您习惯编写正则表达式,则可以使用 Raku 的例程。

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

相关内容