染色体挂载

基于已有参考基因组

如果有已发表的染色体水平的参考基因组,且参考基因组组装质量尚可,也没有大的结构变异,则可以通过共线性进行挂载,比如泛基因组。项目地址:https://github.com/malonge/RagTag。RaGOO已不再更新,直接使用RagTag
# 安装 conda create -n ragtag -c conda-forge -c bioconda ragtag conda activate ragtag # 运行 ragtag.py \ scaffold \ -t 16 \ -o ragtag_output \ -u \ # 未挂载序列加标记 --aligner nucmer \ # 比对软件 ref.fasta draft.fasta
输出结果:
  1. ragtag.scaffold.agp # 序列连接关系文件
  2. ragtag.scaffold.asm.paf
  3. ragtag.scaffold.asm.paf.log
  4. ragtag.scaffold.confidence.txt
  5. ragtag.scaffold.err
  6. ragtag.scaffold.fasta # 结果文件
  7. ragtag.scaffold.stats

基于HIC

一般测基因组大小的100X

ALLHIC

对于组装指标一般,序列条数较多的情况,推荐使用 ALLHiC 进行 Hi-C 数据染色体挂载。可以指定染色体条数。可用于多倍体物种的挂载,需要提供近缘物种的参考基因组。项目地址:https://github.com/tangerzhang/ALLHiC
# 安装 git clone https://github.com/tangerzhang/ALLHiC cd ALLHiC chmod +x bin/* chmod +x scripts/* export PATH=/your/path/to/ALLHiC/scripts/:/your/path/to/ALLHiC/bin/:$PATH
可以基于 hic 数据的比对情况对基因组中可能存在的组装错误进行打断, 但该操作会降低序列连续性。该步骤可选,一般先直接挂载,然后手动调整即可。如果发现问题太多,则打断后重新挂载。
ref=../data/genome.fa R1=../data/HiC_R1.fastq.gz R2=../data/HiC_R2.fastq.gz threads=10 # index reference genome ln -s ${ref} ./seq.fasta bwa index seq.fasta samtools faidx seq.fasta # mapping bwa mem -SP5M -t $threads seq.fasta $R1 $R2 \ | samtools view -hF 256 - \ | samtools sort -@ $threads -o sorted.bam -T tmp.ali samtools index sorted.bam # correct contig ALLHiC_corrector \ -m sorted.bam \ -r seq.fasta \ -o corrected.fasta \ -t $threads
挂载染色体
ref=../data/genome.fa R1=../data/HiC_R1.fastq.gz R2=../data/HiC_R2.fastq.gz threads=10 group_count=5 enzyme=GATC # HindIII: AAGCTT; MboI: GATC # index reference genome ln -s ${ref} ./seq.HiCcorrected.fasta bwa index seq.HiCcorrected.fasta samtools faidx seq.HiCcorrected.fasta bwa mem -SP5M -t $threads seq.HiCcorrected.fasta $R1 $R2 \ | samtools view -hF 256 - \ | samtools sort -@ $threads -o sample.bwa_mem.bam -T tmp.ali # filter bam samtools view -bq 40 sample.bwa_mem.bam | \ samtools view -bt seq.HiCcorrected.fasta.fai > sample.unique.bam PreprocessSAMs.pl sample.unique.bam seq.HiCcorrected.fasta $enzyme # partition ALLHiC_partition \ -r seq.HiCcorrected.fasta \ -e $enzyme \ -k $group_count \ -b sample.unique.REduced.paired_only.bam # optimize rm cmd.list for((K=1;K<=$group_count;K++));do echo "allhic optimize \ sample.unique.REduced.paired_only.counts_${enzyme}.${group_\ count}g${K}.txt \ sample.unique.REduced.paired_only.clm" >> cmd.list;done ParaFly -c cmd.list -CPU $threads # build ALLHiC_build seq.HiCcorrected.fasta # plot samtools faidx groups.asm.fasta cut -f1,2 groups.asm.fasta.fai|grep sample > chrn.list ALLHiC_plot sample.bwa_mem.bam groups.agp chrn.list 50k pdf
自动挂载的染色体可能出现染色体划分不正确的情况,可以生成 juicer- box 格式文件,使用 juicerbox 进行手动纠错。
# 基于read name 排序bam samtools sort -n -@ 12 -o aligned.sort_name.bam sample.bwa_mem.bam # 生成juicer软件的merged_nodups.txt文件 matlock bam2 juicer aligned.sort_name.bam merged_nodups.txt # agp 格式转3d-dna的assembly 格式 agp2assembly.py groups.agp groups.assembly # 生成juicebox的二进制hic文件 bash 3d-dna/visualize/run-assembly-visualizer.sh \ -q 1 -p true groups.assembly merged_nodups.txt

