When doing large studies involving multiple GEM wells, run cellranger count on FASTQ data from each of the GEM wells individually, and then pool the results using cellranger aggr.当你的实验涉及到多个GEM well的时候,要分别独立的把你的fastq文件运行cellranger count,之后使用cellranger aggr进行合并。

在之前的文章里,我使用的练习数据(cellranger使用的初步探索(1)),该文献的作者在介绍数据处理的时候也是说明了把每一个fastq文件分别运行cellranger count,再进行整合。

那么问题就来了,什么是GEM wells?

这个问题在我之前的一篇笔记里有涉及过(10×单细胞测序分析练习(一)),这里再加强一下记忆(记性不好),并且要进行进一步深入的理解,图片来源于陈巍学基因视频(【陈巍学基因】视频56:10X genomics分析单细胞表达):

这就是10x Genomics芯片,每一个芯片可以测8个样品。每一列就是一个样品。编号为1的,也就是sample well是放样品的;编号为2的一行,是放预制微珠的;编号为3的一行是放油的。最上面的一排孔是在制作好乳浊液之后,回收乳浊液的。

那么上面这个芯片的Gel Beads的孔里放的凝胶微珠是什么结构呢:

每一个凝胶微珠上,都连有一段特定的DNA序列。每一个微珠对应一个barcode,这也就是为什么barcode是细胞的“身份证”了。

从左到右通过这个装置,你的细胞样品就被包裹成小油滴(实际上是油包水)

上面说的GEM well,就是芯片上的一个单独的区室,也就是一个油滴。也就是说,一个GEM well就是一个library。也就是说,每个油滴里=一个细胞+一个凝胶微珠(带有barcode和UMI)。说的在明白一点,只要你的实验是多个样品的时候,你就需要cellranger aggr这一步。

(一)cellranger aggr的输入文件

cellranger aggr的输入文件来自于上一步cellranger count的输出文件(特别是molecule_info.h5),并且产生一个单独的feature-barcode矩阵。当结合多个GEM wells时,每一个通道的barcode序列会被加在barcode上的GEM well suffix区分开来。

每一个GEM well是在物理上的空间划分,而barcode是不一样的(排列组合有好几百万种),在混合成油包水液滴的过程也就是从barcode库里随机抽取。为了避免这个随机抽取过程中两个GEM well抽到相同的barcode,10x Genomics将barcode整合了一个“标记”,这样有了barcode和这个ID,在feature-barcode矩阵里就可以很容易的区分这些Reads到底来源于哪个GEM了。比如说: AGACCATTGAGACTTA-1 and AGACCATTGAGACTTA-2是来自两个不同GEM well室的两个不同的barcode(即使barcode的序列一样也可以区分来源)。这个数字就可以告诉我们barcode序列的来源,也就是被加在barcode序列上的GEM well suffix。这个会在之后cellranger aggr整合后的csv文件里体现出来。

这一步值得注意的参数是 “normalize”,默认值为mapped,计算方式是对每一个要合并的样品取得「每个细胞平均mapped到多少Transcriptome」,再以最小值当做基准,依比例重新计算每个合并样品的 UMI count。若下游分析会进行其他标准化处理,可以在这一步设置为none。另外,cellranger aggr 也提供了一个batch correction 功能,但是这里官方有特別说明,此功能主要是针对「样本所采用的不同试剂版本」做校正,其他的,例如重复试验的校正是不适用的。(参考文章:單細胞定序分析介紹 (一): Cell Ranger)

(二)创建cellranger aggr所需csv文件

在运行cellranger aggr这一步之前,需要手动自己构建一个表(csv格式的),这里面包含:

(1)library_id: 文库的ID,这个ID是用来区分不同的GEM well的。

(2)molecule_h5: 你在之前cellranger count那一步的输出文件里,有一个文件是molecule_info.h5。这里要你把这个文件的路径列出来。

构建后的表应该长这样,比如我只想合并两个Tumor样品:

在你的命令行里打开这个csv文件,应该是这样的格式:

#应该是以逗号区分开的

$ cat Tumor_libraries.csv

library_id,molecule_h5

Tumor937,/gpfs/home/practice/Tumor937/molecule_info.h5

Tumor938,/gpfs/home/practice/Tumor938/molecule_info.h5

