使用supersigs

图书馆(supersigs)

介绍

supersigs包实现了提出的监管方法艾弗里,et al。找到签名(“SuperSigs”)。在这个故事中,我们将介绍如何进行预处理数据和运行方法supersigs

数据预处理

VCF文件

如果你有一个VCF文件,您可以使用readVcfVariantAnnotation包在VCF文件读VCF对象。应该存储为每个病人的年龄年龄colData你的VCF对象。然后使用process_vcf将VCF对象转换成一个简化的数据帧格式,将进一步解释道示例数据

如果你没有一个VCF文件,跳过示例数据

示例数据

该方法使用单碱基突变exomic癌症的数据样本。具体地说,它需要每个样本数据的突变,这些突变的位置,所有患者的年龄。这些数据可以表示成一系列突变。下面是一个示例数据集(存储和访问supersigsR包)。如果你有一个VCF文件,阅读VCF文件节,看看如何处理你的数据为以下格式。

转换数据

一旦你读入数据,您将需要将其转换为一个数据帧的功能在运行核心功能之前。这包括2个步骤:

  1. 首先,我们假设突变都是一样的,不管它的链发生。例如,这意味着C > G > T突变突变被认为是一样的,我们会将所有G > C > T突变被表示为一个突变。

  2. 因为使用的功能是建立在三核苷酸功能(例如C > T),这将需要匹配你的参考基因组的突变来确定每一个突变的侧翼基地是什么。在我们的示例中,我们将使用hg19参考基因组。

这两个步骤完成make_matrix函数。注意,使用make_matrix函数需要安装和加载一个参考基因组(BSgenome.Hsapiens.UCSC.hg19BSgenome.Hsapiens.UCSC.hg38支持)。

我们应用make_matrix改变我们的示例数据集(example_dt)到一个数据帧的三核苷酸突变(input_dt),这是所需的格式supersigsR包。在每一行input_dt对应于不同的病人和列中的值突变的数量为每个三核苷酸突变。

得到你的签名

对数据应用监督方法,运行get_signature函数。函数有两个参数:一个输入数据帧数据因素(如。因素=“吸烟”)。数据是一个数据帧,下面的列:

将VCF文件转换成这种格式的过程是覆盖着数据预处理。为一个例子数据下面的打印。

suppressPackageStartupMessages({图书馆(dplyr)})#添加IndVar列input_dt < -input_dt% > %变异(IndVar =c(1,1,1,0,0))% > %搬迁(IndVar)(input_dt)# > #宠物猫:5×99# > IndVar sample_id年龄(T > G…¹C (T >…²G (C >…³G (C > G…⁴G (C > G…⁵[C > G…⁶C [C >…⁷# > <双> <双> <双> <双> <双> <双> <双> <双> <双> <双>50 # > 1 1 1 1 1 1 1 1 0 055 # > 2 1 2 0 0 0 0 0 1 1# > 3 1 72年1 1 0 0 0 0 053 # > 4 0 4 0 0 0 0 0 1 148 # > 5 0 5 0 1 1 0 0 0 0# > #…89多变量:C (T > C) G的<双>、‘T [C >] C <双>、‘T [C >] T <双>,# > # C (T > C)的<双>,“C (T > C) C”<双>、‘T (T >) C <双>,“C [C > G] G”<双>,# > # G (C > T)的<双>,“[C >] T”<双>,“C [C >] C”<双>,“G (T > G) T”<双>,# > # ' C [C > T] C ' <双>、‘T [C > T] C <双>,“[C > T] C”<双>,“G (C > T) C”<双>,# > # ' C [C > T] T ' <双>、‘T [C > T] T <双>,“[C > T] T”<双>,“G (C > T) T”<双>,# > # ' C [C > T] <双>、‘T [C > T] <双>,“[C > T]“<双>,“C [C > T] G”<双>,# > # ' T [C > T] G ' <双> [C > T] G的<双>,“G (C > T) G”<双>,“[C >] C”<双>,…

一旦你有了正确的数据格式,适用get_signature让你的数据集SuperSig,这是一个S4对象包含四个槽:

