让bam满足velocyto的特别要求

RNA velocity基于细胞中spliced和unspliced的mRNA比例,来计算基因表达变化的速率,以此来预测细胞的发育轨迹。由于基于mRNA的剪切信息,所以分析前的第一步是统计基因的spliced和unspliced情况。为此,velocyto已经给市面上应用较广的几种单细胞测序方法,如10X、SmartSeq2、DropSeq和InDrops,准备好了流程,直接使用即可。对于其他的方法,可以用更通用的流程来解决。

但是,需要注意的是所有的方法都要求bam满足以下几个条件:

通常单细胞分析流程比对生成的bam已经满足上述的条件,但总有一些特殊情况,比如这里分析的单细胞bam文件就不满足后面两个条件,这个时候就得动动手添加这些信息让bam满足条件了。

samtools view sample_SortedByCoordinate.bam | cut -f1-5 | head -n
GCCAGTGGCTGCTCTCT_GGGTCCGATGTG_M_E250067759L1C038R00103391476   16      chr1    11525   3
TCTACATATGGCTCTCA_AGAAATGCGTCT_M_E250067759L1C010R00804308263   16      chr1    11541   255
TGATCAGATGGGCTGTG_TAGCGGGGTAGA_M_E250067759L1C040R03405004208   16      chr1    11576   255

这个流程生成的bam将CB、UB信息添加到read name里面,如上面所示,以下划线为分割,前两个分别是CB、UB。那么,只需将这两个信息作为TAG添加到bam里面即可。搞清楚了需求和数据来源,接下来就是行动的问题了。这个小需求,但凡会使用awk命令,再结合samtools就可以解决。

但是,为了方便以后复用,这里写了一个python脚本来做这个事情:

python addtag2bam.py --help
usage: python addtag2bam.py -i input [options]

This script is used to add CB and UB tag for bam accordding to read header.

optional arguments:
  -h, --help            show this help message and exit
  -i INPUT [INPUT ...], --input INPUT [INPUT ...]
                        bam file multiple separated by space.
  -b BC_PATTERN, --bc-pattern BC_PATTERN
                        barcode pattern, C: cell barcode, X: other, U: umi, [default: "CCCCCCCCCCCCCCCCCXUUUUUUUUUUUU"].
  -p [OUTPUT [OUTPUT ...]], --output [OUTPUT [OUTPUT ...]]
                        the output name, [default: None].
  -t THREAD, --thread THREAD
                        thread number, [default: "sample number"].
  -o OUTDIR, --outdir OUTDIR
                        the output directory, [default: "input directory"].

写成这样的脚本,只要是CB、UB信息包含在read name里面的情况,都可以轻松搞定,因为这里提取TAG信息时用了位置匹配。

python addtag2bam.py -i sample1_SortedByCoordinate.bam sample2_SortedByCoordinate.bam 

如果CB、UB模式跟这里不同,只需根据自己的实际情况修改--bc-pattern参数即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容