3D-DNA

运行 juicer

网址:https://github.com/aidenlab/juicer/
# 手动安装 git clone https://github.com/theaidenlab/juicer.git # <myJuicerDir> 为想要运行juicer的目录 cp juicer/CPU <myJuicerDir>/scripts cd scripts/common wget https://github.com/aidenlab/Juicebox/releases/download/\ v2.20.00/juicer_tools.2.20.00.jar ln -s juicer_tools.2.20.00.jar juicer_tools.jar
使用 juicer 生成 3d-dna 输入文件
ref=../../data/genome.fa R1=../../data/HiC_R1.fastq.gz R2=../../data/HiC_R2.fastq.gz enzyme=MboI # or HindIII # 准备基因组相关文件 # 包括bwa index及染色体长度文件 ln -s $ref genome.fa singularity exec ../../../container/Assembly202306.sif bwa \ index genome.fa singularity exec ../../../container/Assembly202306.sif seqkit fx2tab \ -l -n -i genome.fa > chr.size # 准备酶切位点文件 generate_site_positions.py $enzyme genome genome.fa # 准备juicer script目录 cp -r /opt/juicer/CPU/ ./scripts # 准备测序数据,不要修改R*.fastq.gz后缀 mkdir fastq ln -s PATH/HiC_R1.fastq.gz fastq/HiC_R1.fastq.gz ln -s PATH/HiC_R2.fastq.gz fastq/HiC_R2.fastq.gz # 运行juicer bash \ ./scripts/juicer.sh \ -y genome_${enzyme}.txt \ # 酶切位点文件 -z genome.fa \ # 基因组文件 -s $enzyme \ # 酶 -p chr.size \ # 染色体长度文件 -D ./ \ # scripts 和 fastq文件所在目录 -t 20 \ --assembly # 生成3d-dna输入文件

运行3d-dna

网址:https://github.com/aidenlab/3d-dna
conda install -c conda-forge -c bioconda 3d-dna
运行
3d-dna/run-asm-pipeline.sh \ -r 1 \ # 纠错次数,0表示不纠错,默认为2 genome.fa juicer/aligned/merged_nodups.txt
结果文件:
  1. genome.FINAL.fasta :3d-dna 的挂载结果文件
  2. genome.final.assembly :用于 juicebox 输入的 assembly 文件
  3. genome.final.hic :用于 juicebox 输入的 hic 文件
如果组装结果连续性较好,只有几十条序列,可以不运行 3d-dna, 仅生成 juice-box 输入, 后续全部手动调图。
# 生成assembly文件 awk -f 3d-dna/utils/generate-assembly-file-from-fasta.awk \ genome.fa > original.assembly # 生成hic bash 3d-dna/visualize/run-assembly-visualizer.sh \ original.assembly juicer/aligned/merged_nodups.txt

juicerbox

标准化一般选择“Balanced”。需要掌握的操作:
  1. 位置调整:Shift+点击选中某区块,然后将鼠标箭头放在需要重新放置的2个区域的十字附近,变为指向焦点处的箭头
  2. 旋转:鼠标箭头放在该区域的右上角,箭头变为圆圈
  3. 打断:鼠标箭头放在想要打断的对角线位置,箭头变为剪刀
  4. 合并:鼠标箭头放在需要合并的2个区域的十字附近,箭头变为一个直角
手动调整后,使用下面程序生成最终的 fasta 文件和 hic 文件
run-asm-pipeline-post-review.sh \ -q 1 -p true --build-gapped-map --sort-output \ -r review.assembly genome.fa merged_nodups.txt
2023-11-02
0