对10X单细胞reads进行随机抽样

2021-03-25 15:48:56 浏览数 (2)

此功能使用样本中的信息通过指定的道具对每个分子的读数进行下采样。然后,它基于具有非零读取计数的分子构造一个UMI计数矩阵。目的是消除技术噪声中的差异,这些差异可以按批次进行聚类,如downsampleMatrix中所述。

用downsampleReads对读数进行二次采样可以概括每个单元的测序深度差异的影响。这提供了使用CellRanger aggr功能进行下采样或使用10X Genomics R套件进行下采样的替代方法。请注意,这与使用downsampleMatrix直接对UMI计数矩阵进行二次采样有所不同。

如果bycol = FALSE,则对整个数据集中的所有读取执行不替换的降采样。下采样后,每个单元的读取总数可能不完全等于原始值的prop乘以。请注意,这是更自然的方法,并且是默认方法,与downsampleMatrix中使用的默认方法不同。

如果bycol = TRUE,则对每个单元的读数执行不替换的采样。下采样后,每个单元的读取总数保证是原始总数的prop倍(四舍五入到最接近的整数)。通过将prop设置为向量,可以为不同的单元格指定不同的比例,其中每个比例都按照get10xMolInfoStats返回的顺序对应于一个单元格/ GEM组合。

代码语言:javascript复制
if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
BiocManager::install("DropletUtils")
library("DropletUtils")

使用seqtk对原始fastq文件进行随机抽样

代码语言:javascript复制
#install
conda install -c bioconda seqtk

双端测序数据的用法:

代码语言:javascript复制
seqtk sample -s100 read1.fq 10000 > sub1.fq
seqtk sample -s100 read2.fq 10000 > sub2.fq

对于10X单细胞数据,因为有三个文件I1,R1,R2,所以对着三个文件都进行下采样。

代码语言:javascript复制
seqtk sample -s100 input_S1_L001_I1_001.fastq.gz 30000000 > output_S1_L001_I1_001.fastq.gz
seqtk sample -s100 input_S1_L001_R1_001.fastq.gz 30000000 > output_S1_L001_R1_001.fastq.gz
seqtk sample -s100 input_S1_L001_R2_001.fastq.gz 30000000 > output_S1_L001_R2_001.fastq.gz
umi

0 人点赞