方法一:ALLHiC软件;方法二:3D-DNA软件
ALLHiC包括6大模块:prune、partition、rescue、optimize、build和plot
准备工作:对HIC数据进行预处理,拿到结果比对文件clean.bam。(可以使用Hicup软件进行预处理)(也可以选择使用ALLHiC的命令进行)
①prune模块:去除等位基因之间的联系,同源染色体更易于单独分离。结果文件pruned.clean.bam。(可选择步骤)。命令ALLHiC_prune
②partition模块:将clean.bam或者pruned.clean.bam文件作为输入(取决于是否运行①prune模块),并根据Hi-C建议的链接对链接的contigs进行聚类,大概是沿着相同同源染色体在预设数量的分区中进行。命令ALLHiC_partition。
③rescue模块:从clean.bam文件中搜索分区步骤中不涉及的contigs,并根据Hi-C信号密度将它们分配给特定的群集。命令ALLHiC_rescue。(取决于是否运行①prune模块,若①运行,则③运行;若①不运行,则③不运行)
④optimize模块:采用每个分区,并优化所有contigs的顺序和方向。命令allhic optimize
⑤build模块:通过连接contigs来重建每个染色体。命令ALLHiC_build
⑥plot模块:对组装的染色体进行绘图。命令ALLHiC_plot
docker run -it -d -v /home/zhaohuiyao/Genome_hic:/home/zhaohuiyao/Genome_hic --name allhic001 wangnan9394/allhic /bin/bash
docker exec -it allhic001 /bin/bash(进入容器,使用exit退出,使用docker kill allhic001 干掉容器)
export PATH=/home/ALLHiC-master/scripts/:/home/ALLHiC-master/bin/:$PATH
如果运行①prune模块,则需要依次运行①prune模块——②partition模块——③rescue模块——④optimize模块——⑤build模块——⑥plot模块
cd /home/zhaohuiyao/Genome_hic/baimaike/03hicup/00ALLHiC/
#准备好两个文件
#HIC预处理后的比对文件Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.bam 和contig基因组序列文件genome.fa
#明确酶切信息,使用DpnII(GATC)
#准备一个染色体级别的近缘物种的CDS序列文件和GFF3文件(最最基本的需要,prune模块的方法二:基于GMAP)
#选择准备自己物种的CDS序列文件和GFF3文件(prune模块的方法一:基于Blast)
#注:近缘物种的CDS序列文件和GFF3文件可以下载获得;自己物种的CDS序列文件和GFF3文件可以通过转录组测序分析获得。
#注:需要保证CDS序列中的编号和GFF文件的基因编号一致。并且编号在GFF文件中的格式为NAME=xxx。
#①prune模块运行(方法二:基于GMAP)
#准备这个模块最重要的一个文件Allelic.ctg.table(方法二:基于GMAP)
#这个方法简单一点。准备近缘物种的CDS序列文件Gbi_maker.proteins.fa和GFF3文件Gbi_Genes.gff
#运行GMAP获取GFF3文件(需要自行安装,后面提供了)
cd /home/zhaohuiyao/Genome_hic/baimaike/03hicup/00ALLHiC/
ln -s …/genome.fa genome.fa
ln -s …/Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.bam
/home/zhaohuiyao/Biosoft/general/gmap-2023-07-20/bin/gmap_build -D . -d DB genome.fa
#-D:当前目录
#-d:数据库名称
#genome.fa:自己的contig基因组序列文件
/home/zhaohuiyao/Biosoft/general/gmap-2023-07-20/bin/gmap -D . -d DB -t 12 -f 2 -n 2 Gbi_maker.proteins.fa > gmap.gff3
#-t:线程数
#-f:输出格式
#-n:自己的基因组倍性
#reference.cds.fasta:近缘物种的CDS序列文件
#获取allelic.ctg.table文件
perl my.pl Gbi_Genes.gff #这个my.pl是依据gmap2AlleleTable.pl,进行些许修改。
#拿到结果文件Allelic.ctg.table
ALLHiC_prune -i Allele.ctg.table -b Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.bam -r genome.fa
#①prune模块运行完成
#②partition模块运行
cd /home/zhaohuiyao/Genome_hic/baimaike/03hicup/00ALLHiC/
/home/ALLHiC-master/bin/ALLHiC_partition -b prunning.bam -r genome.fa -e GATC -k 10
#-b:HIC比对文件
#-r:contig基因组序列文件
#-k: 聚类组数,组装物种的染色体数目
#-e: 酶切类型,DpnII: GATC
#-m: 每个contig最少的酶切位点, 默认25
#本来应该拿到.counts_GATC.10g1.txt~.counts_GATC.10g10.txt的10个文件的,但是没有,说明HIC数据不好。
#注DpnI, DpnII, MboI, Sau3AI 都识别GATC序列,HindIII识别AAGCTT
#②partition模块运行完成
#③rescue模块运行
cd /home/zhaohuiyao/Genome_hic/baimaike/03hicup/00ALLHiC/
ALLHiC_rescue -b Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.bam -r genome.fa -c prunning.clusters.txt -i prunning.counts_GATC.txt
#本来应该拿到group1.txt~group10.txt的10个文件的,但是没有,说明HIC数据不好。
#③rescue模块运行完成
#④optimize模块运行
cd /home/zhaohuiyao/Genome_hic/baimaike/03hicup/00ALLHiC/
#对每个组的contig位置和方向进行优化
allhic optimize group1.txt prunning.clm
……
allhic optimize group10.txt prunning.clm
#本来应该拿到group1.txt~group10.txt的10个文件的,但是没有,说明HIC数据不好。
#④optimize模块运行完成
#⑤build模块运行
cd /home/zhaohuiyao/Genome_hic/baimaike/03hicup/00ALLHiC/
#最终获取染色体级别的组装
ALLHiC_build genome.fa
#拿到2个结果文件groups.agp和groups.asm.fasta
#⑤build模块运行完成
#⑥plot模块运行
cd /home/zhaohuiyao/Genome_hic/baimaike/03hicup/00ALLHiC/
#获取染色体长度
/home/zhaohuiyao/Biosoft/general/seqkit fx2tab -n -l groups.asm.fasta > len.txt
#构建chrn.list
grep ‘group’ len.txt > chrn.list
#绘图, 500k表示分辨率
ALLHiC_plot prunning.bam groups.agp chrn.list 500k pdf
#结果文件500K_all_chrs.pdf、500K_Whole_genome.pdf和500K_prunning.counts_GATC.10g1.pdf
#⑥plot模块运行完成
如果不运行①prune模块,则不需要运行③rescue模块,那么只需要依次运行②partition模块——④optimize模块——⑤build模块——⑥plot模块。
cd /home/zhaohuiyao/Genome_hic/baimaike/03hicup/01ALLHiC/
#准备好两个文件
#HIC预处理后的比对文件Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.bam 和contig基因组序列文件genome.fa
#明确酶切信息,使用DpnII(GATC)
#②partition模块运行
cd /home/zhaohuiyao/Genome_hic/baimaike/03hicup/01ALLHiC/
ln -s …/genome.fa genome.fa
ln -s …/Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.bam
/home/ALLHiC-master/bin/ALLHiC_partition -b Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.bam -r genome.fa -e GATC -k 10
#本来应该拿到.counts_GATC.10g1.txt~.counts_GATC.10g10.txt的10个文件的,但是没有,说明HIC数据不好。
#②partition模块运行完成
#④optimize模块运行
#对每个组的contig位置和方向进行优化
allhic optimize Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.counts_GATC.10g1.txt Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.clm
……
allhic optimize Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.counts_GATC.10g10.txt Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.clm
#本来应该拿到.counts_GATC.10g1.txt~.counts_GATC.10g10.txt的10个文件的,但是没有,说明HIC数据不好。
#④optimize模块运行完成
#⑤build模块运行
#最终获取染色体级别的组装
ALLHiC_build genome.fa
#拿到2个结果文件groups.agp和groups.asm.fasta
#⑤build模块运行完成
#⑥plot模块运行
#获取染色体长度
/home/zhaohuiyao/Biosoft/general/seqkit fx2tab -n -l groups.asm.fasta > len.txt
#构建chrn.list
grep ‘counts_GATC’ len.txt > chrn.list
#绘图, 500k表示分辨率
ALLHiC_plot Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.bam groups.agp chrn.list 500k pdf
#结果文件500K_all_chrs.pdf、500K_Whole_genome.pdf和500K_prunning.counts_GATC.10g1.pdf
#⑥plot模块运行完成
对于ALLHiC预处理后的结果文件hic_clean.bam,运行ALLHiC,也有两种情况。运行目录:/home/zhaohuiyao/Genome_hic/baimaike/04ALLHiC/00ALLHiC/和/home/zhaohuiyao/Genome_hic/baimaike/04ALLHiC/01ALLHiC/
cd /home/zhaohuiyao/Biosoft
git clone https://github.com/theaidenlab/3d-dna.git
cd 3d-dna/
/bin/bash ./run-asm-pipeline.sh -h
#安装成功
cd /home/zhaohuiyao/Genome_hic/baimaike/05juicer/3DDNA/
/bin/bash /home/zhaohuiyao/Biosoft/3d-dna/run-asm-pipeline.sh -r 2 …/Genome/genome.fa …/aligned/merged_nodups.txt
#运行完成
#结果文件.hic和.assembly是可以手动修改的,使用juicebox软件。手动修改后,再使用3D-DNA软件进行最终基因组序列的获得。