1:前言介绍
quanTIseq**是一个计算管道,用于从人类 RNA测序数据中量化肿瘤免疫背景。
quanTIseq 将来自肿瘤样本或其他细胞混合物的 RNA-seq 读取的 FASTQ 文件作为输入,并通过反卷积对异质样本中存在的十种不同免疫细胞类型的比例(表1)以及其他未表征细胞的比例进行量化。
表1:信息内容缩写
TPM:每千个碱基的转录每百万映射读取的转录本
RNAseq:RNA测序
PDTX:人源肿瘤组织异种移植模型
Deconvolution:约束最小二乘回归的细胞分数去卷积
Cell fraction:细胞分数
Cell densities:细胞密度
B.cells:B细胞;B cells
Macrophages.M1:经典活化巨噬细胞 (M1);Classically activated macrophages (M1)
Macrophages.M2:选择性激活巨噬细胞 (M2);Alternatively activated macrophages (M2)
Monocytes:单核细胞;Monocytes
Neutrophils:中性粒细胞;Neutrophils
NK.cells:自然杀伤 (NK) 细胞;Natural killer (NK) cells
T.cells.CD4:非调节性 CD4+ T 细胞*;Non-regulatory CD4+ T cells *
T.cells.CD8:CD8+ T细胞;CD8+ T cells
Tregs:调节性 CD4+ T (Treg) 细胞;Regulatory CD4+ T (Treg) cells
Dendritic.cells:树突状细胞;Dendritic cells
Other:其他未表征的细胞;Other uncharacterized cells
2:程序安装
quanTIseq 可以在 Mac OS X(https://www.docker.com/)Singularity)上运行,只需调用“quanTIseq_pipeline.sh”脚本。管道代码和第三方软件嵌入在 Docker 映像中,简化了 quanTIseq 安装和使用
2.1 Mac OS X(基于 Docker)
安装 Docker(此处有说明)。
从此处下载“quanTIseq_pipeline.sh”脚本。
2.2 Linux(基于Singularity)
安装奇点(此处的说明)。
从此处下载“quanTIseq_pipeline.sh”脚本。
3: QuantTIseq 分析
QuantTIseq 分析由三个步骤组成
3.1 使用 Trimmomatic 对原始 RNA-seq 读段(单端或双端)进行预处理,以去除 Illumina 接头序列、修剪低质量读端、将长读段裁剪至最大长度并丢弃短读段。
3.2 使用 Kallisto 对基因表达进行量化,表示为每百万转录本 (TPM) 和原始计数。
3.3 表达标准化、基因重新注释、基于约束最小二乘回归的细胞分数去卷积以及细胞密度的计算(如果每mm 2的总细胞可从肿瘤组织切片的图像中获得)。
3.1 第一步: Trimmomatic 分析 (程序一步到位,可不单独执行)
基于R程序的tools软件包,进行java Trimmomatic
相关程序:
trimmomatic PE -phred33 input.file -baseout ILLUMINACLIP:TruSeq3-PE.fa:2:30:10 LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:50
3.2 第二步: kallisto分析 (程序一步到位,可不单独执行)
基于kallisto程序包,进行基因组的匹配并计数
kallisto quant -i /opt/quantiseq/kallisto/hg19_M_rCRS_kallisto.idx -o ", opath," ", libtype, "-t ", threads," ", files)
基于python程序包,进行计数并进行TPM的转换
makeTPMtable<-function(inputdir, outputfile) {
files<-list.files(inputdir)
init<-FALSE
for (i in 1:length(files)) {
file<-file.path(inputdir, files[i])
cdata<-read.table(file, header=TRUE, stringsAsFactors=FALSE)
#just consider files with correct headers
if(sum(colnames(cdata) == c("target_id","length","eff_length","est_counts","tpm")) != 5) next
if (!init) {
data<-createMat(cdata,files)
init<-TRUE
}
data[,i+1]<-cdata$tpm[match(data$Feature, cdata$target_id)]
data[,i+length(files)+1]<-cdata$est_counts[match(data$Feature, cdata$target_id)]
}
dataout<-mapGenes(data)
writeData(dataout, outputfile, length(files))
}
3.3 第三步: QuantTIseq分析 (程序一步到位,可不单独执行)
基于R程序的preprocessCore软件包,进行细胞比例成分的统计
fileout<-paste0(output, prefix, "_cell_fractions.txt")
DCres <- results
results<-cbind(rownames(results), results)
colnames(results)[1]<-"Sample"
write.table(results,
sep="\t",
row.names=FALSE,
quote=FALSE,
file=fileout)
if (btotalcells == TRUE){
celldens <- celldensities(DCres)
fileout2 <- paste0(output, prefix, "_cell_densities.txt")
celldens<-cbind(rownames(celldens), celldens)
colnames(celldens)[1]<-"Sample"
write.table(celldens,
sep="\t",
row.names=FALSE,
quote=FALSE,
file=fileout2)
}
4:用法
要运行 quanTIseq,请执行以下命令:
bash quanTIseq_pipeline.sh --inputfile=path/to/input_file.txt --outputdir=path/to/outputdir [options]
--inputfile:输入文件的路径(强制)。输入文件是一个制表符分隔的文本文件,没有标题,包含要分析的 RNA-seq 数据的信息,每行一个样本。对于每个样本,它必须包含三列,指定:样本的 ID、第一个 FASTQ 文件的路径以及配对端数据的第二个 FASTQ 文件的路径。对于单端数据,第三列必须报告字符串“None”。FASTQ 文件可以进行 gzip 压缩(“.gz”扩展名)。要使用“--pipelinestart=decon”选项运行 quanTIseq,输入文件必须是制表符分隔的文本文件与所有要解卷积样本的基因 TPM(或微阵列表达值)(第一列上的基因符号和第一行上的样本 ID)。表达数据必须采用非对数尺度。
--outputdir:输出目录的路径(强制)。如果它不存在,quanTIseq 将创建它。
- quanTIseq 根据您的计算机操作系统自动选择 Docker 或 Singularity。
- 在 Mac OS X 上,您需要运行 Docker 才能执行 quanTIseq。
- 在 Mac OS X 上,您可能需要在 Docker 设置(设置 > 首选项 > 高级)中增加 CPU、内存和交换。
- 在 Linux 上,quanTIseq 将奇点图像“quantiseq2.img”存储在当前目录中。
5:选项
--help:打印这些说明。
--pipelinestart:管道应从该步骤启动,如图1所示:(1) “preproc”、(2) “expr”或 (3) “decon”。 注意:如果“decon”,输入文件必须是制表符分隔的文本文件,其中包含要解卷积的所有样本的基因 TPM(或微阵列表达值)(第一列上的基因符号和第一行上的样本 ID)。表达数据必须采用非对数尺度。
默认值:“预处理”。
--tumor:指定表达数据是否来自肿瘤样本。如果为 TRUE,则去除肿瘤样本中高表达的特征基因(参见[1])。我们强烈建议在分析肿瘤数据时设置“--tumor=TRUE”。
默认值:假。
--arrays:指定表达数据是否来自微阵列(而不是 RNA-seq)。如果为 TRUE,则“--rmgenes”参数设置为“none”。
默认值:假。
--method:要使用的反卷积方法:“hampel”、“huber”或“bisquare”分别用于使用 Huber、Hampel 或 Tukey 双平方估计器进行稳健回归,或“lsei”用于约束最小二乘回归。未表征细胞(“其他”)的分数仅通过“lsei”方法计算,该方法估计涉及所研究样品中总细胞的细胞分数。对于所有其他方法,细胞分数指的是特征矩阵中考虑的免疫细胞。我们建议使用“lsei”方法。
默认值:“lsei”。
--mRNAscale:指定是否必须缩放细胞分数以考虑细胞类型特异性的 mRNA 内容。我们强烈建议使用默认设置:“--mRNAscale=TRUE”。
默认值:真。
--totalcells :制表符分隔的文本文件的路径,其中包含从肿瘤组织切片图像估计的总细胞密度。文件必须没有标题,并且在第一列中包含样本 ID,在第二列中包含根据肿瘤图像(例如,根据苏木精和伊红 (H&E) 染色组织的图像)估计的每 mm 2细胞总数幻灯片)。quanTIseq 计算特征矩阵的所有细胞类型以及“inputfile”和“totalcell”文件中存在的所有样本的细胞密度。此参数是可选的,如果未设置,则仅返回解卷积的细胞分数。
--rmgenes:指定在运行反卷积之前必须从特征矩阵中删除哪些基因。该参数可以等于:
“none”:没有基因被去除;
“default”:删除 该文件中报告的基因列表;
可以指定包含要删除的基因列表的文本文件的路径。文本文件必须每行报告一个基因符号,如本例所示。可用于指定已知/被认为会对反卷积结果产生偏差的噪声基因(例如,在感兴趣的样本中具有非常高表达的免疫基因)。
我们建议分别使用“默认”和“无”对 RNA-seq 和微阵列数据进行反卷积。
默认值:“默认”。
--rawcounts:指定除了 TPM 之外是否还应生成基因原始计数文件。
默认值:假。
--prefix:输出文件的前缀。
默认值:“quanTIseq”。
--threads:要使用的线程数。注意:kallisto 结果(基因计数和 TPM)可能会略有不同,具体取决于所使用的线程数。
默认值:1。
--phred :使用Trimmomatic进行读取预处理的 RNA-seq 质量分数的编码 :“33”表示 Phred-33 或“64”表示 Phred-64。
默认值:33。
**--adapterSeed : **Trimmomatic识别接头序列时种子不匹配的最大数量 。
默认值:2。
**--palindromeClip : **Trimmomatic对接头序列进行回文剪辑的阈值 。
默认值:30。
**--simpleClip : **Trimmomatic简单剪切接头序列的阈值 。
默认值:10。
**--trimLead : **Trimmomatic在读取开始时保留碱基所需的最低 Phred 质量 。质量较低的碱基会被修剪。
默认值:20。
--trimTrail: Trimmomatic在读取结束时保留碱基所需的最低 Phred 质量。质量较低的碱基会被修剪。
默认值:20。
--minLen: Trimmomatic保持读取所需的最小读取长度。短于该阈值的读取将被丢弃。
默认值:36。
**--crop : **Trimmomatic所需的最大读取长度 。通过删除读数末尾的碱基,将较长的读数修剪至最大长度。
默认值:10000。
**--avgFragLen : **Kallisto对单端数据 所需的估计平均片段长度 。
默认值:50。
**--sdFragLen : **Kallisto对单端数据 所需的片段长度的估计标准偏差 。
默认值:20。
6:输出文件
prefix_cell_fractions.txt:制表符分隔的文本文件, 其中包含由 quanTIseq 估计的细胞分数(第一列上的样本 ID 和第一行上的细胞类型)。仅当“--method=lsei”时才报告 未表征细胞的分数(表 1 )。
prefix_gene_tpm.txt:制表符分隔的文本文件, 其中包含 TPM 中的基因表达(第一列上的基因符号和第一行上的样本 ID)。当指定“--pipelinestart=decon”选项时,不会生成此文件。
prefix_gene_count.txt:制表符分隔的文本文件, 其中包含读取计数中的基因表达(第一列上的基因符号和第一行上的样本 ID)。仅当指定“--rawcounts=TRUE”选项时才会生成此文件。
7:测试数据
要在模拟 RNA-seq 数据(即来自 Sample1 的配对端数据和来自 Sample2 的单端数据)上测试 quanTIseq 管道,请在工作目录中下载“quanTIseq_pipeline.sh”脚本和以下测试文件:
完整的 QuantTIseq 管道可以使用以下命令运行:
bash quanTIseq_pipeline.sh --inputfile=quanTIseqTest_input.txt --outputdir=quanTIseqTest --prefix=quanTIseqTest
注意:要运行此测试,QuantTIseq 必须已成功安装(请参阅安装)
QuantTIseq 将生成以下输出文件: