自动RNA-Seq礼物/缺失基因表达调用生成

朱利安Wollbrett,莎拉丰塞卡科斯塔Marc Robinson-Rechavi弗雷德里克·巴斯蒂安·

2022-05-15

BgeeCall是一家集功能,使用Bgee专家来创建RNA-Seq基因表达存在/没有电话。

BgeeCall包允许:

如果你发现一个错误或有任何问题BgeeCall请写一个错误在我们的报告GitHub问题经理

现在/没有调用是如何生成的

在Bgee RNA-Seq调用是使用一个阈值生成特定于每个RNA-Seq图书馆,计算使用读取映射到参考基因间区域。这是低于阈值与更通常使用一个任意一个基因并不视为表达(e。g log2 (TPM) = 1)。

Bgee数据库

Bgee是一个数据库来检索和比较在多个动物物种和基因表达模式产生来自多个数据类型(RNA-Seq, Affymetrix、原位杂交和EST数据)。它尤其是集成了29种RNA-Seq库。

参考基因间区域

参考基因间区域中定义Bgee RNA-Seq管道。候选基因间区域使用基因注释定义的数据。对于每一个物种,在所有可用的库,读取映射到这些基因间区域kallisto,以及基因。这种“基因间表达”deconvoluted区分参考基因间与非注释的基因,具有更高的表达式。参考基因间区域被定义为基因间区域在所有RNA-Seq库表达水平较低,相对于基因。这一步不考虑区域允许错误地认为是基因间因为潜在的基因注释基因间的质量问题。有关更多信息,请参考Bgee RNA-Seq管道

阈值的礼物/缺席

BgeeCall管道允许下载参考基因间区域造成Bgee团队的专业知识。此外BgeeCall允许使用这些参考基因间区域自动生成呼吁自己的RNA-Seq图书馆只要物种集成Bgee

默认情况下BgeeCall计算pValue定义调用。默认情况下基因是考虑现在如果pValue低于或等于0.05。更多的信息在这个pValue和潜在的其他方法生成调用是可用的在这里

安装

R:

如果(!requireNamespace(“BiocManager”,静静地=真正的))install.packages(“BiocManager”)::安装(“BgeeCall”)

如何使用BgeeCall包吗

BgeeCall高度可调。不犹豫地看看参考手册的精确descripton所有插槽4主要S4类(AbundanceMetadata、KallistoMetadata BgeeMetadata和UserMetadata)或所有可用的函数。BgeeCall需要kallisto运行。如果你没有kallisto安装你会发现更多的信息如何安装它在这里

加载包

快速启动

BgeeCall包很容易生成/缺失基因表达调用。代kallisto转录组指数可能需要大量的时间。作为这一步骤所需的时间取决于转录组的大小我们选择,作为一个例子,最小的转录组文件中所有物种上可用Bgee(秀丽隐杆线虫)。产生这些调用你将需要:

对于这个描述,我们创建了一个玩具fastq文件示例基于SRX099901 RNA-Seq库使用ShortReadR包

在这个示例中,我们使用了Bioconductor AnnotationHub加载转录组和基因注释但你可以加载他们从任何你想要的。

一旦你获得转录组,基因注释和RNA-Seq库,类的一个对象UserMetadata必须被创建。

注意,在BgeeCall可以指定注释的源。默认的来源是运用,但gencode文件也可以使用,通过指定的属性在班上gtf_source UserMetadata。

就是这样…你可以运行代现在/缺失基因表达

# >查询Bgee获得基因间发布的信息……# >注意:进口的丰度。h5通常比的丰度。tsv ' # >阅读文件read_tsv # > 1 # >总结丰富# >总结计数# >总结长度# >注意:进口的丰度。h5通常比的丰度。tsv ' # >阅读文件read_tsv # > 1 # >总结丰富# >总结计数# >总结长度# >生成礼物/表达式调用使用pValuecutoff缺席

每个分析生成5文件并返回路径每其中之一。

注意,在pValue方法(默认方法生成礼物/缺失基因表达调用)调用文件以及cutoff_info_file和TPM_distribution文件不包含扩展名的方法使用。另一方面,所有其他方法包含在文件名的方法的名字。

生成当前/没有要求多个RNA-Seq图书馆

你也力将感兴趣的生成/没有呼吁不同RNA-Seq库,可能在不同的物种,或使用的主要功能generate_presence_absence ()允许生成礼物/没有调用从UserMetadata对象也从一个数据帧或tsv文件根据函数的参数。请选择下面的三个参数:- userMetadata:允许生成礼物/没有要求一个使用类的一个对象userMetadata RNA-Seq库。
- userDataFrame:提供一个dataframe每一行对应一个礼物/没有调用的一代。它允许生成/没有调用不同的库,物种的转录组、基因组注释,等等- userFile:类似于userDataFrame除了tsv文件中存储的信息。这个文件的一个模板userMetadataTemplate.tsv可在包的根源。

