全基因组 - 人类基因组变异分析 (PacBio) -- minimap2 + Sniffles2

一、Minimap2 使用

官方网站https://github.com/lh3/minimap2

1. 软件安装

首先从github官网上下载minimap2的二进制文件压缩包,minimap2-2.26_x64-linux.tar.bz2,然后上传到服务器上。

# minimap2,v2.26压缩包解压缩
$ tar -xjvf minimap2-2.26_x64-linux.tar.bz2

# -x 解压
# -j 有bz2属性的
# -v 显示所有过程
# -f 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

#将minimap2加入绝对路径
$ echo 'PATH=/path/to/minimap2-2.26_x64-linux:$PATH' >> ~/.bashrc && source ~/.bashrc

$ echo 'PATH=/mnt/data/home/mli/Desktop/Software/minimap2-2.26_x64-linux:$PATH' >> ~/.bashrc && source ~/.bashrc

2. 软件使用

  • 数据格式转化

公共数据只有 .bam 格式,所以要先将.bam 文件转化为.fastq文件才能输入minimap2;如果直接获得.fastq文件则可以省略此步转化。

数据格式转化所用的程序为BAM2fastx(PacBio官方工具),PacBio将一系列工具,包括对.bam文件进行索引的pbindex,都放在pbtk(pb tool kit)中,所以运行以下命令全部安装:

BAM2fastx toolshttps://github.com/PacificBiosciences/bam2fastx

# conda安装pbtk
$ conda install -c bioconda pbtk

Example Datasets
德系犹太人家系:HG002(子)、HG003(父)、HG004(母),属于个人基因组计划中的样本。

HG002_1m84011_220902_175841_s1.hifi_reads.bam
HG003m84010_220919_235306_s2.hifi_reads.bam
HG004m84010_220919_232145_s1.hifi_reads.bam

.bam文件进行索引(生成.bam.pbi文件),然后进行.bam 文件到.fastq文件的转换:

# generates out.fastq.gz
$ bam2fastq -o out in_1.bam in_2.bam in_3.xml in_4.bam

#因为运行bam2fastq 需要对bam文件先进行索引
$ pbindex m84010_220919_232145_s1.hifi_reads.bam
$ bam2fastq -o m84010_220919_232145_s1.hifi_reads m84010_220919_232145_s1.hifi_reads.bam &

$ pbindex m84010_220919_235306_s2.hifi_reads.bam &
$ bam2fastq -o m84010_220919_235306_s2.hifi_reads m84010_220919_235306_s2.hifi_reads.bam &

$ pbindex m84011_220902_175841_s1.hifi_reads.bam &
$ bam2fastq -o m84011_220902_175841_s1.hifi_reads m84011_220902_175841_s1.hifi_reads.bam &

fastq.gz 文件重新命名:

# bam2fastq程序运行完得到以下文件
$ ls
m84010_220919_232145_s1.hifi_reads.fastq.gz,m84010_220919_235306_s2.hifi_reads.fastq.gz,m84011_220902_175841_s1.hifi_reads.fastq.gz

#修改名字
mv m84010_220919_232145_s1.hifi_reads.fastq.gz HG004.fastq.gz
mv m84010_220919_235306_s2.hifi_reads.fastq.gz HG003.fastq.gz
mv m84011_220902_175841_s1.hifi_reads.fastq.gz HG002_1.fastq.gz
  • 运行minimap2
#数据是PacBio-HiFi-CCS数据
$ minimap2 -ax map-hifi ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.19 or later)

#实际运行
$ minimap2 --MD -t 12 -ax map-hifi Human_ref/GRCh38.fa HG002_1.fastq.gz | samtools view -@ 12 -bS | samtools sort -@ 12 -o HG002_1.minimap2.align.bam
#或者可以用以下命令一步完成sam到bam,排序和索引
$ minimap2 --MD -t 12 -ax map-hifi Human_ref/GRCh38.fa HG002_1.fastq.gz | samtools sort -@ 12 -o HG002_1.minimap2.align.bam --write-index -

#最终版本, samtools=1.18
$ minimap2 --MD -t 12 -ax map-hifi Human_ref/GRCh38.fa HG002_1.fastq.gz | samtools sort -@ 12 -o HG002_1.minimap2.align.bam --write-index -
$ minimap2 --MD -t 12 -ax map-hifi Human_ref/GRCh38.fa HG003.fastq.gz | samtools sort -@ 12 -o HG003.minimap2.align.bam --write-index -
$ minimap2 --MD -t 12 -ax map-hifi Human_ref/GRCh38.fa HG004.fastq.gz | samtools sort -@ 12 -o HG004.minimap2.align.bam --write-index -

#最终版本, samtools=1.9
$ minimap2 --MD -t 12 -ax map-hifi Human_ref/GRCh38.fa HG002_1.fastq.gz | samtools view -@ 12 -bS | samtools sort -@ 12 -o HG002_1.minimap2.align.bam
$ minimap2 --MD -t 12 -ax map-hifi Human_ref/GRCh38.fa HG003.fastq.gz | samtools view -@ 12 -bS | samtools sort -@ 12 -o HG003.minimap2.align.bam
$ minimap2 --MD -t 12 -ax map-hifi Human_ref/GRCh38.fa HG004.fastq.gz | samtools view -@ 12 -bS | samtools sort -@ 12 -o HG004.minimap2.align.bam
#因为samtools=1.9没有sort没有--write-index选项

对于minimap2的参数
-a Generate CIGAR and output alignments in the SAM format. Minimap2 outputs in PAF by default.
--MD Output the MD tag (see the SAM spec).(后面sniffles软件需要MD tag).
-t Number of threads CPU线程数.
-x STR preset (always applied before other options; see minimap2.1 for details) .
因为minimap2输出的是.sam文件格式,所以使用samtools.sam转换成.bam,并且使用samtools sort.bam 进行排序。下面是samtools的参数
-@ 线程数.
-b output BAM 默认下输出是 SAM 格式文件,该参数设置输出 BAM 格式.
-S input is SAM 默认下输入是 BAM 文件,若是输入是 SAM 文件,则最好加该参数,否则有时候会报错.

二、Sniffles2 使用

官方网站:https://github.com/fritzsedlazeck/Sniffles

sniffles2流程图

1. 软件安装

# pip 安装
$ pip install sniffles

# conda 安装
$ conda install sniffles=2.2

2. 软件使用

sniffles2使用分为四种场景:

1. 单样本鉴定结构变异

  • 单样本.bam文件
$ sniffles --input sorted_indexed_alignments.bam --vcf output.vcf

$ sniffles --input sorted_indexed_alignments.bam --vcf output.vcf.gz
  • 单样本.cram文件
$ sniffles --input sample.cram --vcf output.vcf.gz
  • 单样本生成单个.snf文件,后期用于多样本鉴定结构变异
$ sniffles --input sample1.bam --snf sample1.snf
  • 同时生成.vcf.snf文件,.snf后期用于多样本鉴定结构变异
$ sniffles --input sample1.bam --vcf sample1.vcf.gz --snf sample1.snf
  • 指定串联重复区域以及参考基因组序列。指定串联重复区域能提高这一区域的检测性能。
$ sniffles --input sample1.bam --vcf sample1.vcf.gz --tandem-repeats tandem_repeats.bed --reference genome.fa --mosaic

2. Mosaic SV Calling (Non-germline or somatic SVs) 马赛克模式结构变异检测,适用于非胚系或者体细胞结构变异

#只需加入--mosaic
$ sniffles --input mapped_input.bam --vcf output.vcf --mosaic

3. 多样本联合变异

#Step 1. Create .snf for each sample: 
$ sniffles --input sample1.bam --snf sample1.snf

#Step 2. Combined calling:
$ sniffles --input sample1.snf sample2.snf ... sampleN.snf --vcf multisample.vcf

4. 对指定变异进行检测

$ sniffles --input sample.bam --genotype-vcf input_known_svs.vcf --vcf output_genotypes.vcf

实际运行

#单样本分别检测变异
$ sniffles -t 12 --input HG002_1.minimap2.align.bam --vcf HG002_1.vcf.gz --snf HG002_1.snf --tandem-repeats Human_ref/human_GRCh38_no_alt_analysis_set.trf.bed
$ sniffles -t 12 --input HG003.minimap2.align.bam --vcf HG003.vcf.gz --snf HG003.snf --tandem-repeats Human_ref/human_GRCh38_no_alt_analysis_set.trf.bed
$ sniffles -t 12 --input HG004.minimap2.align.bam --vcf HG004.vcf.gz --snf HG004.snf --tandem-repeats Human_ref/human_GRCh38_no_alt_analysis_set.trf.bed

#joint calling
$ sniffles --input HG002_1.snf  HG003.snf HG004.snf --vcf multisample.vcf.gz

整个joint calling的时间很短,不到20秒。


Joint calling整个运行过程

3. 最终结果

最后得到整合的vcf文件 multisample.vcf.gz

整合vcf部分结果

参考文献:

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

推荐阅读更多精彩内容