• 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体积更小。
    
    ```sh
    # bcftools concat可以合并多个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的文件,第一列为染色体名,第二、三列分别为起止位置,第四列为基因名。列与列之间由 (tab)分隔。

    基因索引文件

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

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

    6. 准备分组文件

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

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

    分组文件示例

    分组文件每列描述

    7. 准备样本名对照表

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

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

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

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

    共有9列的样本名对照表示例

    样本名对照表前三列描述

    8. 准备样本地理信息表

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

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

    地理信息表示例

    地理信息表列描述

    9. 准备系统信息文件

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

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

    系统信息文件示例

  • 相关阅读:
    Struts2SpringHibernate整合示例,一个HelloWorld版的在线书店(项目源码+详尽注释+单元测试)
    Java实现蓝桥杯勇者斗恶龙
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 224 基本计算器
    Java实现 LeetCode 224 基本计算器
  • 原文地址:https://www.cnblogs.com/esctrionsit/p/13415007.html
Copyright © 2020-2023  润新知