列dataframe或tsv文件:

一旦文件已经填写可以生成表达式调用:

Parallized代礼物/没有呼吁一个集群

BgeeCall已经实现所有你需要生成调用集群上如果它使用粘排队系统很多。在前一节中描述的相同的TSV文件将被用作输入。除了优化选择BgeeCall在您的计算机上运行时,它是可能的修改如何粘提交作业很多。更多的信息可以在部分修改粘的选择很多为了优化并行调用将生成2步骤。
\逐条列记{生成数据在物种水平(e。与基因间序列,g trancriptome kallisto索引)

要求每个RNA-Seq库生成表达式

参考基因间序列

版本的参考基因间序列

不同版本的参考基因间序列是可用的。可以列出所有这些版本:

然后可以选择创建一个特定的版本BgeeMetadata对象。总是使用setter方法setIntergenicRelease ()当改变现有的释放BgeeMetadata对象。

默认情况下,参考基因间释放时使用BgeeMetadata对象是最后稳定创建一个由Bgee团队。

从Bgee核心参考基因间

核心参考基因间版本是由Bgee团队当很多新的RNA-Seq库手动策划了已经存在的物种和/或为新物种。这些版本是唯一版本号码(e。g“0.1”)。每一个版本包含参考基因间序列的物种列表。Bgee参考基因间序列生成使用Bgee团队专业知识。RNA-Seq图书馆手动策划健康和野生型。质量控制已经完成所有步骤的一代的这些序列。参考基因间序列从所有可能的选择(见基因间区域Bgee管道)。BgeeCall允许生成基因表达的电话Bgee参考基因间序列任何RNA-Seq库,只要这些序列生成的Bgee团队。tsv文件包含所有物种提供可用的参考基因间的当前版本在这里。这个文件还包含了一个列的数量描述RNA-Seq库用于生成参考每个物种的基因间序列。也有可能在R所有物种的Bgee参考基因间序列创建:

社区参考基因间

如果你想使用BgeeCall Bgee并不提供参考基因间序列的物种有可能创建它们自己和分享Bgee社区遵循的所有步骤本教程。不要忘记,RNA-Seq库是一个关键的生成精确的参考基因间序列。可能在R所有物种的参考基因间序列已经创建的社区使用以下代码

如果参考基因间序列的物种只能来自社区的释放感兴趣然后可以使用该版本生成你目前/没有电话

你自己参考基因间

如果您生成自己的参考基因间序列follwowing这tuorial但没有分享的时刻(不要忘记做…),也可以使用BgeeCall包含序列的一个文件。在这种情况下,你需要选择自定义发布和提供文件路径包含参考基因间序列:

生成当前/没有电话在转录水平(测试版)

kallisto生成系统及在转录水平。Bgee管道我们总结这个表达式在基因水平来计算我们目前/没有电话。在BgeeCall现在可以生成/没有调用在转录水平。小心使用此功能时,因为它没有被测试。产生这样的呼吁你只需要创建一个类的对象KallistoMetadata和编辑一个属性的值

如何使用kallisto格格不入

下载或重用自己的kallisto

默认情况下BgeeCall假设kallisto安装。如果kallisto不是安装在你的电脑上你可以:

  • 让BgeeCall自动下载kallisto的0.45版本。BgeeCall将用它来量化丰富的记录。它只会使用这个包,不影响你的潜力kallisto的现有版本。

编辑kallisto定量属性

默认情况下kallisto运行相同的参数,我们使用RNA-Seq Bgee管道:

  • 单头:“- t 180单- l - s 30偏见”
  • 成对的结束:“1 - t偏见”

可以修改它们,用你最喜欢的kallisto参数

选择两公里大小

默认情况下2索引2可以使用不同的公里大小BgeeCall默认公里大小的kallisto(31)用于库读取长度等于或大于50个基点。15公里大小用于库读取长度小于50个基点。我们决定不允许调整kmers大小因为索引的生成是耗时和索引生成需要更多时间用小kmers大小(< 15 bp)。然而可以修改读取长度允许的阈值选择违约和小公里大小。

注意,为图书馆阅读长度未指定的默认公里大小将使用(31)。

生成呼吁RNA-Seq运行的一个子集

默认情况下基因表达调用使用的所有运行生成RNA-Seq图书馆。可以只选择一个子集的运行。

运行时选择ID, ID和名称输出目录结合图书馆所有选定运行IDs。在我们的示例表达式调用将存储在目录中SRX099901_SRR350955_subset

修改/没有阈值

默认pValue方法

在默认情况下使用pValue BgeeCall生成调用的方法。为了生成每个基因pValue id我们计算数值测量,z分数,描述价值关系的意思。z分数衡量的标准进行偏离referent的意思是,在这种情况下,使用一组参考基因间区域,按照下面的公式:

\ [zScore = \压裂{log2 (tpmValue)——意味着(log2 (IntergenicTpmValues))} {sd (log2 (IntergenicTpmValues))} \]从z分数值,每个基因id,我们计算一个分布pValues使用以下公式:

\ [pValue = pnorm (zscore低。尾= FALSE) \]基因是考虑现在如果pValue低于或等于0.05。

默认情况下所有基因的丰度高于0(我。e有至少一个读取映射到成绩单)和pValue低于或等于0.05作为礼物。其他基因被称为缺席。可以修改pValue截止。编辑此值时要小心,因为它有一个很大的影响你现在的缺席。

基因间的阈值方法

表达式调用也可以使用一个阈值生成基因间序列称为礼物。这种方法被用来生成Bgee表达式调用直到释放14的公式:

\[\压裂{比例现在\ \ \基因间的引用\}\ \ \蛋白质编码\{比例呈现}= 0.05 \]有可能改变这一比率的截断值。

qValue阈值方法

使用qValue表达式调用也可以生成方法。在这种方法中,我们为每个密度区域进行线性插值,基因和参考基因间,紧随其后的是数值积分。然后为每一个独特的丰度值(TPM)集成和整个地区的规模。之后,每个基因的记者qValue id是计算公式:

\ [qValue = \压裂{基因间}{基因间+基因}\]# # #收集统计信息

BgeeCall用户能够收集所有提供的统计数据调用不同的方法表达基因在个体图书馆。提供这个信息表,所有cutoff_info_file_从每个图书馆和每个方法用于检索相应信息。

运行BgeeCall在安静模式

默认情况下BgeeCall写输出消息的所有部分的工作流程。可以不写任何消息通过改变槽详细UserMetadata对象的值。默认情况下,这个值设置为true,但可以改变它为假这条线:

不重新运行的部分管道

代的礼物/缺席表达式调用中完成几个步骤。有可能迫使overwritting现有中介文件:- overwrite_index: KallistoMetadata槽的对象。的值必须是一个逻辑。如果假(默认),索引生成步骤跳过如果一个索引已经存在。如果这是真的,kallisto指数将生成即使一个索引已经存在。- overwrite_quant: KallistoMetadata槽的对象。的值必须是一个逻辑。如果假(默认),kallisto量化步骤跳过如果量化文件已经存在。如果这是真的,kallisto量化步骤将运行即使量化文件已经存在。- overwrite_calls: KallistoMetadata槽的对象。 The value has to be a logical. If FALSE, the generation of present/absent calls is skiped if an index already exists. If TRUE (default), the generation of present/absent calls will be run even if calls were already generated.

忽略记录版本

它可以发生调用生成使用转录组或注释包含成绩单版本(数字点后记录id e。g ENSMUST00000082908.2)和注释或转录组没有成绩单版本。这是一个问题,当使用tximport变换丰富在转录水平在基因水平和丰富导致一个错误。

错误。local(对象,…):没有一个量化的成绩单tx2gene文件出现在第一列中。查看你都使用相同的注释。例子id(文件):[,……]实例id (tx2gene): [ENSMUST00000193812、ENSMUST00000082908 ENSMUST00000192857,…这有时会(不总是)是固定的使用“ignoreTxVersion”或“ignoreAfterBar”。电话:。打电话给……tximport - > summarizeToGene - > summarizeToGene - >。local停止执行

为了解决这个错误tximport实现一个选项称为ignoreTxVersion删除记录版本从转录组和注释。可以使用这个选项的值通过修改槽ignoreTxVersion KallistoMetadata (S4的默认错误)类。

用一个简单的树状目录生成调用

在默认情况下创建的树状目录BgeeCall是尽可能简单。结果使用路径将被创建working_path / intergenic_release all_results / libraryId。生成当前/缺失基因表达要求同一RNA-Seq库使用不同的转录组或注释版本使用这个树状将覆盖以前的结果。的UserMetadata类有一个属性simple_arborescence这是真正的默认情况下。如果,complexe树状目录包含注释和转录组的名称文件将被创建。这个复杂的树状将允许生成礼物/没有要求图书馆使用不同版本的转录组或annotaiton相同。

改变目录保存的电话

用于保存当前默认目录/没有调用的子目录UserMetadata@working_path。但是可以选择您想要调用的目录生成。

这个输出目录只包含结果生成RNA-Seq图书馆的水平。所有数据生成在物种水平仍然存储使用UserMetadata@working_path。他们仍然可以被重用从其他库生成调用相同的物种。

修改粘的选择很多

两个函数可用于运行BgeeCall粘队列系统很多。下面描述的参数可用于。

就业人数

充分利用集群是并行处理你的工作。默认情况下10个工作同时运行。可以修改这个数量的参数节点

不提交工作吗

为了能够检查文件自动生成运行的工作可以生成这些文件没有提交你们的工作。创建文件的更多信息可以在装饰图案的https://cran.r-project.org/web/packages/rslurm/vignettes/rslurm.html)(rslurm包)。

修改粘的选择很多

会自动创建一个bash scirpt运行工作。这个脚本包含默认粘选项很多(数组、cpus-per-task作业名、输出)。所有其他粘选项被sbatch很多命令可以更新b创建一个命名列表名称对应于长名字的选项(e。g不使用“p”但“分区”)。

将模块添加到您的环境

集群在一些节目不默认加载。模块参数允许加载sbatch脚本中添加一行。这个选项被添加模块实现,但有可能被用来sbatch脚本中添加任何自定义代码。

修改BgeeCall对象

默认情况下除了列的tsv文件中的所有其他插槽3 BgeeCall类将使用默认值。为了优化这些参数可以创建对象并将它们传递到粘功能很多。在生成这些对象时必须保持相同的名称如以下示例。

合并多个库

BgeeCall包中我们有可能执行调用表达式通过合并/结合多个库,属于一个特定的条件。为了使用这个功能,调用单个图书馆需要通过使用假定值或核反应能量方法,因为这个方法提供\ (gene_i \)一个定量指标。

如果表达基因的电话,在个人图书馆,是使用pValue方法做的,那么合并将通过使用Benjamini &业务方法。

这个方法一组pValues收集,为每一个\ (gene_i \)\ (n \)库,然后参照p。调整值计算。合并打电话表达基因,我们验证如果其中一个p。调整值低那么截止(用户)提供的阈值,如果是,\ (gene_i \)归类为存在的条件,否则不在。

merging_libraries(userFile =“路径/ / userFile.tsv”,方法=“黑洞”,条件=“species_id”,截止=0.05,outDir =“路径/ / output_directory /”)

另一方面,如果使用的方法叫表达基因,在个人图书馆,qValue,然后使用逆合并将由罗斯福修正,这意味着通过记者公式:

\ [FDR_{逆}= (1 - ((1 q) ^{(\压裂{1}{n})})) \]在哪里\(问\)是理想的截止(阈值由用户提供)和\ (n \)是图书馆的数量。

#合并库merging_libraries(userFile =“路径/ / userFile.tsv”,方法=“fdr_inverse”,条件=“species_id”,截止=0.05,outDir =“路径/ / output_directory /”)

叫表达基因的合并条件,我们确认如果其中一个库有一个那么FDR_inverse核反应能量低,如果是的,那么\ (gene_i \)归类为存在,否则被归为缺席。

参数和用户文件执行合并

在merging_libraries()函数,不同的参数对referent的需要传递参数:userFile,方式,条件,截止或outDir。

userFile论证路径的一个文本文件包含所有的信息目标库合并。这个文件应该包含一个基本列称为:specied_id为了运行merging_libraries()函数。这一列不应该是空的,还一个重要的要求是,你应该至少2库处理,因为这是一个融合的过程。

如果你想合并/结合图书馆更详细的条件你需要记者额外的列添加到您的用户文件。注意参数条件识别以下参数:specied_id anatEntity、devStage,性和应变。这意味着你的表列也应该有相同的ID。列的顺序不相关,当用户文件结构,以及参数的顺序传递到条件参数。

总是推荐使用“-”而不是空行一些信息缺失时,作为代表的BgeeCall /本月/ userMetadataTemplate_merging.tsv

论证方法允许指定的方法将用于调用合并库中的表达,像之前描述的那样,条件参数将允许指定感兴趣的特定条件,条件参数允许针对记者库合并发生的地方。

更限制截止可以应用于电话表达基因合并图书馆的目标条件下,截断参数可以修改,否则默认是0.05。

#会话信息

sessionInfo()# > R版本4.2.0 (2022-04-22)# >平台:x86_64-pc-linux-gnu(64位)# >下运行:Ubuntu 20.04.4 LTS# ># >矩阵产品:违约# >布拉斯特区:/home/biocbuild/bbs - 3.15 - bioc / R / lib / libRblas.so# > LAPACK: /home/biocbuild/bbs - 3.15 - bioc / R / lib / libRlapack.so# ># >语言环境:# > [1]LC_CTYPE = en_US。utf - 8 LC_NUMERIC = C# >[3]而= en_GB LC_COLLATE = C# > [5]LC_MONETARY = en_US。utf - 8 LC_MESSAGES = en_US.UTF-8# > [7]LC_PAPER = en_US。utf - 8 LC_NAME = C# > [9]LC_ADDRESS C = C LC_TELEPHONE =# > [11]LC_MEASUREMENT = en_US。utf - 8 LC_IDENTIFICATION = C# ># >附加基本包:# > [1]stats4统计图形grDevices跑龙套的数据集的方法# >[8]的基础# ># >其他附加包:# > [1]rtracklayer_1.56.0 GenomicRanges_1.48.0 GenomeInfoDb_1.32.2# > [4]IRanges_2.30.0 S4Vectors_0.34.0 BiocGenerics_0.42.0# > [7]BgeeCall_1.12.1# ># >加载通过名称空间(而不是附加):# > [1]bitops_1.0-7 matrixStats_0.62.0# > [3]bit64_4.0.5 insight_0.17.1# > [5]filelock_1.0.2 progress_1.2.2# > [7]httr_1.4.3 tools_4.2.0# > [9]bslib_0.3.1 utf8_1.2.2# > [11]R6_2.5.1 sjlabelled_1.2.0# > [13]DBI_1.1.2 rhdf5filters_1.8.0# > [15]withr_2.5.0 tidyselect_1.1.2# > [17]prettyunits_1.1.1 bit_4.0.4# > [19]curl_4.3.2 compiler_4.2.0# > [21]cli_3.3.0 Biobase_2.56.0# > [23]xml2_1.3.3 DelayedArray_0.22.0# > [25]sass_0.4.1 readr_2.1.2# > [27]rappdirs_0.3.3 stringr_1.4.0# > [29]digest_0.6.29 Rsamtools_2.12.0# > [31]rmarkdown_2.14 XVector_0.36.0# > [33]pkgconfig_2.0.3 htmltools_0.5.2# > [35]MatrixGenerics_1.8.0 BSgenome_1.64.0# > [37]dbplyr_2.1.1 fastmap_1.1.0# > [39]rlang_1.0.2 RSQLite_2.2.14# > [41]shiny_1.7.1 jquerylib_0.1.4# > [43]BiocIO_1.6.0 generics_0.1.2# > [45]jsonlite_1.8.0 vroom_1.5.7# > [47]BiocParallel_1.30.2 dplyr_1.0.9# > [49]rcurl_1.98 - 1.6 magrittr_2.0.3# > [51]GenomeInfoDbData_1.2.8 Matrix_1.4-1# > [53]Rcpp_1.0.8.3 Rhdf5lib_1.18.2# > [55]fansi_1.0.3 lifecycle_1.0.1# > [57]stringi_1.7.6 yaml_2.3.5# > [59]SummarizedExperiment_1.26.1 zlibbioc_1.42.0# > [61]rhdf5_2.40.0 BiocFileCache_2.4.0# > [63]AnnotationHub_3.4.0 grid_4.2.0# > [65]rslurm_0.6.1 blob_1.2.3# > [67]promises_1.2.0.1 parallel_4.2.0# > [69]sjmisc_2.8.9 crayon_1.5.1# > [71]lattice_0.20-45 Biostrings_2.64.0# > [73]GenomicFeatures_1.48.1 hms_1.1.1# > [75]KEGGREST_1.36.0 knitr_1.39# > [77]pillar_1.7.0 rjson_0.2.21# > [79]biomaRt_2.52.0 xml_3.99 - 0.9# > [81]glue_1.6.2 BiocVersion_3.15.2# > [83]evaluate_0.15 BiocManager_1.30.17# > [85]data.table_1.14.2 tzdb_0.3.0# > [87]httpuv_1.6.5 png_0.1-7# > [89]vctrs_0.4.1 purrr_0.3.4# > [91]assertthat_0.2.1 cachem_1.0.6# > [93]xfun_0.31 mime_0.12# > [95]xtable_1.8-4 restfulr_0.0.13# > [97]later_1.3.0 tibble_3.1.7# > [99]GenomicAlignments_1.32.0 AnnotationDbi_1.58.0# > [101]memoise_2.0.1 tximport_1.24.0# > [103]interactiveDisplayBase_1.34.0 ellipsis_0.3.2