【发布时间】:2020-01-29 03:26:01
【问题描述】:
我正在尝试过滤 vcf 文件中的一些行,以下是行示例:
1 10505 rs548419688 A T 100 PASS AC=1;AF=0.000199681;AN=5008;NS=2504;DP=9632;EAS_AF=0;AMR_AF=0;AFR_AF=0.0008;E
UR_AF=0;SAS_AF=0;AA=.|||;VT=SNP
1 10506 rs568405545 C G 100 PASS AC=1;AF=0.000199681;AN=5008;NS=2504;DP=9676;EAS_AF=0;AMR_AF=0;AFR_AF=0.0008;E
UR_AF=0;SAS_AF=0;AA=.|||;VT=SNP
1 10511 rs534229142 G A 100 PASS AC=1;AF=0.000199681;AN=5008;NS=2504;DP=9869;EAS_AF=0;AMR_AF=0.0014;AFR_AF=0;E
UR_AF=0;SAS_AF=0;AA=.|||;VT=SNP
1 10539 rs537182016 C A 100 PASS AC=3;AF=0.000599042;AN=5008;NS=2504;DP=9203;EAS_AF=0;AMR_AF=0.0014;AFR_AF=0;E
UR_AF=0.001;SAS_AF=0.001;AA=.|||;VT=SNP
1 10542 rs572818783 C T 100 PASS AC=1;AF=0.000199681;AN=5008;NS=2504;DP=9007;EAS_AF=0.001;AMR_AF=0;AFR_AF=0;EU
R_AF=0;SAS_AF=0;AA=.|||;VT=SNP
假设我想提取 AMR_AF 大于 0.5 的行,但不知道如何使用 Awk 正则表达式来完成这项工作。试过vcftools,但没用。
【问题讨论】:
-
欢迎来到 SO,很高兴您让我们知道您尝试了一些事情,请在您的问题中添加这些努力。
-
另外请明确您要检查哪个字符串出现?由于您的问题尚不清楚。
-
vcf 标签用于日历文件格式;这肯定是别的东西吗?
-
试试
awk '{ split($0, x, /[\t;]AMR_AF=/) } x[2]>0.5' file.vcf -
在您的示例中,
AMR_AF没有大于 0.5 的行。
标签: awk bioinformatics vcf-variant-call-format