set.seed(1)supersig < -get_signature(data =input_dt,系数=“吸烟”)# >开始特性工程……/ 4 # >开始旨在选择特性和15内折叠……# >…测试内部折叠1# >…测试内部折叠2# >…测试内部折3# >…测试内部褶皱4# >…测试内部折5# >…测试内部折6# >…测试内部7折# >…测试内部8折# >…测试内部9折# >…测试内部折10# >…测试内部褶皱11# >…测试内部褶皱12# >…测试内部褶皱13# >…测试内部褶皱14# >…测试内部褶皱15supersig# >签名:# > X11 # > -0.0007475199# >特点:# > X1美元# >到F12 F13 F14 F117 F119 F120 F118# >”(C >)““C > C”“> [C] G”“C > T”“(C > G)”“(C > G) C”“C > G G”“C > G T”# > F132 F133 F134 F135 F148 F149 F150 F151# >”(C > T)““C > T C”“C > T G”“C > T T”“(T >)”“C (T >)”“(T >) G”“T (T >)”# > F163 F164 F165 F166 F179 F180 F181 F15# >”(T > C)““C (T > C)”“(T > C) G”“T (T > C)”“(T > G)”“C (T > G)”“(T > G) G”“C [C >]”# > F16 F17 F18 F121 F122 F123 F124 F136# >“C C > C”“C C > G”“C C > T”“C [C > G]”“C C > G C”“C C > G G”“C C > G T”“C [C > T]”# > F137 F138 F139 F152 F153 F154 F167 F168# >“C C > T C”“C C > T G”“C C > T T”“C (T >) C”“C (T >) G”“T C (T >)”“C (T > C)”“C C (T > C)”# > F169 F170 F182 F183 F184 F185 F19 F110# >“C (T > C) G”“T C (T > C)”“C (T > G)”“C (T > G) C”“C (T > G) G”“T C (T > G)”“G (C >)”“G (C >) C”# > F111 F112 F125 F126 F127 F140 F141 F142# >“G (C >) G”“G C > T”“G (C > G)”“G (C > G) C”“G (C > G) T”“G (C > T)”“G C > T C”“G (C > T) G”# > F143 F155 F156 F157 F158 F171 F172 F173# >“G C > T T”“G (T >)”“G T > C”“G (T >) G”“G T > T”“G (T > C)”“G T > C C”“G (T > C) G”# > F174 F186 F187 F188 F189 F113 F114 F115# >“G T > C T”“G (T > G)”“G (T > G) C”“G (T > G) G”“G (T > G) T”“T [C >]““T C > C”“T C > G”# > F116 F128 F129 F130 F131 F144 F145 F146# >“T C > T”“T [C > G]““T [C > G] C”“T C > G G”“T C > G T”“T [C > T]““T C > T C”“T C > T G”# > F147 F159 F160 F161 F162 F175 F176 F177# >“T C > T T”“T (T >)““T (T >) C”“T (T >) G”“T (T >)”“T (T > C)““T (T > C) C”“T (T > C) G”# > F178 F190 F191 F192 F193# >“T T (T > C)”“T (T > G)““T (T > G) C”“T (T > G) G”“T (T > G)”# ># >模型:# >美元分对数# ># >调用:glm(公式= IndVar ~,家庭=二项(),数据= x)# ># >系数:# >(拦截)X1# > 7.118 - -86.601# ># >自由度:4(即零);3剩余# >零偏差:6.73# >剩余异常:4.279 AIC: 8.279

获得更可判断的签名表示,你可以把三核苷酸功能在每个功能使用simplify_signature函数(一个选项来使用IUPAC标签)。这是有用的签名让情节。

