【发布时间】:2018-06-28 13:51:15
【问题描述】:
我在处理 12 Gb 文件时遇到了问题。我是 linux 的新手。我希望这里有人可以帮助我,任何建议表示赞赏。
我有一个名为 phase_3.vcf 的文件,如下所示:
##INFO=<ID=EAS_AF,Number=A,Type=Float,Description="Allele frequency in the EAS populations">
##INFO=<ID=EUR_AF,Number=A,Type=Float,Description="Allele frequency in the EUR populations">
##INFO=<ID=AFR_AF,Number=A,Type=Float,Description="Allele frequency in the AFR populations">
##INFO=<ID=AMR_AF,Number=A,Type=Float,Description="Allele frequency in the AMR populations">
##INFO=<ID=SAS_AF,Number=A,Type=Float,Description="Allele frequency in the SAS populations">
#CHROM POS ID REF ALT QUAL FILTER INFO
1 10177 rs367896724 A AC . . dbSNP_150;E_Freq;E_1000G;EAS_AF=0.3363;SAS_AF=0.4949;AFR_AF=0.4909
1 10235 rs540431307 T TA . . dbSNP_150;E_Freq;E_1000G;EAS_AF=0.0000;AMR_AF=0.0014;
1 10352 rs555500075 T TA . . dbSNP_150;EAS_AF=0.4306;EUR_AF=0.4264;SAS_AF=0.4192;
1 10505 rs548419688 A T . . TSA=SNV;E_Freq;EAS_AF=0.0000;AMR_AF=0.0000;AFR_AF=0.0008
1 10506 rs568405545 C G . . dbSNP_150;TSA=SNV;MA=G;MAF=0.000199681;EAS_AF=0.0000;
我想保留前 5 列和字符串“EAS_AF=”以及后面的数字。
为简单起见,名为 result.txt 的结果的预期形式应如下所示:
#CHROM POS ID REF ALT INFO
1 10177 rs367896724 A AC EAS_AF=0.3363
1 10235 rs540431307 T TA EAS_AF=0.0000
1 10352 rs555500075 T TA EAS_AF=0.4306
1 10505 rs548419688 A T EAS_AF=0.0000
1 10511 rs534229142 G A EAS_AF=0.0000
1 10539 rs537182016 C A EAS_AF=0.0000
【问题讨论】:
-
你试过什么?似乎 Pandas 是一个不错的起点:pandas.pydata.org
-
@dashiell 代码我试过:'awk'/EAS_AF/ {print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5}' 1000GENOMES-phase_3 .vcf' 但我不知道如何提取字符串 "EAS_AF="
标签: python linux pattern-matching bioinformatics vcf-variant-call-format