SnpHub搭建(二) | 数据预处理与样本描述文件准备

SnpHub提供了一个自动化的数据预处理脚本,在填写了配置文件后运行脚本即可(细节在这里https://esctrionsit.github.io/snphub_tutorial/content/Setup/quick_deploy.html)。

但是,对于某些情况,手动预处理数据仍有优势。因此,本文将介绍SnpHub所需数据的手动预处理步骤。同时,还将介绍SnpHub所需的样本描述文件的格式。

本文采用的数据集搭建的SnpHub实例可点击此处查看

1. 数据准备

[1] Pont, C., Leroy, T., Seidel, M. et al. Tracing the ancestry of modern bread wheats. Nat Genet 51, 905–911 (2019). https://doi.org/10.1038/s41588-019-0393-z
[2] Appels R, Eversole K, Stein N, et al. Shifting the limits in wheat research and breeding using a fully annotated reference genome[J]. Science, 2018, 361(6403). https://doi.org/10.1126/science.aar7191

数据采用了Pont等于2019年发表的Tracing the ancestry of modern bread wheats中的数据 1。根据文章内容,vcf数据本身可在https://urgi.versailles.inra.fr/download/iwgsc/IWGSC_RefSeq_Annotations/v1.0/iwgsc_refseqv1.0_Whealbi_GWAS.zip下载到。

同时,参照基因组数据采用了IWGSC RefSeq v1.0 2,该数据可于https://urgi.versailles.inra.fr/download/iwgsc/IWGSC_RefSeq_Assemblies/v1.0/iwgsc_refseqv1.0_all_chromosomes.zip下载。

本例中,注释信息采用了IWGSC RefSeq v1.1 annotation,下载链接为https://urgi.versailles.inra.fr/download/iwgsc/IWGSC_RefSeq_Annotations/v1.1/iwgsc_refseqv1.1_genes_2017July06.zip。IWGSC RefSeq v1.1 annotation是同样针对IWGSC RefSeq v1.0参照基因组的更新版本的注释数据。

数据下载完成后,解压缩。

对于Pont等的数据,采用whealbi.unimputed_filtered.vcf.tar.gz文件解压缩后的whealbi.unimputed_filtered.vcf进行下一步。同时,进入下一步的还有包含样本信息的Whealbi_Wheat_final_garden_141013.xlsx文件。

对于IWGSC RefSeq v1.0,采用161010_Chinese_Spring_v1.0_pseudomolecules.fasta文件进行下一步

对于IWGSC RefSeq v1.1 annotation,采用iwgsc_refseqv1.1_genes_2017July06/IWGSC_v1.1_HC_20170706.gff3文件进行下一步。

上述文件均移到同一文件夹中备用。

2. 索引FASTA与GFF3

首先使用SAMtools进行FASTA文件的索引完成后,得到同名的fai文件161010_Chinese_Spring_v1.0_pseudomolecules.fasta.fai

samtools faidx 161010_Chinese_Spring_v1.0_pseudomolecules.fasta

对于GFF3文件,可先进行排序,然后采用bgzip进行压缩。压缩后,使用tabix进行索引。索引后可得到索引文件IWGSC_v1.1_HC_20170706.gff3.gz.csi

sort -k1,1 -k4,4n IWGSC_v1.1_HC_20170706.gff3 > IWGSC_v1.1_HC_20170706.gff3.sorted

mv IWGSC_v1.1_HC_20170706.gff3 IWGSC_v1.1_HC_20170706.gff3.backup

mv IWGSC_v1.1_HC_20170706.gff3.sorted IWGSC_v1.1_HC_20170706.gff3

bgzip < IWGSC_v1.1_HC_20170706.gff3 > IWGSC_v1.1_HC_20170706.gff3.gz

tabix -C -p gff IWGSC_v1.1_HC_20170706.gff3.gz

3. 构建snpEff数据库

通过构建snpEff数据库,即可使用snpEff对vcf/bcf文件进行注释。如果之前没有构建对应snpEff数据库,需要先行构建。

首先下载并解压snpEff。

mkdir Downloads && cd Downloads

# 下载SnpEff
wget http://sourceforge.net/projects/snpeff/files/snpEff_latest_core.zip

unzip snpEff_latest_core.zip

cd snpEff

完成后,编辑snpEff的配置文件

vi snpEff.config

找到配置文件中Third party databases部分,添加如下内容。其中,开头带有#的是注释信息,第二行的SnphubBuilding.genome : Snphub是数据库信息,数据库名要与接下来的文件夹名相对应。

# Database for this Snphub instance
SnphubBuilding.genome : Snphub
向snpEff添加新数据库信息

接着在snpEff文件夹中,创建文件夹data并进入,然后创建文件夹SnphubBuildinggenomes。将之前准备的gff3文件复制入SnphubBuilding文件夹,并重命名为gene.gff(此处的gff3文件时压缩前的文件)。fasta文件复制入genomes,并重命名为<数据库名>.fa,在此处就是SnphubBuilding.fa

mkdir data && cd data

mkdir SnphubBuilding

mkdir genomes

cp ../../../IWGSC_v1.1_HC_20170706.gff3 SnphubBuilding/

mv SnphubBuilding/IWGSC_v1.1_HC_20170706.gff3 SnphubBuilding/genes.gff

cp ../../../161010_Chinese_Spring_v1.0_pseudomolecules.fasta genomes/

mv genomes/161010_Chinese_Spring_v1.0_pseudomolecules.fasta genomes/SnphubBuilding.fa

返回上级目录,即可使用snpEff开始构建数据库SnphubBuilding了。

cd ../

java -jar snpEff.jar build -gff3 -v SnphubBuilding

构建完成,返回最初目录。

cd ../../

4. VCF文件的处理

首先使用bgzip对VCF文件进行压缩,然后利用bcftools进行索引。

bgzip < whealbi.unimputed_filtered.vcf > whealbi.unimputed_filtered.vcf.gz

bcftools index whealbi.unimputed_filtered.vcf.gz

随后,将vcf文件转化为bcf格式并索引。bcf格式是一种二进制格式,相较于vcf体积更小。

# bcftools concat可以合并多个vcf文件,要求多个文件间样本一致且相同顺序。可用于合并分染色体的VCF或分snp和indel的VCF等场景
# bcftools merge用来合并多个样本不重叠的VCF文件
# bcftools concat file-1.vcf.gz file-2.vcf.gz -Ob -o unannotated.bcf.gz
bcftools concat whealbi.unimputed_filtered.vcf.gz -Ob -o unannotated.bcf.gz
bcftools index unannotated.bcf.gz

对bcf文件进行注释。参数中的SnphubBuilding就是上一节中构建的数据库。

bcftools view unannotated.bcf.gz --threads 3 \
    | java -jar Downloads/snpEff/snpEff.jar -t SnphubBuilding - \
    | bcftools view --threads 3 -o output.ann.bcf.gz -Ob

bcftools index output.ann.bcf.gz

注释完成后,如果不再需要snpEff数据库,可直接将文件夹Downloads删掉。

得到的output.ann.bcf.gz就是注释后的bcf文件。备用。

5. 生成基因索引

基因索引是一个包含了四列的文本文件,用于将基因名作为输入时,SnpHub将其转换为区间。

本文件是一个不含header的文件,第一列为染色体名,第二、三列分别为起止位置,第四列为基因名。列与列之间由\t(tab)分隔。

基因索引文件

本文件可由多种方法生成,此处介绍从gff3文件生成的方法:

gawk -F"[\t=;]" -vOFS="\t" '$3=="gene"{print $1,$4,$5,$10}'  IWGSC_v1.1_HC_20170706.gff3 > geneinfo.txt

采用此命令生成基因索引时,请检查输出的基因索引是否正确

6. 准备分组文件

分组文件是SnpHub用于读取预分组信息以供用户使用的文件。

本文件是一个不含header的文件,共含2列。第一列为分组名称。第二列为分组所含样本(Accession name),样本间以英文逗号分隔。列与列之间由\t(tab)分隔。

分组文件示例
分组文件每列描述

7. 准备样本名对照表

SnpHub在样本名称上采取了“三样本名策略”,即将VCFID(vcf文件中记录的样本名)、Accession name(用户查询时输入的样本名)和Display name(输出的图中的样本名)分开,从而让用户减少输入量的同时,在图上显示更为详细的内容。

本文件是一个含有header的文件,包含至少三列。前三列的列名分别为vcfIDAccessionNameDisplayName,分别是样本在vcf中记录的名字、用户使用SnpHub查询时输入的名字和在输出的图中显示的名字。每列中的名字都不能重复。

在此三列内容之后,用户可自行定义其他列来描述样本信息,以供用户使用SnpHub时翻阅。

列与列之间由\t(tab)分隔。

共有9列的样本名对照表示例
样本名对照表前三列描述

8. 准备样本地理信息表

SnpHub提供了一种比较不同地区变异发生比例的功能,因而需要各样本的地理信息。对于没有地理信息的样本,可直接不写入本文件。如 不需要本功能,只需要创建一个空文件并将路径写入SnpHub配置文件即可。

本文件是一个不含header的文件,包含四列信息。第一列为样本名(Accession name),第二列为地区描述,第三列为经度,第四列为纬度。

地理信息表示例
地理信息表列描述

9. 准备系统信息文件

SnpHub提供给系统管理员一种方式可以简单介绍某个特定的实例。本文件是可选项,如不需要,只需在配置文件中填写NA

如有信息,建议表中只含一列。

系统信息文件示例
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342