R语言XML包获得html文件中的表格小实例

2020-03-03 14:55:26 浏览数 (1)

需求

使用snpEff软件对vcf格式文件进行注释后会生成一个snpEff_summary.html;这个文件是对vcf格式文件中的内容进行的统计,结果会以表格和图片的形式在html文件里展示。我现在想把html中的数据提取出来,自己来做图。

参考文章
  • https://stackoverflow.com/questions/14517732/how-to-get-table-data-from-html-table-in-xml How to get table data from html table in xml
使用R语言的 XML包

使用到的R语言代码

代码语言:javascript复制
library(XML)
doc<-htmlParse("snpEff_summary.html")
total_table<-getNodeSet(doc,"//table")
# 以上代码是固定的写法
# 下面的代码想获得第几个表格,中括号中的数字就改成几
df3<-readHTMLTable(total_table[[3]])
df3
class(df3)
  • 结果以数据框的形式存储
以上功能使用python的BeautifulSoup模块应该也可以实现,如果有时间回头看一下自己之前写的利用python的BeautifulSoup模块抓取火箭当家球星哈登数据的那篇笔记,争取利用python的BeautifulSoup模块也来实现一下本文提到的这个需求。
另外vcftools工具只保留vcf文件中的二等位基因
代码语言:javascript复制
vcftools --vcf input.vcf --min-alleles 2 --max-alleles 2 --recode --recode-INFO-all --out output_vcf_prefix
  • vcftools的帮助文档
代码语言:javascript复制
 --min-alleles <integer>
 --max-alleles <integer>
Include only sites with a number of alleles greater than or equal to the "--min-alleles" value and less than or equal to  the  "--max-alleles" value. One of these options may be used without the other.
For example, to include only bi-allelic sites, one could use:
vcftools --vcf file1.vcf --min-alleles 2 --max-alleles 2

0 人点赞