首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我希望grep“外显子”在我的".tsv“文件中,只要该文件的第13列包含”p“。

我希望grep“外显子”在我的".tsv“文件中,只要该文件的第13列包含”p“。
EN

Unix & Linux用户
提问于 2022-01-19 09:24:13
回答 1查看 66关注 0票数 -5

我希望grep exonic在我的.tsv文件中,只要这个文件的第13列包含p.

你能帮我处理我需要的密码吗?

注:由于也有外显子变异,没有氨基酸变化,我想过滤外显子变异,其氨基酸变化提到了第13栏。

  • p.代表氨基酸的变化,例如CD24:uc004ftz.1:exon1:c.A130T:p.T44S
  • p.是所有氨基酸变异体的常见病。

这就是一个例子:

代码语言:javascript
运行
复制
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.*)。

EN

回答 1

Unix & Linux用户

发布于 2022-01-19 22:12:06

使用Raku (以前称为Perl_6)

代码语言:javascript
运行
复制
raku -ne '.put if .words[12].match("p.") && .match("exonic") ;' 

样本输入:

代码语言:javascript
运行
复制
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

样本输出:

代码语言:javascript
运行
复制
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。简单地说,使用以下方法创建一个测试输入文件:

  1. 您的正宗tsv文本为第1行;
  2. 第2行用"q.“代替"p.
  3. 测试输入文件的第3行以"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

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/686975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档