MGI-tech-bioinformatics / DNBelab_C_Series_HT_scRNA-analysis-software

An open source and flexible pipeline to analysis high-throughput DNBelab C Series single-cell RNA datasets
MIT License
65 stars 24 forks source link

版本2.0.0和2.0.6之间比对得到的细胞数目减少的问题 #11

Closed SSTTshitao closed 5 months ago

SSTTshitao commented 1 year ago

感谢作者的辛苦付出。我们使用相同的参数和数据,使用2.0.0版本得到的细胞数目大约在11000左右,然而在更新到2.0.6时,细胞数目下降到了7000左右,这样的降幅是什么造成的呢,是现在版本的准确性更高一些还是之前版本的准确性更高一些。丢失的这些细胞是由于什么原因造成的呢,有没有具体的解释,或者是内置的一些参数改变了我们没有察觉呢?我们现在应该选择哪个版本的数据更加的准确?或者您后续还会继续修复2.0.6版本?

lishuangshuang0616 commented 1 year ago

您好,很高兴您的反馈。在2.0.0版本中,umi矫正的算法不完善,存在部分相似的umi未合并,会导致细胞的umi数量与真实相比偏高,细胞获取数量偏高。我们在python包2.0.1中很快修改了这个问题,以及之后正式公布的2.0.5版本的CHANGELOG中提到这个修复“Fix: Adjusted umi correction.”。推荐使用现在的版本即2.0.5之后的版本,现在的版本的准确性更高。

HengkuanLi commented 1 year ago

@lishuangshuang0616 您好,请问为什么umi的矫正会影响最后细胞数目的数量呢,在获取filter_matrix的过程中,除了对空滴进行过滤外,有根据umi数目对细胞进行过滤的分析吗?

lishuangshuang0616 commented 1 year ago

因为在cell calling获取有效液滴beads时使用的emptydrops方法:第一步,对umi数量进行排序获取第 99分位 Barcode对应的 UMI数目除以 10作为 cut-off;第二步,在第一步获取的beads与最低umi截止值的beads之间的beads进行emptydrops获取有效beads。未矫正umi或者矫正不完全会使整体的umi变高,势必会导致更多的beads被算进有效液滴内。优化矫正算法使umi更精确会使获取的beads更真实。@HengkuanLi

feiwang2840 commented 1 year ago

@lishuangshuang0616 cut-off设置的标准是怎么来的?整合之后UMI变低,如果还是除以10作为cutoff 是否合适?按照2.0.5版本细胞数目比原来少了2500-5000个,细胞数目少的有点多了,会不会有假阴性的出现。

lishuangshuang0616 commented 1 year ago

我不确定是否对于每个样本都存在这么多的细胞差异。目前比较常用的是emptydrops方法来获取细胞数,先判定有效液滴 beads先采用高 umi阈值法预期捕获 N个 beads,则按照每个 Barcode对应的 UMI数进行排序,在 UMI数最高的 N个 cell barcode中,取第 99分位 Barcode对应的 UMI数目除以 10,作为 cut-off。所有 cell barcode中对应的 UMI数目高于该 cut-off即为细胞,否则为背景 ),然后使用 emptydrops对低 umi的 beads与背景 beads进行区分(确定背景空液滴集合,使用 Dirichlet-multinomial模型将其与每个 beads对应的 UMI count进行差异显著性检验,差异显著即为有效液滴内 beads否则为背景 beads)。如果报告中barcoderanks曲线骤降较明显,细胞数应该不会差异很大。目前来看emptydrops获取真实细胞较为准确。如果对结果的细胞不满意可以调整算法,比如我们提供的barcoderanks算法(根据曲线斜率最大值获取)或者forcecells来截取beads。@feiwang2840