(三)运行cellranger aggr

cellranger aggr有几个参数:

代码:

$ cellranger aggr --id=Tumor \

--csv=Tumor_libraries.csv \

--normalize=mapped

在运行时,会弹出很多东西,最后如果看到以下内容,就说明运行成功了:

Outputs:

- Aggregation metrics summary HTML: /gpfs/home/practice/Tumor/outs/web_summary.html

- Aggregation metrics summary JSON: /gpfs/home/practice/Tumor/outs/summary.json

- Secondary analysis output CSV: /gpfs/home/practice/Tumor/outs/analysis

- Filtered gene-barcode matrices HDF5: /gpfs/home/practice/Tumor/outs/filtered_gene_bc_matrices_h5.h5

- Filtered gene-barcode matrices MEX: /gpfs/home/practice/Tumor/outs/filtered_gene_bc_matrices_mex

- Filtered molecule-level info: /gpfs/home/practice/Tumor/outs/filtered_molecules.h5

- Unfiltered gene-barcode matrices HDF5: /gpfs/home/practice/Tumor/outs/raw_gene_bc_matrices_h5.h5

- Unfiltered gene-barcode matrices MEX: /gpfs/home/practice/Tumor/outs/raw_gene_bc_matrices_mex

- Unfiltered molecule-level info: /gpfs/home/practice/Tumor/outs/raw_molecules.h5

- Barcodes of cell-containing partitions: /gpfs/home/practice/Tumor/outs/cell_barcodes.csv

- Copy of the input aggregation CSV: /gpfs/home/practice/Tumor/outs/aggregation_csv.csv

- Loupe Cell Browser file: /gpfs/home/practice/Tumor/outs/cloupe.cloupe

Waiting 6 seconds for UI to do final refresh.

Pipestance completed successfully!

Saving pipestance info to Tumor/Tumor.mri.tgz

使用服务器200G内存,运行时间1小时左右。

下面可以看看输出文件有哪些:

$ ll

total 4500

-rw------- 1 fy04 fy04 140 Aug 9 00:58 _cmdline

-rw------- 1 fy04 fy04 22343 Aug 9 00:58 _filelist

-rw------- 1 fy04 fy04 267284 Aug 9 00:58 _finalstate

-rw------- 1 fy04 fy04 339 Aug 8 23:49 _invocation

-rw------- 1 fy04 fy04 5 Aug 8 23:49 _jobmode

-rw------- 1 fy04 fy04 30158 Aug 9 00:58 _log

-rw------- 1 fy04 fy04 25900 Aug 8 23:49 _mrosource

drwx------ 5 fy04 fy04 8192 Aug 9 00:58 outs #重点关注文件夹

-rw------- 1 fy04 fy04 141455 Aug 9 00:58 _perf

drwx------ 6 fy04 fy04 8192 Aug 9 00:57 SC_RNA_AGGREGATOR_CS

-rw------- 1 fy04 fy04 12148 Aug 9 00:58 _sitecheck

-rw------- 1 fy04 fy04 2 Aug 8 23:49 _tags

-rw------- 1 fy04 fy04 51 Aug 9 00:58 _timestamp

-rw------- 1 fy04 fy04 3697193 Aug 9 00:58 Tumor.mri.tgz

-rw------- 1 fy04 fy04 36 Aug 8 23:49 _uuid

-rw------- 1 fy04 fy04 21606 Aug 9 00:58 _vdrkill

-rw------- 1 fy04 fy04 61 Aug 8 23:49 _versions

生成的文件和之前cellranger count差不多,重要的文件也都在outs文件夹里:

到此我们就拿到了下游分析所需的基因表达矩阵(在filtered_gene_bc_matrices

_mex文件夹里)。之后就可以用R进行分析了。