< -特点simplify_signature(对象=supersig,iupac =)features_iupac < -simplify_signature(对象=supersig,iupac =真正的)
图书馆(ggplot2)data.frame(特点=的名字(features_iupac),差异=features_iupac)% > %ggplot(aes(x =的特性,y =差异)+geom_col()+theme_minimal()

使用一个签名

应用SuperSig一个新的数据集,使用predict_signature函数。这个函数返回的新的数据集与列功能的签名和一个分数列预测分类得分。

下面是一个例子SuperSig我们在前一节中训练。我们重用input_dt作为我们的“新数据”进行说明,但在实践中,您将使用一个不同的数据集被用来训练签名(如测试集)。

newdata =predict_signature(supersignewdata =input_dt,系数=“吸烟”)newdata% > %选择(X1,得分)# > #宠物猫:5×2# > X1得分# > <双> <双>1 # > 0.04 - 0.975# > 2 0.0909 - 0.3203 # > 0.0417 - 0.971# > 4 0.0943 - 0.259# > 5 0.0833 - 0.475

此外,您可能希望使用一个SuperSigpre-trained TCGA数据。这是包的访问supersig_ls,列表的每个元素是一个SuperSig。有67 SuperSigs训练在各种组织和因素。下面的名字打印(格式化”因素(组织)”)。详细讨论了有关这些训练的签名ELife艾弗里,et al . (2021)

的名字(supersig_ls)# >[1]“年龄(LAML)”"AGE (BLCA)" "AGE (LUAD)" "AGE (LGG)"# >[5]“年龄(HNSCC)”"AGE (KIRC)" "AGE (KIRP)" "AGE (KICH)"# >[9]“年龄(LIHC)”"AGE (STAD)" "AGE (THCA)" "AGE (UVM)"# >[13]“年龄(SKCM)”"AGE (ACC)" "AGE (CHOL)" "AGE (GBM)"# >[17]“年龄(塞斯克)”"AGE (COAD)" "AGE (PCPG)" "AGE (PAAD)"# >[21]“年龄”(马)"AGE (ESCSQ)" "AGE (ESCAD)" "AGE (UCEC)"# >[25]“年龄(UCS)”"AGE (BRCA)" "AGE (SARC)" "AGE (TGCT)"# >[29]“年龄(THYM)”"AGE (OV)" "SMOKING (BLCA)" "SMOKING (LUAD)"# >[33]“吸烟(HNSCC)”"SMOKING (KIRP)" "SMOKING (PAAD)" "SMOKING (ESCSQ)"# >[37]“吸烟(ESCAD)”"SMOKING (CESC)" "POLE (UCEC)" "POLE (STAD)"# >[41]“磁极(COAD)”"POLE (BRCA)" "MSI (UCEC)" "MSI (STAD)"# > [45]“MSI (COAD)”"BRCA (BRCA)" "BRCA (OV)" "UV* (SKCM)"# > [49]”POLD (UCEC)”"POLD (STAD)" "MGMT (GBM)" "MGMT (LGG)"# > [53]”IDH (LGG)”"IDH (GBM)" "BMI (UCEC)" "BMI (KIRP)"# > [57]“BMI(光电子能谱)”"BMI (COAD)" "ALCOHOL (HNSCC)" "ALCOHOL (ESCA)"# >[61]“酒精(LIHC)”"HepB (LIHC)" "HepC (LIHC)" "AAcid (BLCA)"# > [65]“Asb *(内消旋)”"APOPEC (CESC)" "APOPEC (KIRC)"
#使用pre-trained签名newdata =predict_signature(supersig_ls [[“吸烟(LUAD)”]],newdata =input_dt,系数=“吸烟”)newdata% > %选择(IndVar X1, X2, X3,分数)# > #宠物猫:5×5# > IndVar (X1, X2) X3得分# > <双> <双> <双> <双> <双># > 1 1 0 0 0.305 0.02# > 2 1 0 0 0.303 0.01820.280 # > 3 1 0 0 0# > 4 0 0 0 0.304 0.0189# > 5 0 0 0 0.333 0.0417

部分监督签名

在某些情况下,您可能感兴趣的消除监督签名的贡献从你的数据帧的突变来调整为特定因素。例如,假设我们感兴趣的解密签名吸烟肺癌。我们可以先删除老化签名的贡献在肺癌,吸烟之前学习监督或无监督方法的签名。我们将讨论在ELife艾弗里,et al . (2021)这样做可以带来更好的性能。

adjusted_dt < -partial_signature(data =input_dt,对象=supersig)(adjusted_dt)# > #宠物猫:5×99# > IndVar sample_id年龄(T > G…¹C (T >…²G (C >…³G (C > G…⁴G (C > G…⁵[C > G…⁶C [C >…⁷# > <双> <双> <双> <双> <双> <双> <双> <双> <双> <双>50 # > 1 1 1 1 1 1.04 1.04 0.0374 0.037455 # > 2 1 2 0 0 0 0.0411 1.04 1.04 0.0411# > 3 72 3 1 1 0 0.0538 0.0538 0.0538 0.053853 # > 4 0 4 0 0 0 0.0396 1.04 1.04 0.039648 # > 5 0 5 0 0 0.0359 0.0359 0.0359 1.04 1# > #…89多变量:C (T > C) G的<双>、‘T [C >] C <双>、‘T [C >] T <双>,# > # C (T > C)的<双>,“C (T > C) C”<双>、‘T (T >) C <双>,“C [C > G] G”<双>,# > # G (C > T)的<双>,“[C >] T”<双>,“C [C >] C”<双>,“G (T > G) T”<双>,# > # ' C [C > T] C ' <双>、‘T [C > T] C <双>,“[C > T] C”<双>,“G (C > T) C”<双>,# > # ' C [C > T] T ' <双>、‘T [C > T] T <双>,“[C > T] T”<双>,“G (C > T) T”<双>,# > # ' C [C > T] <双>、‘T [C > T] <双>,“[C > T]“<双>,“C [C > T] G”<双>,# > # ' T [C > T] G ' <双> [C > T] G的<双>,“G (C > T) G”<双>,“[C >] C”<双>,…

会话信息

sessionInfo()# > R版本4.2.1(2022-06-23)准备# >平台:x86_64-pc-linux-gnu(64位)# >下运行:Ubuntu 20.04.5 LTS# ># >矩阵产品:违约# >布拉斯特区:/home/biocbuild/bbs - 3.16 - bioc / R / lib / libRblas.so# > LAPACK: /home/biocbuild/bbs - 3.16 - 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]ggplot2_3.3.6 dplyr_1.0.10# > [3]BSgenome.Hsapiens.UCSC.hg19_1.4.3 BSgenome_1.66.0# > [5]rtracklayer_1.58.0 VariantAnnotation_1.44.0# > [7]Rsamtools_2.14.0 Biostrings_2.66.0# > [9]XVector_0.38.0 SummarizedExperiment_1.28.0# > [11]Biobase_2.58.0 GenomicRanges_1.50.0# > [13]GenomeInfoDb_1.34.0 IRanges_2.32.0# > [15]S4Vectors_0.36.0 MatrixGenerics_1.10.0# > [17]matrixStats_0.62.0 BiocGenerics_0.44.0# > [19]supersigs_1.6.0# ># >加载通过名称空间(而不是附加):# > [1]colorspace_2.0-3 rjson_0.2.21 ellipsis_0.3.2# > [4]class_7.3-20 farver_2.1.1 listenv_0.8.0# > [7]furrr_0.3.1 bit64_4.0.5 AnnotationDbi_1.60.0# > [10]prodlim_2019.11.13 fansi_1.0.3 lubridate_1.8.0# > [13]xml2_1.3.3 codetools_0.2-18 splines_4.2.1# > [16]cachem_1.0.6 knitr_1.40 jsonlite_1.8.3# > [19]pROC_1.18.0 caret_6.0 - 93 dbplyr_2.2.1# > [22]png_0.1-7 compiler_4.2.1 httr_1.4.4# > [25]assertthat_0.2.1 Matrix_1.5-1 fastmap_1.1.0# > [28]cli_3.4.1 htmltools_0.5.3 prettyunits_1.1.1# > [31]tools_4.2.1 gtable_0.3.1 glue_1.6.2# > [34]GenomeInfoDbData_1.2.9 reshape2_1.4.4 rappdirs_0.3.3# > [37]Rcpp_1.0.9 jquerylib_0.1.4 vctrs_0.5.0# > [40]nlme_3.1 - 160 iterators_1.0.14 timeDate_4021.106# > [43]gower_1.0.0 xfun_0.34 stringr_1.4.1# > [46]globals_0.16.1 lifecycle_1.0.3 restfulr_0.0.15# > [49]xml_3.99 - 0.12 future_1.28.0 zlibbioc_1.44.0# > [52]mass_7.3 - 58.1 scales_1.2.1 ipred_0.9-13# > [55]hms_1.1.2 parallel_4.2.1 curl_4.3.3# > [58]yaml_2.3.6 memoise_2.0.1 sass_0.4.2# > [61]biomaRt_2.54.0 rpart_4.1.19 stringi_1.7.8# > [64]RSQLite_2.2.18 highr_0.9 BiocIO_1.8.0# > [67]foreach_1.5.2 filelock_1.0.2 GenomicFeatures_1.50.0# > [70]hardhat_1.2.0 BiocParallel_1.32.0 lava_1.7.0# > [73]rlang_1.0.6 pkgconfig_2.0.3 bitops_1.0-7# > [76]rsample_1.1.0 evaluate_0.17 lattice_0.20-45# > [79]purrr_0.3.5 labeling_0.4.2 GenomicAlignments_1.34.0# > [82]recipes_1.0.2 bit_4.0.4 tidyselect_1.2.0# > [85]parallelly_1.32.1 plyr_1.8.7 magrittr_2.0.3# > [88]R6_2.5.1 generics_0.1.3 DelayedArray_0.24.0# > [91]DBI_1.1.3 pillar_1.8.1 withr_2.5.0# > [94]survival_3.4-0 KEGGREST_1.38.0 rcurl_1.98 - 1.9# > [97]nnet_7.3-18 tibble_3.1.8 future.apply_1.9.1# > [100]crayon_1.5.2 utf8_1.2.2 BiocFileCache_2.6.0# > [103]rmarkdown_2.17 progress_1.2.2 grid_4.2.1# > [106]data.table_1.14.4 blob_1.2.3 ModelMetrics_1.2.2.2# > [109]digest_0.6.30 tidyr_1.2.1 munsell_0.5.0# > [112]bslib_0.4.0