内容


1介绍

强盗是一个贝叶斯分层方法执行微分拼接通过微分成绩单使用(差)。强盗使用层次结构,通过Dirichlet-multinomial模型、显式模型之间的over-dispersion复制和允许sample-specific记录相对丰度(即。,比例)。更多的数学,考虑与K基因转录和转录水平\ (Y =(求和Y_1 \ ldots, k) \);我们假设\ (Y \ sim DM (\ pi_1 \ ldots \ pi_Kδ)\ \),在那里\ (DM \)表示Dirichlet-multinomial分布,\ (\ pi_1 \ ldots \ pi_K \)显示记录的相对丰度\ (1 \ ldots K \),\三角洲(\ \)代表了精度参数,造型之间的over-dispersion程度,样本。

我们输入等价类和相应数量,等价类代表记录的读取是兼容的。该方法嵌入在一个贝叶斯层次框架,推断出的后验密度参数通过马尔可夫链蒙特卡罗(密度)技术。每个RNA-seq读它的分配记录的起源都被视为一个潜变量以及采样密度。为系统测试,我们比较两个或两个以上的条件之间的平均记录相对丰富。统计测试执行,同时,基因转录水平,允许科学家调查特定记录不同用于重要基因。

访问R代码片段中使用类型:

browseVignettes(“土匪”)

问题相对于强盗应报告为一个新的问题BugReports

引用强盗,类型:

引用(“土匪”)
# # # #在出版物引用强盗使用:# # # #西蒙Tiberi和马克·d·罗宾逊(2020)。土匪:贝叶斯# #微分拼接占样本可变性和# #映射的不确定性。基因组生物学、21 (69)。URL https://genomebiology.biomedcentral.com/articles/10.1186/s13059 - 020 - 01967 - 8 # # # # # #助理条目为乳胶用户是# # # # @Article{# #标题={土匪:贝叶斯微分拼接占样本可变性和映射不确定性},# #作者= {Simone Tiberi和马克·d·罗宾逊},# # eprint = {https://genomebiology.biomedcentral.com/articles/10.1186/s13059 - 020 - 01967 - 8}, # # ={}基因组生物学》杂志上,# #卷={21},# #数量={69}={2020}# #年,# # doi = {10.1186 / s13059 - 020 - 01967 - 8}, # # URL = {https://genomebiology.biomedcentral.com/articles/10.1186/s13059 - 020 - 01967 - 8}, # #出版商= {Springer}, # #}

1.1Bioconductor安装

强盗可以在Bioconductor和可以安装命令:

如果(!requireNamespace (“BiocManager”,悄悄地= TRUE)) install.packages (“BiocManager”) BiocManager::安装(“土匪”)

1.2从github猛击安装

安装最新的开发版本的包从github,使用devtools(可在这里):

devtools: install_github (“SimoneTiberi /土匪”)

会同其装饰图案删除安装包——no-build-vignettesbuild_opts:

devtools: install_github (“SimoneTiberi /强盗”,build_opts = c (”——no-resave-data”,“——无需手动”))

2将读取

包输入等价类和各自的数量。这些都可以通过调整读取直接与pseudo-alignmers转录组的引用,通过大马哈鱼(Patro et al . 2017年)kallisto(布雷et al . 2016年),或者一个参考基因组与splice-aware基因组比对算法,通过明星(多布林et al . 2013年),检查记录与每个基因组与兼容大马哈鱼

注意:当使用大马哈鱼,使用的选项——dumpEq获取等价类,当使用明星,使用的选项——quantMode TranscriptomeSAM获取比对翻译成记录坐标,当使用kallisto,运行kallisto定量kallisto伪获取记录估计计数和等价类,分别。

该文件自述提供三个读取管道进行调整大马哈鱼,kallisto明星

3Gene-transcript匹配

进一步的等价类,我们的工具需要基因之间的匹配和记录id,兼容基因组或转录组用于对齐。有多种方法来计算一个gene-transcript兼容性矩阵;下面我们看两个例子创建它,李明做读取是否与基因组和转录组调整器。记住下面的示例代码将不会工作在任何给定gtf和fasta文件可能需要和调整;替代方法来计算gene-transcript拼毛了tximport(Soneson、爱情和罗宾逊2015)装饰图案。

如果读取先基因组(保持一致明星),我们可以计算从gtf gene-transcript协会文件通过GenomicFeatures(劳伦斯et al . 2013年)图书馆。在这里,我们提供了一个示例代码:

