10x scaffolding系列2:ARBitR的使用

背景介绍

目前就我所知的能用于10x scaffolding的软件主要有这几个:

  1. scaff10x
  2. fragscaff
  3. tigmint+ARCS/ARKS
  4. LINKS
  5. ARBitR

scaff10x的教程昨天已经发过了,效果还可以的;

fragscaff使用的人挺多,引用也不错,但是可能跟我没啥缘分,一直没安装成功,所以没有测试过;

tigmint+ARCS/ARKS明天会介绍,今天就不多剧透了,它调用的底层其实还是LINKS;

LINKS是比较早期的用于10x genomics数据辅助组装的软件,是这个细分领域基石一般的存在。


今天要介绍的软件叫ARBitR,2021年发表在bioinformatics杂志上,是个……emmm……跟前面提到的其他软件都不太一样的软件。

不太一样在哪儿呢?

文章的标题是ARBitR: an overlap-aware genome assembly scaffolder for linked reads, 阐明了它的特点:overlap-aware

正文里也明确指出了作者认为目前的软件(嗯,说的就是tigmint+ARCS/ARKS然后调用LINKS这一套组合拳)的问题:

However, LINKS does not resolve cases where the original contigs overlap, instead it joins the contigs with a gap of size one. In genomes where repeat clusters are short, such overlaps may be quite frequent, and ignoring them leads to the risk of fragmenting genes and other features.

LINKS无法解决原始的contig之间有overlap的情况,取而代之的是直接把contigs用gap连接起来。这重overlap在重复簇较短的基因组中会很常见,直接连在一起的处理方式会有让结果碎片化的风险。

但是,很多的初步组装的软件的原理是OLC(Overlap Layout Consensus),那么在初步组装的时候如果contig之前还有overlap,那为什么组装软件没有发现,没有把这些contig连接在一起呢?

或许在作者所阐述的特定的情况下,他们的解释和担心是合理的。

反正我目前的项目是抛弃了这个软件的组装结果的,因为我们目前的项目似乎不符合作者描述的场景。我当时只想着测试尽量多的软件比较结果的好坏再来确定软件的取舍,得到结果之后回头读文章才觉得这个软件的不合理之处。

这个文章特别短,就一两页纸,感兴趣的朋友可以自己去读一下。

下面是软件的GitHub地址和文章地址:

GitHub:https://github.com/markhilt/ARBitR

文章:https://academic.oup.com/bioinformatics/article/37/15/2203/5995311

github上说这个软件是为了小于1Gb的基因组所设计的,大于这个size的基因组可能得自行考虑是否使用啦。另外,或许这个软件可以用于纯10x genomics组装的结果的进一步提升,在supernova做初步组装的基础上再次利用10x的数据做scaffold,可以说是一锅两吃了。

原文如下:

ARBitR was primarily developed for application on small genomes that have been assembled using long-read sequencing and an OLC method. Ideally, the genome size is <1Gb and the number of input contigs is <10000, though it may also be useful in other cases. E.g. it can additionally scaffold Supernova assemblies of pure 10X Chromium data.

软件安装

这个软件只要把依赖装好就可以了,本体不需要安装,用git clone到本地之后就可以直接运行

conda create -n arbitr
conda activate arbitr
conda install python=3 numpy scipy pandas Pysam Mappy multiprocessing
git clone https://github.com/markhilt/ARBitR.git

软件运行

It recomand using the longranger(https://support.10xgenomics.com/genome-exome/software/downloads/latest) or ema(https://github.com/arshajii/ema) to align the 10x data

在正式运行ARBitR之前,需要用longranger或者ema把10x 数据比对到基因组上。我这里选用longranger来做这一步。

# 从10x genomics官网下载longranger
wget -O longranger-2.2.2.tar.gz "后面还有一长串的token就隐藏掉了嗷,同学们自己去官网下一个就好啦"
# 解压开
tar -xf longranger-2.2.2.tar.gz
# 建立index
longranger-2.2.2/longranger mkref test.hic.p_ctg.fasta
# 把10x序列比对上去
longranger-2.2.2/longranger align \
--id=test \
--fastqs=/path/to/04_4ARBitR/10x_data \
--reference=/path/to/04_4ARBitR/ref/test.hic.p_ctg \
--disable-ui \
--sample=10x \
--jobmode=local \
--localcores=8 \
--localmem=80

得到结果之后运行ARBitR:

ARBitR/src/arbitr.py \
-n 16 \
-o test_10x_arbitr \
-i /path/to/04_4ARBitR/ref/test.hic.p_ctg.fasta \
/path/to/04_4ARBitR/10x/outs/possorted_bam.bam 

就可以得到结果啦。软件安装和运行都还挺轻松愉快的呢。

bug修复

我在安装后遇到了一个报错:

ImportError: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory

当时的解决办法是把当前环境里的包都升级到最新就解决了。

conda update --all

(搬运一个我之前发在简书的遇到这个问题的四种解决办法做为推送第二条供大家参考,原地址:https://www.jianshu.com/p/534e2d994e21

萌哥碎碎念

  1. 因为这个软件是overlap-aware的,因此最终组装结果的基因组大小会比输入数据小一些,因为有些被软件判断为重叠的区域被collapse了。所以如果发现结果变小了不要惊讶,正常现象哦。

推荐阅读更多精彩内容