卖萌哥
2022/10/13阅读:47主题:橙心
10x基因组数据的组装
10x genomics除了有非常出名的单细胞转录组的业务线以外还有基于10x的基因组的业务。接下来就带大家走一走10x基因组数据的组装流程。
软件下载
组装的软件叫做supernova
,可以从10x genomics的官网下载: https://support.10xgenomics.com/de-novo-assembly/software/downloads/latest
这里需要填一个表,填完之后会给一个包含token的下载地址,用wget
或者curl
就可以开始下载啦。
wget -O supernova-2.1.1.tar.gz "https://cf.10xgenomics.com/releases/assembly/supernova-2.1.1.tar.gz?这里后面有一大段很长的token"
supernova
是不需要安装的,下载好之后解压开,把所在路径加入环境变量中就可以使用了。 接下来可以运行下面的代码测试一下看看能不能正常运行:
# check the environment
supernova sitecheck > sitecheck.txt
# test the pipeline
supernova testrun --id=tiny
如果都能运行成功就可以开始处理自己的数据啦。
supernova mkfastq
组装的第一步是先运行supernova mkfastq
得到一个xxx 一个step-by-step的演示可以参考这里: https://support.10xgenomics.com/de-novo-assembly/software/pipelines/latest/using/mkfastq
# 我的命令找不到了,下面的是官网上摘录的
supernova mkfastq --id=tiny-bcl \
--run=/path/to/tiny_bcl
-csv=tiny-bcl-simple-2.1.0.csv
supernova run
由于软件的要求,必须把测序文件重命名成如下的形式
xxx_S0_L001_R1_001.fastq.gz
xxx_S0_L001_R2_001.fastq.gz
命名的规则可以参考: https://support.10xgenomics.com/de-novo-assembly/software/pipelines/latest/using/fastq-input
运行命令:
supernova run \
--id=test_10x \
--fastqs=/path/to/10x/01rawData \
--sample=test \
--maxreads=all \
--localcores=32
32个核心跑了96个小时左右跑完了主体部分,但是还没完成, 还要跑一个supernova mkoutput.
supernova mkoutput
在跑这一步的时候要确定style, 具体参考: https://support.10xgenomics.com/de-novo-assembly/software/pipelines/latest/output/generating
style分为 --style=raw|megabubbles|pseudohap|pseudohap2
四种, 我的建议是可以都测试一下, 如果需要的时间比较少的话, 四个都跑一遍取结果最优的. 另外可以优先试试megabubbles. 因为它不会像raw一样引入N, 而后两种似乎都是出haplotype的结果的.
# style 为 megabubbles
nohup supernova mkoutput \
--asmdir=/path/to/outs/assembly \
--outprefix=test_10x \
--style=megabubbles \
--nozip > mkoutput_megabubbles.log &
# style 为 raw
nohup supernova mkoutput \
--asmdir=/path/to/outs/assembly \
--outprefix=test_10x \
--style=raw \
--nozip > mkoutput_raw.log &
# style 为 pseudohap
nohup supernova mkoutput \
--asmdir=/path/to/outs/assembly \
--outprefix=test_10x \
--style=pseudohap \
--nozip > mkoutput_pseudohap.log &
# style 为 pseudohap2
nohup supernova mkoutput \
--asmdir=/path/to/outs/assembly \
--outprefix=test_10x \
--style=pseudohap2 \
--nozip > mkoutput_pseudohap2.log &
报错解决
-
我在分析的时候遇到了一个NCBI导致的bug:
当数据被传到NCBI上之后会原本的序列的ID就会被NCBI自动替换成SRR数据库的编号,但是我的这个10x的数据的ID里是包含了adapter信息的,10x的程序需要这个adapter信息来判断哪些reads被标记了相同的adapter以进行聚类分堆等后续操作的。当时的解决办法是用NCBI的data deliver的功能,把上传者上传到S3的原始数据给下载下来了。这个办法如果不在美国似乎是无法使用的。当时遇到的报错信息如下:
cannot assembly it because the adaper file missing
这个bug可能跟版本有关系。一般而言10x会给你三个文件,除了双端的reads之外,还有一个adapter的文件。但是我这个数据或许是版本比较早或许是啥版本限定的问题,只有双端reads文件,没有单独的adapter文件。
-
在跑 supernova mkoutput
的时候遇到了另一个报错:
version=1.10 style=3
Sat Feb 05 15:37:59 2022: loading assembly files
Fatal error (pid=2957755) at Sat Feb 05 15:37:59 2022:
Attempt to open ~/project/test/outs/assembly/a.base/gang/micro/final/a.sup.hbx for reading failed: No such file or directory [errno=2].
但是这个找不到的a.sup.hbx
文件是存在的, 而且大小不是0. 非常奇怪. 也搜不到对应的报错信息. 后来鼓捣了一下解决了,解决办法也比较简单, 只要用绝对路径代替~
就可以了.
私货时间
这个软件的需求会很高,所需的存储空间得有1~2Tb,对内存的需求也很高。我当时在我们组的服务器里完成不了,把数据转移到生信技能树的服务器里才完成。
作者介绍