阅读带有以“##”开头的注释行的表格

Posted

技术标签:

【中文标题】阅读带有以“##”开头的注释行的表格【英文标题】:Read table with comment lines starting with "##" 【发布时间】:2017-07-11 05:55:20 【问题描述】:

我正在努力使用 R 以变体调用格式 (VCF) 阅读我的表格。 每个文件都有一些以## 开头的注释行,然后是以# 开头的标题。

## contig=<ID=OTU1431,length=253>
## contig=<ID=OTU915,length=253>
#CHROM  POS ID  REF ALT QUAL    FILTER  INFO    FORMAT  /home/sega/data/bwa/reads/0015.2142.fastq.q10sorted.bam
Eubacterium_ruminantium_AB008552    56  .   C   T   228 .   DP=212;AD=0,212;VDB=0;SGB=-0.693147;MQ0F=0;AC=2;AN=2;DP4=0,0,0,212;MQ=59    GT:PL   1/1:255,255,0

如何在不丢失标题的情况下阅读此类表格? 将read.table()comment.char = "##" 一起使用会返回错误:"invalid 'comment.char' argument"

【问题讨论】:

【参考方案1】:

如果您想阅读 VCF,您也可以尝试使用 Bioconductor 中 VariantAnnotation 中的 readVcf。 https://bioconductor.org/packages/release/bioc/html/VariantAnnotation.html

否则,我可以强烈推荐 data.table 包中的 fread 函数。 它允许您使用skip 参数来允许它在找到子字符串时开始导入。

例如

fread("test.vcf", skip = "CHROM")

应该可以。

【讨论】:

fread 函数和 skip 参数真的很有帮助。谢谢。

以上是关于阅读带有以“##”开头的注释行的表格的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的带有 ^ 的 Emacs 正则表达式不能匹配行的开头?

java学习prat2转义字符注释与路径

fread - 跳过以特定字符开头的行 - “#”

《Vim实用技巧》阅读笔记 --- 移动及跳转

CSV阅读器(Python)中的“行包含NULL字节”

Go-注释