aggr代码 cellranger_cellranger使用的初步探索(3)cellranger aggr相关推荐

  1. python socket发送数组_利用pyprocessing初步探索数组排序算法可视化

    [经过两次更新,功能基本完成]最终效果请直接下拉到最后一个视频观看 背景说明 这篇文章旨在初步探索利用pyprocessing的强大的可视化功能,以及pyprocessing和Ipython之间的本地 ...

  2. Alibaba Druid 源码阅读(二) 数据库连接池实现初步探索

    Alibaba Druid 源码阅读(二) 数据库连接池实现初步探索 简介 在上篇文章中,了解了连接池的应用场景和本地运行了示例,本篇文章中,我们尝试来探索下Alibaba Druid数据库连接池的整 ...

  3. Redis主从复制架构初步探索 http://www.sxt.cn/info-1750-u-324.html#SXT_h2_11

    Redis主从复制架构初步探索 目录http://www.sxt.cn/info-1750-u-324.html#SXT_h2_11 ·  一.主从复制架构简介 ·  1.1 源于关系数据库的读写分离 ...

  4. ASPNet请求处理机制初步探索之旅Part2核心

    ASPNet请求处理机制初步探索之旅Part2核心 开篇:上一篇我们了解了一个请求从客户端发出到服务端接收并转到ASP.Net处理入口的过程,这篇我们开始探索ASP.Net的核心处理部分,借助强大的反 ...

  5. python实战故障诊断之CWRU数据集(二):异常数据剔除及包络解调初步探索

    文章目录 1. 概述 2. 异常数据探索 2.1. 电噪声干扰 2.2. 驱动端与风扇端传感器信号混淆 2.3. 分段采集信号整合 3. 正常信号的平方包络解调分析 1. 概述   在完成了CWRU数 ...

  6. OpenJDK 初步探索

    什么是 OpenJDK? OpenJDK 初步探索 第 1 章 OpenJDK 介绍 1.1 什么是 OpenJDK ? 1.2 Oracle JDK.Oracle OpenJDK 和 OpenJDK ...

  7. 企查查app sign算法破解初步探索

    企查查app sign算法破解初步探索 之前有说过企查查的sign的解密,但这次是企查查app的sign算法破解,目前是初步进程. 目前我们需要做查壳,具体方法可以百度搜索,企查查用的360加固,很简 ...

  8. 创客教育和Mixly的初步探索

    创客教育的理论与实践 + Mixly的初步探索 创客教育 傅骞老师在课堂上指出,创客教育要注重"创新"和"分享","创客就是让你没有目标的去做你喜欢做 ...

  9. 电子游戏理论基础知识的初步探索(转)

    电子游戏理论基础知识的初步探索(转)[@more@] 抛砖引玉,请读者指正. 一.游戏(Game) 约翰?赫伊津哈和弗里德里?希格奥尔格?容格尔在<游戏的人>(1938年)和<玩游戏 ...

最新文章

  1. cpu,内核和逻辑处理器的关系
  2. adb 命令 pc端 复制粘贴 文本到android设备
  3. #让人物运动_篮球人物之黄云龙,淡泊名利的他是篮球运动员中的楷模,你可记得...
  4. 多图详解边缘计算系统的组成及概念
  5. android反射开启通知_作为Android开发者 你真的知道app从启动到主页显示的过程吗?...
  6. 十进制负数的二进制表示法
  7. linux ape,linux把ape+cue格式转换成flac,同时保留曲目信息转载
  8. 2019华为软件精英挑战赛 赛后总结
  9. 运维工程师最容易出的状况,咋就找不到问题根因呢?
  10. python如何实现输出表格_python如何以表格形式打印输出
  11. java转盘抽奖算法_抽奖算法 - 幸运大转盘 - java
  12. 三角函数正交性理解与Matlab分析
  13. WIN10 Wifi已连接无internet完美解决办法
  14. 示波器两个重要参数 - 带宽、采样率
  15. Python OCR 识别图片内容
  16. Maven从入门到精通
  17. BUUCTF-MISC-九连环
  18. MD5 到底是不是加密?
  19. 搜索引擎优化(SEO)----关键字
  20. 使用Win7 PE安装Win 7原版系统图解

热门文章

  1. 零基础学Nginx【2】| Nginx 常用的命令和配置文件
  2. centos7设置屏幕保护
  3. 两个助你高效编写 Kubernetes YAML 文件的神技
  4. 华为WATCH D血压手表测量准确吗?
  5. linux限制iphone性能,iPhone 11系列内置系统会限制手机性能吗?
  6. echarts出现异常竖线的解决办法
  7. 求分数和的最简形式(c++)
  8. Linux的启动引导讲解
  9. verilog易混淆知识点
  10. Apache Log4j 漏洞(JNDI注入 CVE-2021-44228)