我希望grep exonic在我的.tsv文件中,只要这个文件的第13列包含p.。
你能帮我处理我需要的密码吗?
注:由于也有外显子变异,没有氨基酸变化,我想过滤外显子变异,其氨基酸变化提到了第13栏。
p.代表氨基酸的变化,例如CD24:uc004ftz.1:exon1:c.A130T:p.T44Sp.是所有氨基酸变异体的常见病。这就是一个例子:
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.*)。
发布于 2022-01-19 22:12:06
使用Raku (以前称为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上面是一个用Raku编码的答案,它是Perl编程语言家族的成员。Perl6项目于2000年启动,其语言名称于2019年从Perl6改为Raku。简单地说,使用以下方法创建一个测试输入文件:
q.“代替"p.”intronic“代替"exonic";上面的Raku代码搜索第12列( match位于.words[12]的第13列)中文字"p.“的行。如果单词"exonic“也有D19,则返回行。如果第一个(即左,"p.")条件计算为False,则短路和运算符(短路和运算符)立即跳过行。
注意,如果您愿意编写regexes,可以使用Raku的grep例程。
https://docs.raku.org/routine/match https://docs.raku.org/routine/grep https://raku.org
https://unix.stackexchange.com/questions/686975
复制相似问题