suppressMessages(库(GenomicFeatures)) gtf_file =执行(“extdata”、“GTF_files”,“Aedes_aegypti.partial。gtf”,包= " GenomicFeatures”) tx = makeTxDbFromGFF (gtf_file)党卫军= unlist (transcriptsBy (tx, =“基因”))gene_tr_id_gtf = data.frame (gene_id =名字(ss), transcript_id =党卫军tx_name美元)#删除最终NA的:gene_tr_id_gtf = gene_tr_id_gtf [rowSums (is.na (gene_tr_id_gtf)) = = 0,) #删除最终复制行:gene_tr_id_gtf =独特(gene_tr_id_gtf)

如果直接向转录组(读是一致的大马哈鱼kallisto),我们计算一个gene-transcript协会的cDNA fasta文件通过Biostrings(页面et al . 2019年)图书馆。在这里,我们提供了一个示例代码:

suppressMessages(图书馆(Biostrings)) data_dir =系统。文件(“extdata”,包=“土匪”)fasta = readDNAStringSet(file.path(data_dir, "Homo_sapiens.GRCh38.cdna.all.1.1.10M.fa.gz")) ss = strsplit(names(fasta), " ") gene_tr_id_fasta = data.frame(gene_id = gsub("gene:", "", sapply(ss, .subset, 4)), transcript_id = sapply(ss, .subset, 1)) # remove eventual NA's gene_tr_id_fasta = gene_tr_id_fasta[ rowSums( is.na(gene_tr_id_fasta)) == 0, ] # remove eventual duplicated rows: gene_tr_id_fasta = unique(gene_tr_id_fasta)

4系统管道

负载强盗

库(强盗)

4.1初步的信息

指定的目录数据(内部的包)。

data_dir =系统。文件(“extdata”,包=“土匪”)

我们需要一个矩阵或data.frame包含基因之间的匹配和记录标识符。“对齐和gene-transcript匹配的文件。txt”显示了如何创建这样一个文件从一个gtf(基因组比对的情况下)或从fasta文件(文本对齐的情况下)。

加载预先计算的gene-transcript匹配。gene_tr_id是data.frame(但也接受一个矩阵)在第二列包含记录id和相应的基因在第一列id。

数据(“gene_tr_id”,包=“土匪”)负责人(gene_tr_id)
# # gene_id transcript_id # # 2 ENSG00000223972 ENST00000456328 # # 6 ENSG00000223972 ENST00000450305 # # 14 ENSG00000227232 ENST00000488147 # # 27 ENSG00000278267 ENST00000619216 # # 30 ENSG00000243485 ENST00000473358 # # 34 ENSG00000243485 ENST00000469289

指定目录记录水平的估计。

sample_names = paste0(“样本”,seq_len (4) quant_files =文件。路径(data_dir,“STAR-salmon”、sample_names quant.sf) file.exists (quant_files)
# #[1]真的真的真的真的

通过tximport加载记录水平估计数量。

图书馆(tximport) txi = tximport(文件= quant_files类型=“三文鱼”,txOut = TRUE)
# #与read_tsv阅读文件
# # 1 2 3 4
数量= txi美元计数头(计数)
# # [1][2][3][4]# # ENST00000456328 # # ENST00000450305 0.00000 0.00000 0.00000 2.00000 5.00000 2.00000 8.00000 0.00000 # # ENST00000488147 # # ENST00000619216 0.00000 0.00000 0.00000 31.40446 47.39685 43.09507 65.84316 0.00000 # # ENST00000473358 # # ENST00000469289 0.00000 0.00000 1.00000 1.00000 1.00000 1.00000 1.00000 0.00000

我们定义的设计研究:在我们的例子中我们有两组,我们称之为“A”、“B”各2个样品。

samples_design = data.frame (sample_id = sample_names组= c (“A”、“A”、“B”,“B”)) samples_design
# # sample_id组sample1 # # 1 # # 2 sample2 # # 3 sample3 B # # 4 sample4 B

中定义的组:

水平(samples_design美元集团)
# #空

然而,在这里,我们考虑一个群比较强盗还允许比较两组以上。

在加载数据之前,我们也计算,通过eff_len_compute每个记录的平均有效长度(中位数计算对样品)。

eff_len = eff_len_compute (x_eff_len =美元txi长度)头(eff_len)
# # ENST00000456328 ENST00000450305 ENST00000488147 ENST00000619216 ENST00000473358 # # 1503.1350 478.2580 1197.1350 3.0210 558.2165 381.3605 # # ENST00000469289 # #

4.3加载数据

下面我们举例说明如何加载计算等价类大马哈鱼kallisto

4.3.1鲑鱼输入

我们指定的路径计算等价类大马哈鱼equiv_classes_files

equiv_classes_files =文件。sample_names路径(data_dir,“STAR-salmon”,“aux_info”,“eq_classes.txt”) file.exists (equiv_classes_files)
# #[1]真的真的真的真的

警告:样品名称equiv_classes_files必须有相同的订单作为设计对象,这些内容samples_design

equiv_classes_files
# # [1]“/ tmp / RtmpCnSZkN / Rinst1278d764e4b220 /土匪/ extdata / STAR-salmon / sample1 / aux_info / eq_classes。三种“# #”[2]/ tmp / RtmpCnSZkN / Rinst1278d764e4b220土匪/ extdata / STAR-salmon / sample2 / aux_info / eq_classes。三种“# #”[3]/ tmp / RtmpCnSZkN / Rinst1278d764e4b220土匪/ extdata / STAR-salmon / sample3 / aux_info / eq_classes。三种“# #”[4]/ tmp / RtmpCnSZkN / Rinst1278d764e4b220 /土匪/ extdata / STAR-salmon / sample4 / aux_info / eq_classes.txt”
samples_design sample_id美元
# # [1]“sample1”“sample2”“之上”“sample4”

然后导入等价类和相应的数量,并创建一个BANDITS_data对象通过create_data。在提供transcripts_to_keep函数内部过滤器记录,不在向量。当过滤transripts,我们建议并行化计算每个样本和使用一个核心(即,n_cores =长度(path_to_eq_classes))。至少从2记录是必要的研究微分拼接,基因与单个记录分析。

在我们的示例数据,读取对齐的基因组明星,大马哈鱼被用来计算等价类(和量化转录丰度)对齐的读取;因此,我们组salmon_or_kallisto =“鲑鱼”

input_data = create_data (salmon_or_kallisto =“三文鱼”,gene_to_transcript = gene_tr_id salmon_path_to_eq_classes = equiv_classes_files eff_len = eff_len n_cores = 2, transcripts_to_keep = transcripts_to_keep)
# #数据已经加载
11 # #马克斯记录每组
# #马克斯每组5基因

如果成绩单预滤器不是想要的,没有指定transcripts_to_keep参数。

加载数据后,filter_genes(数据,min_counts_per_gene = 20),我们删除基因整体(即小于20项。,considering all equivalence classes across all samples).

input_data = filter_genes (input_data min_counts_per_gene = 20)
# #初始数量的基因:40;选择基因数量:40

4.3.2kallisto输入

当读取与kallisto,我们将在一个非常相似的方式。

我们指定的路径等价类(kallisto_equiv_classes)和各自的数量(kallisto_equiv_counts)计算kallisto

kallisto_equiv_classes =文件。路径(data_dir,“kallisto”、sample_names pseudoalignments.ec) kallisto_equiv_counts =文件。路径(data_dir,“kallisto”、sample_names pseudoalignments.tsv) file.exists (kallisto_equiv_classes);file.exists (kallisto_equiv_counts)
# #[1]真的真的真的真的
# #[1]真的真的真的真的

警告:如上所述,样品名称kallisto_equiv_classeskallisto_equiv_classes必须有相同的订单作为设计对象,这些内容samples_design

kallisto_equiv_classes;kallisto_equiv_counts
# # [1]“/ tmp / RtmpCnSZkN / Rinst1278d764e4b220 /土匪/ extdata / kallisto / sample1 / pseudoalignments。欧共体“# #”[2]/ tmp / RtmpCnSZkN / Rinst1278d764e4b220土匪/ extdata kallisto / sample2 / pseudoalignments。欧共体“# #”[3]/ tmp / RtmpCnSZkN / Rinst1278d764e4b220土匪/ extdata kallisto / sample3 / pseudoalignments。欧共体“# #”[4]/ tmp / RtmpCnSZkN / Rinst1278d764e4b220土匪/ extdata kallisto / sample4 / pseudoalignments.ec”
# # [1]“/ tmp / RtmpCnSZkN / Rinst1278d764e4b220 /土匪/ extdata / kallisto / sample1 / pseudoalignments。tsv“# #”[2] / tmp / RtmpCnSZkN / Rinst1278d764e4b220土匪/ extdata kallisto / sample2 / pseudoalignments。tsv“# #”[3] / tmp / RtmpCnSZkN / Rinst1278d764e4b220土匪/ extdata kallisto / sample3 / pseudoalignments。tsv“# #”[4] / tmp / RtmpCnSZkN / Rinst1278d764e4b220土匪/ extdata kallisto / sample4 / pseudoalignments.tsv”
samples_design sample_id美元
# # [1]“sample1”“sample2”“之上”“sample4”

如上所述,我们导入等价类和相应的数量,并创建一个BANDITS_data对象通过create_data

input_data_2 = create_data (salmon_or_kallisto =“kallisto gene_to_transcript = gene_tr_id kallisto_equiv_classes = kallisto_equiv_classes kallisto_equiv_counts = kallisto_equiv_counts kallisto_counts =计数,eff_len = eff_len n_cores = 2, transcripts_to_keep = transcripts_to_keep)
# #数据已经加载
# # Max 69记录每组
# #马克斯29每组基因
input_data_2
# #“BANDITS_data”对象4样品和40个基因。

如果成绩单预滤器不是想要的,没有指定transcripts_to_keep参数。

加载数据后,filter_genes(数据,min_counts_per_gene = 20),我们删除基因整体(即小于20项。,considering all equivalence classes across all samples).

input_data_2 = filter_genes (input_data_2 min_counts_per_gene = 20)
# #初始数量的基因:40;选择基因数量:40

4.5测试系统

test_DTU我们共同经营密度算法,来推断参数的后验分布,测试系统。mean_log_deltasd_log_delta代表平均值和标准偏差的信息之前log-precision参数,如果可用。如果信息没有计算之前,离开mean_log_deltasd_log_delta未指定的字段。

Rburn_in代表获得链的长度(不包括老化)和老化的长度(即。,最初的部分的链被丢弃)。基因分析在一起(因为一个或多个读取兼容多个基因),Rburn_in翻了一番面临增加了复杂性的推理问题。至少需要的方法R = 10 ^ 4burn_in = 2 * 10 ^ 3。尽管没有区别在模拟研究观察到的时候,增加这些数字,我们鼓励用户可能使用更高的值(例如,双)如果计算时间允许。

收敛的诊断是用来测试如果后链固定,确定进一步的一部分链应该丢弃老化。如果没有达到收敛,链被丢弃和第二个链运行;如果再没有达到收敛,第三个链运行:如果连续三链无法收敛,各自的基因检测系统。

强烈建议来加快计算的并行方法并指定通过并行线程的数量n_cores参数。获得运行之前,我们组随机数生成的种子在R。

与p基因。值低于0.1,test_DTU获得第二个独立运行链,合并它与第一个测试基于聚合链的导航系统。

方法在技术上可以用一个运行观察每组,但每组2应当被视为最小样本量。

我们运行里程计方法。group_col_name显示的列的名称samples_design包含每个样本(默认的组idgroup_col_name = "集团")。

set.seed(61217)结果= test_DTU (BANDITS_data = input_data精度=精度之前,美元samples_design = samples_design group_col_name =“集团”,R = 10 ^ 4, burn_in = 2 * 10 ^ 3, n_cores = 2, gene_to_transcript = gene_tr_id)
# #启动密度
# #获得完成
# #返回结果

的输出test_DTU是一个BANDITS_test对象;结果存储在3data.frame对象包含基因水平的结果,记录水平收敛结果和输出。所有结果都是排序,默认情况下,根据基因水平测试的重要性。

读一个完整的描述的输出test_DTU,请参阅帮助(BANDITS_test)

结果
# #“BANDITS_test”对象,114 36个基因和转录水平的结果。

功能top_genes,top_transcripts收敛可用于访问基因水平的结果,分别记录水平收敛结果和产出。

想象最重要的基因,按照基因水平的意义。

头(top_genes(结果))
# # Gene_id p。adj.p值。p值。values_inverted # # 1 ENSG00000162585 9.132076 e-05 0.003287547 - 9.132076 e-05 # # 2 ENSG00000197530 1.491652 e-02 0.225596113 1.879968 1.491652 e-02 # # 3 ENSG00000162576 e-02 0.225596113 - 1.879968 e-02 # # 4 ENSG00000221978 7.392109 e-02 0.665289799 - 7.392109 e-02 # # 5 ENSG00000160087 9.415837 e-02 0.677940254 - 9.415837 e-02 # # 6 ENSG00000008130 1.364419 e-01 0.763873326 - 1.364419 e-01 # # adj.p。values_inverted DTU_measure意味着log-prec意味着log-prec B # # 1 # # 2 0.225596113 0.6243606 3.450269 1.3291221 3.864902 5.115116 0.003287547 0.225596113 5.575319 # # 3 # # 4 0.665289799 0.2343388 6.008342 0.3239252 6.423918 6.619155 0.677940254 5.457248 # # 5 # 6 # 0.763873326 0.7482182 4.455511 0.7565747 4.332407 3.276718 3.510488 # # SD log-prec SD log-prec B 1.4022517 - 2.2936126 # # 1 # # 2 1.0497853 - 1.9110451 0.8940015 - 0.9458887 1.3727094 - 1.5984266 # # 3 # # 4 # 5 # 1.6222813 - 1.4648085 # 6 # 3.2135855 - 2.0631852

另外,能够按照“DTU_measure”排序的结果还可以,这是一个测量的强度变化的平均相对丰度之间的两组。

头(top_genes(结果,sort_by =“DTU_measure”))
# # Gene_id p。adj.p值。p值。values_inverted # # 1 ENSG00000162585 9.132076 e-05 0.003287547 - 9.132076 e-05 # # 7 ENSG00000224870 1.523895 e-01 0.763873326 - 1.523895 e-01 # # 5 ENSG00000160087 9.415837 e-02 0.677940254 - 9.415837 e-02 # # 6 ENSG00000008130 1.364419 e-01 0.763873326 - 1.364419 e-01 # # 9 ENSG00000157870 2.172148 e-01 0.787589869 - 2.172148 e-01 # # 2 ENSG00000197530 1.491652 e-02 0.225596113 - 1.491652 e-02 # # adj.p。values_inverted DTU_measure意味着log-prec意味着log-prec B # # 1 # # 7 0.763873326 0.8338453 4.830025 1.3291221 3.864902 5.115116 0.003287547 0.677940254 3.853537 # # 5 # 6 # 0.763873326 0.7482182 4.455511 0.7565747 4.332407 3.276718 0.787589869 3.510488 # # 9 # # 2 0.225596113 0.6243606 3.450269 0.6929428 4.549368 4.433119 5.575319 # # SD log-prec SD log-prec B 2.715598 - 3.100057 1.402252 - 2.293613 # # 1 # # 7 # # 5 1.622281 - 1.464809 2.534583 - 2.443005 3.213585 - 2.063185 # # 6 # # 9 # # 2 1.049785 - 1.911045

想象最重要的记录,按记录水平的意义。

头(top_transcripts(结果,sort_by =“成绩单”))
# # Gene_id Transcript_id p。adj.p值。Max_Gene_Tr.p值。val # # 1 ENSG00000162585 ENST00000378546 3.861658 e-06 0.000440229 - 0.72092739 # # 2 ENSG00000162585 ENST00000476803 1.083969 e-04 0.006178621 - 0.78309429 # # 10 ENSG00000162576 ENST00000474033 6.126550 e 03 0.232808919 - 0.47255983 # # 11 ENSG00000162576 ENST00000309212 1.166504 e-02 0.332453669 - 0.49623648 # # 15 ENSG00000221978 ENST00000480479 1.678391 e-02 0.376822431 - 0.07392109 # # 5 ENSG00000197530 ENST00000514234 2.281786 e-02 0.376822431 - 0.54400706 # # Max_Gene_Tr.Adj.p。val意味着意味着SD A SD # # 1 0.003287547 0.72092739 0.04278565 0.12135398 0.006178621 0.13211392 0.78309429 0.11263834 0.14019984 0.09376301 # # 2 # # 10 0.232808919 0.30257391 0.47255983 0.03429573 0.332453669 0.49623648 0.34229722 0.03547474 0.04984745 0.05332130 # # 11 # # 15 0.665289799 0.07348898 0.01782466 0.01878554 0.376822431 0.17240518 0.54400706 0.09319581 0.13862266 0.01339365 # # 5

可视化输出收敛性最重要的基因,按照基因水平的意义。

头(收敛(结果))
# # 1 # # Gene_id聚合burn_in ENSG00000162585真的0.0 # # 2 ENSG00000197530真的0.0 # # 3 ENSG00000162576真的0.1 # # 4 ENSG00000221978真的0.4 # # 5 ENSG00000160087真的0.0 # # 6 ENSG00000008130真的0.0

我们可以进一步使用基因函数来收集所有输出为一个特定的基因:基因水平、转录水平和收敛结果。

top_gene = top_genes(结果,n = 1)基因(结果,top_gene Gene_id美元)
# # # # $ gene_results Gene_id p。adj.p值。p值。values_inverted # # 1 ENSG00000162585 9.132076 e-05 0.003287547 - 9.132076 e-05 # # adj.p。values_inverted DTU_measure意味着log-prec平均log-prec B # # 1 0.003287547 1.329122 3.864902 5.115116 # # SD log-prec SD log-prec B 1.402252 - 2.293613 # # 1 # # # # $ transcript_results # # Gene_id Transcript_id p。adj.p值。Max_Gene_Tr.p值。val # # 1 ENSG00000162585 ENST00000378546 3.861658 e-06 0.000440229 - 0.7209274 # # 2 ENSG00000162585 ENST00000476803 1.083969 e-04 0.006178621 - 0.7830943 # # 3 ENSG00000162585 ENST00000414253 9.183543 e-01 0.999945452 - 0.9183543 # # 4 ENSG00000162585 ENST00000497675 9.773652 e-01 0.999945452 - 0.9773652 # # Max_Gene_Tr.Adj.p。val意味着意味着SD A SD # # 1 0.003287547 0.72092739 0.04278565 0.12135398 0.006178621 0.13211392 0.78309429 0.11263834 0.14019984 0.09376301 # # 2 # # 3 0.999945452 0.10138194 0.11783651 0.04353412 0.999945452 0.04557675 0.05628355 0.02149286 0.04648564 0.06672338 # # 4 # # # # $ convergence_results聚合burn_in # # 1 # # Gene_id ENSG00000162585真正的0

同样我们可以使用成绩单函数来收集所有输出为一个特定的记录。

top_transcript = top_transcripts(结果,n = 1)成绩单(结果,top_transcript Transcript_id美元)
# # # # $ transcript_results Gene_id Transcript_id p。adj.p值。Max_Gene_Tr.p值。val # # 1 ENSG00000162585 ENST00000378546 3.861658 e-06 0.000440229 - 0.7209274 # # Max_Gene_Tr.Adj.p。val意味着意味着SD A SD # # 1 0.003287547 0.7209274 0.04278565 0.121354 0.09376301 # # # # $ gene_results # # Gene_id p。adj.p值。p值。values_inverted # # 1 ENSG00000162585 9.132076 e-05 0.003287547 - 9.132076 e-05 # # adj.p。values_inverted DTU_measure意味着log-prec平均log-prec B # # 1 0.003287547 1.329122 3.864902 5.115116 # # SD log-prec SD log-prec B 1.402252 - 2.293613 # # 1 # # # # $ convergence_results聚合burn_in # # 1 # # Gene_id ENSG00000162585真正的0

最后,我们可以画出估计的平均记录相对表达两组为一个特定的基因通过plot_proportions。当CI = TRUE(默认),一个黑色实线绘制的直方图,表示这个概要文件瓦尔德式可信区间(CI)每个记录的相对表达;可以通过设置CI的水平CI_level默认参数(0.95)。请注意,独联体的宽度是有限的可用数据供方确认的结果(即。几项);边界通常较小的数据集。

plot_proportions(结果,top_gene Gene_id美元,CI = TRUE, CI_level = 0.95)

4.5.1详细结果

在本节中,我们旨在解释详细的输出test_DTU

在这两个基因,转录水平测试,p.valuesadj.p.values表明p。价值观和调整p。值,调整p。值获得通过p.adjust业务,通过实现Benjamini和修正。

基因水平的结果

在基因水平的结果,仅供群比较,我们还提出一个保守措施,p.values_inverted占主导的反演成绩单(即。,最表示记录)。如果主要记录两组下是相同的,\ (p。值大概{p.values} \ _inverted = \ \),而如果主要记录两组之间的差异,\ (p。值\ _inverted = p.values \)。换句话说,当主要记录之间不变的条件下,我们采取的平方根p。值,这导致一个充气的值(例如,\ \√{0.01}= 0.1 \))。这种方法是基于这样的观察:常微分拼接导致改变占主导地位的成绩单,给类似的p。值,它将等级更高的基因与不同的主导transcritps之间的条件。

我们也提出一个分数,DTU_measure只,再一次为群定义的比较,这是为了测量系统的强度变化,类似于褶皱变化微分表达式分析。考虑一个基因与K记录相对丰度\ (\ pi_1 ^ {(A)}, \ ldots \ pi_K ^ {(A)} \)为集团\ \ (),\ (\ pi_1 ^ {(B)}, \ ldots \ pi_K ^ {(B)} \)为集团\ (B \)DTU_measure被定义为的总和之间的绝对差异表达的两个最记录:\ \ (\ sum_ {k \波浪号{k}} \左| \ pi_k ^ {(A)} - \ pi_k ^ {(B)} \右| \),在那里\ \(波浪号{K} \)显示的两个最在两组(即表达了成绩单。,添加\ (\ pi_k ^ {(A)} \)\ (\ pi_k ^ {(B)} \))。注意,这个测量范围在0,当团体之间的比例是相同的,和2,当一个异构体总是表达组和不同的成绩单总是选择在B组。

最后,意味着log-prec group_nameSD log-prec group_name指示后的平均值和标准偏差日志(δ)\ \ \ (),即,the logarithm of the Dirichlet precision parameter in each group. The precision parameter models the degree of over-dispersion between samples: the higher the precision parameter (or its logarithm), the lower the sample-to-sample variability.

转录水平的结果

在转录水平的结果,Max_Gene_Tr.p.valMax_Gene_Tr.Adj.p.val是两个保守的转录水平措施占两个基因和转录水平p。价值观:他们之间的最大p基因和转录水平。价值观和调整p。值,分别。这些措施,记录只能检测到显著如果相应的基因也显著。

最后,意味着group_nameSD group_name显示每个记录的后验均值和标准差的意思是相对丰度。

5推论3或更多组

如果3或更多组可用推理进行如上述情况两组。

这里我们提出re-analyze前面的数据假设三组结构。上面的管道暴露是不变的,除了设计矩阵,其中包括三组。

samples_design_3_groups = data.frame (sample_id = sample_names组= c (“A”、“B”、“B”,“c”)) samples_design_3_groups
# # sample_id组sample1 # # 1 # # 2 sample2 B # # 3 sample3 B # # 4 sample4 C
水平(samples_design_3_groups美元集团)
# #空

执行微分拼接:

set.seed (61217) results_3_groups = test_DTU (BANDITS_data = input_data精度=精度之前,美元samples_design = samples_design_3_groups group_col_name =“集团”,R = 10 ^ 4, burn_in = 2 * 10 ^ 3, n_cores = 2, gene_to_transcript = gene_tr_id)
# #启动密度
# #获得完成
# #返回结果
results_3_groups
# #“BANDITS_test”对象,114 36个基因和转录水平的结果。

下面我们注意,可视化基因和转录水平的结果表NA当没有出现数量可用于一个特定群体的样本;在这种情况下,位两组样本进行比较。

头(top_genes (results_3_groups))
# # Gene_id p。adj.p值。值意味着log-prec意味着log-prec B # # 1 ENSG00000162585 3.102162 e-09 1.116778 e-07 5.863215 2.155765 1.197647 4.530507 # # 2 ENSG00000197530 e-02 e-01 4.486540 - 4.109291 # # 3 ENSG00000127054 2.277277 e-02 2.732733 e-01 5.410571 - 4.944628 # # 4 ENSG00000162591 6.444559 e-02 5.800103 e-01 5.719586 - 4.369761 # # 5 ENSG00000008130 1.266663 e-01 9.119972 e-01 4.318826 - 4.037817 # # 6 ENSG00000162576 1.726275 e-01 9.996210 e-01 5.146465 - 5.870339 # #意味着log-prec C SD log-prec SD log-prec B SD log-prec C # # 1 # # 2 5.744296 2.177195 1.666262 1.849752 1.545439 2.3136707 5.577595 6.709370 1.4797078 # # 3 # # 4 3.895671 3.470601 2.583375 1.322932 1.336821 1.0835958 5.076597 2.4996056 # # 5 # 6 # 6.750191 1.475366 1.108706 2.730004 2.981370 2.5079506 0.9372319
头(top_transcripts (results_3_groups))
# # Gene_id Transcript_id p。adj.p值。Max_Gene_Tr.p值。val # # 1 ENSG00000162585 ENST00000378546 3.651777 e-08 4.163026 e-06 0.7267715 # # 2 ENSG00000162585 ENST00000476803 5.971199 e-06 3.403583 e-04 0.7807805 # # 3 ENSG00000162585 ENST00000414253 1.444479 e-01 9.970392 e-01 0.1895209 # # 4 ENSG00000162585 ENST00000497675 8.454711 e-01 9.970392 e-01 0.8454711 # # 5 ENSG00000197530 ENST00000487053 2.241618 e-02 5.110890 e-01 0.2998206 # # 6 ENSG00000197530 ENST00000514234 3.105753 e-02 5.900930 e-01 0.5408052 # # Max_Gene_Tr.Adj.p。val意味着意味着B意味着C SD SD e-06 B # # 1 4.163026 0.72677150 0.72185950 0.043756376 0.10023540 3.403583 0.15802857 # # 2 e-04 9.970392 0.03153497 0.18966573 0.780780500 0.07301589 0.14675543 # # 3 e-01 0.18952088 0.05165924 0.116029863 0.05948471 0.03833544 9.970392 # # 4 e-01 0.05217265 0.03681553 - 0.059433260 0.01908561 - 0.01758466 # # 5 e-01 0.24743125 0.29982063 0.007190108 5.110890 0.10656616 5.900930 0.15745540 # # 6 e-01 0.09004714 0.34861448 0.540805194 0.09533680 0.14327694 0.08841037 # # SD C # # 1 # # 2 0.04865518 0.07755130 0.14335759 # # 3 # # 4 # 5 # 0.02103195 # 6 # 0.15765804

我们可以从特定的基因或转录可视化结果。

基因(results_3_groups top_genes Gene_id美元(results_3_groups) [1])
# # # # $ gene_results Gene_id p。adj.p值。值意味着log-prec意味着log-prec 3.102162 B # # 1 ENSG00000162585 e-09 1.116778 e-07 5.863215 - 4.530507 # #意味着log-prec C SD log-prec SD log-prec B SD log-prec C # # 1 5.577595 1.849752 1.545439 2.313671 # # # # $ transcript_results # # Gene_id Transcript_id p。adj.p值。Max_Gene_Tr.p值。val # # 1 ENSG00000162585 ENST00000378546 3.651777 e-08 4.163026 e-06 0.7267715 # # 2 ENSG00000162585 ENST00000476803 5.971199 e-06 3.403583 e-04 0.7807805 # # 3 ENSG00000162585 ENST00000414253 1.444479 e-01 9.970392 e-01 0.1895209 # # 4 ENSG00000162585 ENST00000497675 8.454711 e-01 9.970392 e-01 0.8454711 # # Max_Gene_Tr.Adj.p。val意味着意味着B意味着C SD SD e-06 B # # 1 4.163026 0.72677150 0.72185950 0.04375638 0.10023540 3.403583 0.15802857 # # 2 e-04 9.970392 0.03153497 0.18966573 0.78078050 0.07301589 0.14675543 # # 3 e-01 0.18952088 0.05165924 0.11602986 0.05948471 0.03833544 9.970392 # # 4 e-01 0.05217265 0.03681553 0.05943326 0.08841037 0.01908561 - 0.01758466 # # SD C # # 1 # # 2 0.04865518 0.07755130 0.14335759 # # 3 # # 4 # # # # $ convergence_results聚合burn_in # # 13 # # Gene_id ENSG00000162585真正的0
成绩单(results_3_groups top_transcripts Transcript_id美元(results_3_groups) [1])
# # # # $ transcript_results Gene_id Transcript_id p。adj.p值。Max_Gene_Tr.p值。val # # 1 ENSG00000162585 ENST00000378546 3.651777 e-08 4.163026 e-06 0.7267715 # # Max_Gene_Tr.Adj.p。val意味着意味着B意味着C SD SD e-06 B # # 1 4.163026 0.7267715 0.7218595 0.04375638 0.08841037 0.1002354 - 0.1580286 # # SD C # # 1 # # # # $ gene_results # # Gene_id p。adj.p值。值意味着log-prec意味着log-prec 3.102162 B # # 1 ENSG00000162585 e-09 1.116778 e-07 5.863215 - 4.530507 # #意味着log-prec C SD log-prec SD log-prec B SD log-prec C # # 1 5.577595 1.849752 1.545439 2.313671 # # # # $ convergence_results聚合burn_in # # 13 # # Gene_id ENSG00000162585真正的0

最后,我们可以情节估计意思是记录一个特定基因的相对表达。

plot_proportions (results_3_groups top_genes Gene_id美元(results_3_groups) [1], CI = TRUE, CI_level = 0.95)

6推理与1组

如果所有的样本属于相同的实验条件下,微分之间的测试条件不能被执行。尽管如此,仍然可以用来推断土匪(即组级别参数。,意思是相对丰富的成绩单和色散)。

上述案件暴露的管道是相同的:唯一的区别问题的设计矩阵,现在包括一个集团对所有样本。

samples_design_1_group = data.frame (sample_id = sample_names组= c (“”,“”,“”,“”)) samples_design_1_group
# # sample_id组sample1 # # 1 # # 2 sample2 # # 3 # # 4 sample4之上
水平(samples_design_1_group美元集团)
# #空

推理再次通过执行test_DTU函数(即使微分测试本身是没有实现)。

set.seed (61217) results_1_group = test_DTU (BANDITS_data = input_data精度=精度之前,美元samples_design = samples_design_1_group group_col_name =“集团”,R = 10 ^ 4, burn_in = 2 * 10 ^ 3, n_cores = 2, gene_to_transcript = gene_tr_id)
# #一组只存在于“美元samples_design集团”:# #土匪会推断出模型参数,但不会测试组之间的差。
# #启动密度
# #获得完成
# #返回结果
results_1_group
# #“BANDITS_test”对象,124基因和转录水平的结果。

基因和转录水平的结果可以被可视化为以上;结果通过基因名称排序。注意,现在所有列相对于系统测试人失踪(p。值,调整p。值、DTU_measure等…)。

头(top_genes (results_1_group))
# # Gene_id意味着log-prec SD log-prec # # 1 ENSG00000008130 3.886154 - 2.4905563 # # 2 ENSG00000069424 5.219230 - 3.0897909 # # 3 ENSG00000078369 4.161549 - 2.2753614 # # 4 ENSG00000078808 8.093806 - 0.4912126 # # 5 ENSG00000107404 10.980998 - 3.7645846 # # 6 ENSG00000116198 4.331888 - 3.1714630
头(top_transcripts (results_1_group))
# # Gene_id Transcript_id意味着SD # # 1 ENSG00000008130 ENST00000341991 0.6104389 - 0.15831450 # # 2 ENSG00000008130 ENST00000341426 0.3895611 - 0.15831450 # # 3 ENSG00000069424 ENST00000378097 0.9551271 - 0.07772535 # # 4 ENSG00000069424 ENST00000378083 0.0448729 - 0.07772535 # # 5 ENSG00000078369 ENST00000378609 0.8892735 - 0.09303573 # # 6 ENSG00000078369 ENST00000610897 0.1107265 - 0.09303573

我们可以关注特定的基因或记录的结果。

基因(results_1_group top_genes Gene_id美元(results_1_group) [1])
gene_results美元# # # # Gene_id意味着log-prec SD log-prec # # 1 ENSG00000008130 transcript_results美元3.886154 - 2.490556 # # # # # # Gene_id Transcript_id意味着SD # # 1 ENSG00000008130 ENST00000341991 0.6104389 - 0.1583145 # # 2 ENSG00000008130 ENST00000341426 convergence_results美元0.3895611 - 0.1583145 # # # # # # Gene_id聚合burn_in # # 3 ENSG00000008130真的0
成绩单(results_1_group top_transcripts Transcript_id美元(results_1_group) [1])
transcript_results美元# # # # Gene_id Transcript_id意味着SD # # 1 ENSG00000008130 ENST00000341991 gene_results美元0.6104389 - 0.1583145 # # # # # # Gene_id意味着log-prec SD log-prec # # 1 ENSG00000008130 convergence_results美元3.886154 - 2.490556 # # # # # # Gene_id聚合burn_in # # 3 ENSG00000008130真的0

最后,我们可以情节估计意思是记录一个特定基因的相对表达。

plot_proportions (results_1_group top_genes(结果)Gene_id美元[1],CI = TRUE, CI_level = 0.95)