{"id":60980,"date":"2024-10-11T11:08:12","date_gmt":"2024-10-11T03:08:12","guid":{"rendered":"http:\/\/www.biocloudservice.com\/wordpress\/?p=60980"},"modified":"2024-10-11T11:08:12","modified_gmt":"2024-10-11T03:08:12","slug":"%e4%b8%80%e6%96%87%e6%8e%8c%e6%8f%a1rna%e4%bf%ae%e9%a5%b0%e6%a0%b8%e5%bf%83%ef%bc%81rnamodr-ml%ef%bc%8cai%e9%a9%b1%e5%8a%a8%e8%ae%a9%e4%bd%a0%e7%9a%84%e7%a0%94%e7%a9%b6%e4%ba%8b%e5%8d%8a%e5%8a%9f","status":"publish","type":"post","link":"http:\/\/www.biocloudservice.com\/wordpress\/?p=60980","title":{"rendered":"\u4e00\u6587\u638c\u63e1RNA\u4fee\u9970\u6838\u5fc3\uff01RNAmodR.ML\uff0cAI\u9a71\u52a8\u8ba9\u4f60\u7684\u7814\u7a76\u4e8b\u534a\u529f\u500d\uff01"},"content":{"rendered":"\n<p>\u563f\u670b\u53cb\u4eec\uff0c\u6b22\u8fce\u6765\u5230\u751f\u7269\u4fe1\u606f\u5b66\u7684\u7cbe\u5f69\u4e16\u754c\uff01\u9762\u5bf9RNA\u6570\u636e\u5206\u6790\u4e2d\u7684\u4e00\u4e2a\u5e38\u89c1\u6311\u6218\u2014\u2014\u5728rRNA\u548ctRNA\u4e2d\u8bc6\u522b\u4fee\u9970\u6838\u82f7\u9178\u7684\u8eab\u4efd\u548c\u4f4d\u7f6e\uff0c\u4f60\u662f\u5426\u6709\u675f\u624b\u65e0\u7b56\u7684\u65f6\u5019\uff1f\u522b\u62c5\u5fc3\uff0c\u5c0f\u5e08\u59b9\u4eca\u5929\u5c31\u5e26\u4f60\u63a2\u7d22RNAmodR.ML\u8fd9\u4e2a\u5f3a\u5927\u7684R\u5305\uff0c\u5b83\u8fd0\u7528\u524d\u6cbf\u7684\u673a\u5668\u5b66\u4e60\u6280\u672f\uff0c\u4e3a\u6211\u4eec\u63ed\u793a\u8f6c\u5f55\u540e\u4fee\u9970\u7684\u590d\u6742\u6a21\u5f0f\u3002<\/p>\n\n\n\n<p>\u5c3d\u7ba1\u8f6c\u5f55\u540e\u4fee\u9970\u5e7f\u6cdb\u5b58\u5728\u4e8erRNA\u548ctRNA\u4e2d\uff0c\u4f46\u8981\u786e\u5b9a\u4fee\u9970\u6838\u82f7\u9178\u7684\u5177\u4f53\u8eab\u4efd\u548c\u4f4d\u7f6e\u5374\u975e\u6613\u4e8b\u3002\u4f20\u7edf\u65b9\u6cd5\uff0c\u5982\u9006\u8f6c\u5f55\uff08RT\uff09\u8fc7\u7a0b\u4e2d\u7684\u5f15\u7269\u5ef6\u4f38\uff0c\u867d\u7136\u80fd\u591f\u63ed\u793a\u67d0\u4e9b\u4fee\u9970\u7684\u7aef\u502a\uff0c\u4f46\u9762\u5bf9\u66f4\u6df1\u5c42\u6b21\u7684\u5206\u6790\u5c31\u663e\u5f97\u529b\u4e0d\u4ece\u5fc3\u3002\u5e78\u8fd0\u7684\u662f\uff0c\u968f\u7740\u9ad8\u901a\u91cf\u6d4b\u5e8f\u6280\u672f\u7684\u53d1\u5c55\uff0cRNAmodR.ML\u5e94\u65f6\u800c\u751f\uff0c\u5b83\u901a\u8fc7\u8bad\u7ec3\u673a\u5668\u5b66\u4e60\u6a21\u578b\u6765\u8bc6\u522b\u90a3\u4e9b\u96be\u4ee5\u6349\u6478\u7684\u4fee\u9970\u6a21\u5f0f\uff0c\u4e3aRNA\u4fee\u9970\u7814\u7a76\u5e26\u6765\u4e86\u65b0\u7684\u53ef\u80fd\u3002RNAmodR.ML\u662f\u7531Felix G.M. Ernst\u548cDenis L.J. Lafontaine\u57282024\u5e74\u63d0\u51fa\u7684\u673a\u5668\u5b66\u4e60\u6a21\u578b\u7684\u96c6\u5927\u6210\u8005\u3002\u5b83\u4e0d\u4ec5\u80fd\u591f\u5e2e\u52a9\u6211\u4eec\u53d1\u73b0\u90a3\u4e9b\u4f20\u7edf\u65b9\u6cd5\u96be\u4ee5\u6349\u6478\u7684\u4fee\u9970\uff0c\u8fd8\u80fd\u9884\u6d4b\u672a\u77e5\u7684\u4fee\u9970\u4f4d\u70b9\uff0c\u6781\u5927\u63d0\u5347\u6211\u4eec\u7684\u7814\u7a76\u6548\u7387\u3002<\/p>\n\n\n\n<p><strong>\u8bf7\u6ce8\u610f\uff0cRNAmodR.ML\u5728\u5904\u7406\u5927\u578b\u6570\u636e\u96c6\u65f6\u53ef\u80fd\u9700\u8981\u8f83\u5927\u7684\u5185\u5b58\uff0c\u56e0\u6b64<\/strong><strong>\u5c0f\u5e08\u59b9<\/strong><strong>\u5efa\u8bae\u4f7f\u7528\u670d\u52a1\u5668\u8fdb\u884c\u5206\u6790\u3002\u5982\u679c\u60a8\u9700\u8981\u6027\u4ef7\u6bd4\u9ad8\u7684\u670d\u52a1\u5668\u79df\u8d41\u670d\u52a1\uff0c\u6b22\u8fce\u8054\u7cfb<\/strong><strong>\u5c0f\u5e08\u59b9<\/strong><strong>\u3002<\/strong><strong><\/strong><\/p>\n\n\n\n<p>\u51c6\u5907\u597d\u4e86\u5417\uff1f\u63a5\u4e0b\u6765\uff0c\u5c0f\u5e08\u59b9\u5c06\u624b\u628a\u624b\u5e26\u4f60\u4ece\u6570\u636e\u9884\u5904\u7406\u5230\u6267\u884c\u4fee\u9970\u68c0\u6d4b\uff0c\u4e00\u6b65\u6b65\u9886\u7565RNAmodR.ML\u7684\u9b45\u529b\u3002<strong>\u5982\u679c\u4f60\u5728\u5206\u6790\u7684\u65c5\u9014\u4e2d\u9047\u5230\u4efb\u4f55\u96be\u9898\uff0c\u522b\u62c5\u5fc3\uff0c<\/strong><strong>\u5c0f\u5e08\u59b9<\/strong><strong>\u968f\u65f6\u5728\u8fd9\u91cc\u4e3a\u4f60\u89e3\u7b54\u7591\u60d1\u3002<\/strong>\u8ba9\u6211\u4eec\u643a\u624b\u63ed\u5f00RNA\u4fee\u9970\u7684\u795e\u79d8\u9762\u7eb1\uff0c\u89e3\u7801\u751f\u547d\u7684\u5965\u79d8\u5427\uff01<\/p>\n\n\n\n<p>\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u5b89\u88c5RNAmodR.ML\u5305\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u8fdb\u884c\u5b89\u88c5\uff1a<\/p>\n\n\n\n<p>if (!require(&#8220;BiocManager&#8221;, quietly = TRUE))<\/p>\n\n\n\n<p>&nbsp;&nbsp;install.packages(&#8220;BiocManager&#8221;)<\/p>\n\n\n\n<p>BiocManager::install(&#8220;RNAmodR.ML&#8221;)<\/p>\n\n\n\n<p>BiocManager::install(&#8220;RNAmodR.Data&#8221;)<\/p>\n\n\n\n<p>\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u52a0\u8f7dRNAmodR.ML\u5305\uff1a<\/p>\n\n\n\n<p>library(rtracklayer)<\/p>\n\n\n\n<p>library(GenomicRanges)<\/p>\n\n\n\n<p>library(RNAmodR.ML)<\/p>\n\n\n\n<p>library(RNAmodR.Data)<\/p>\n\n\n\n<p>\u73b0\u5728\u8ba9\u6211\u4eec\u6765\u804a\u804aRNAmodR.ML\u5305\u91cc\u7684\u5927\u660e\u661f\u2014\u2014ModifierML\u7c7b\u3002\u8fd9\u4e2a\u7c7b\u5728RNAmodR\u5305\u7684\u57fa\u7840\u4e0a\u505a\u4e86\u4e2a\u5347\u7ea7\uff0c\u589e\u52a0\u4e86\u4e00\u4e2a\u53ebmlModel\u7684\u65b0\u7a7a\u95f4\uff0c\u8fd8\u6709\u4e00\u5bf9\u513f\u7ba1\u7406\u8fd9\u4e2a\u7a7a\u95f4\u7684\u52a9\u624b\uff1agetMLModel\u548csetMLModel\u3002\u522b\u5fd8\u4e86\uff0c\u8fd8\u6709\u4e2a\u7279\u6b8a\u7684\u51fd\u6570useMLModel\uff0c\u5b83\u80fd\u5728\u6211\u4eec\u9700\u8981\u7684\u65f6\u5019\u88ab\u53ec\u5524\u51fa\u6765\u3002<\/p>\n\n\n\n<p>\u73b0\u5728\uff0c\u4e0d\u7ba1\u4f60\u7528\u7684\u662f\u54ea\u79cd\u673a\u5668\u5b66\u4e60\u6a21\u578b\uff0cModifierMLModel\u90fd\u80fd\u641e\u5b9a\u3002\u6bd4\u5982\uff0c\u5982\u679c\u4f60\u559c\u6b22\u7528ranger\u5305\uff08Wright\u548cZiegler\uff0c2017\uff09\uff0c\u90a3\u5c31\u6709ModifierMLranger\uff1b\u5982\u679c\u4f60\u504f\u597dkeras\u5305\uff08Allaire\u548cChollet\uff0c2018\uff09\uff0c\u90a3\u5c31\u6709ModifierMLkeras\u3002<\/p>\n\n\n\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4f1a\u5e26\u4f60\u4e00\u6b65\u6b65\u4f53\u9a8c\u5982\u4f55\u7528RNAmodR.ML\u5305\u6765\u6253\u9020\u4f60\u81ea\u5df1\u7684\u673a\u5668\u5b66\u4e60\u6a21\u578b\u3002\u4ece\u51c6\u5907\u6570\u636e\u5230\u8bad\u7ec3\u6a21\u578b\uff0c\u6bcf\u4e2a\u6b65\u9aa4\u6211\u90fd\u4f1a\u8be6\u7ec6\u8bb2\u89e3\uff0c\u4fdd\u8bc1\u8ba9\u4f60\u5bf9RNAmodR.ML\u5305\u7684\u5f3a\u608d\u529f\u80fd\u4e86\u5982\u6307\u638c\u3002\u522b\u62c5\u5fc3\uff0c\u8ddf\u7740\u5c0f\u5e08\u59b9\uff0c\u6211\u4eec\u4e00\u8d77\u4e58\u98ce\u7834\u6d6a\uff01<\/p>\n\n\n\n<p><strong>\u4e00\u3001\u521b\u5efa<\/strong><strong>\u65b0\u7684Modifier<\/strong><strong>\u7c7b<\/strong><strong><\/strong><\/p>\n\n\n\n<p>\u5728\u8fd9\u4e2a\u6559\u7a0b\u4e2d\uff0c\u6211\u4eec\u8981\u6765\u70b9\u5b9e\u9645\u7684\u6311\u6218\uff0c\u6bd4\u5982\u5728AlkAnilineSeq\u6570\u636e\u4e2d\u68c0\u6d4bD\u4f4d\u7f6e\u3002\u9996\u5148\uff0c\u6211\u4eec\u8981\u5b9a\u4e49\u4e00\u4e2a\u7279\u5b9a\u7684ModifierML\u7c7b\u6765\u52a0\u8f7dpileup\u548ccoverage\u6570\u636e\u3002\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u4f1a\u7528\u5230\u4e13\u95e8\u9488\u5bf9RNA\u7684RNAModifierML\u7c7b\u3002<\/p>\n\n\n\n<p>setClass(&#8220;ModMLExample&#8221;,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contains = c(&#8220;RNAModifierML&#8221;),<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prototype = list(mod = c(&#8220;D&#8221;),<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;score = &#8220;score&#8221;,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataType = c(&#8220;PileupSequenceData&#8221;,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;CoverageSequenceData&#8221;),<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mlModel = character(0)))<\/p>\n\n\n\n<p># constructor function for ModMLExample<\/p>\n\n\n\n<p>ModMLExample &lt;- function(x, annotation = NA, sequences = NA, seqinfo = NA,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8230;){<\/p>\n\n\n\n<p>&nbsp;&nbsp;RNAmodR:::Modifier(&#8220;ModMLExample&#8221;, x = x, annotation = annotation,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sequences = sequences, seqinfo = seqinfo, &#8230;)<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>setClass(&#8220;ModSetMLExample&#8221;,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contains = &#8220;ModifierSet&#8221;,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prototype = list(elementType = &#8220;ModMLExample&#8221;))<\/p>\n\n\n\n<p># constructor function for ModSetMLExample<\/p>\n\n\n\n<p>ModSetMLExample &lt;- function(x, annotation = NA, sequences = NA, seqinfo = NA,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8230;){<\/p>\n\n\n\n<p>&nbsp;&nbsp;RNAmodR:::ModifierSet(&#8220;ModMLExample&#8221;, x, annotation = annotation,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sequences = sequences, seqinfo = seqinfo, &#8230;)<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>\u73b0\u5728\uff0c\u56e0\u4e3amlModel\u8fd9\u4e2a\u4f4d\u7f6e\u73b0\u5728\u662f\u7a7a\u7684\uff0c\u6240\u4ee5\u521b\u5efa\u8fd9\u4e2a\u5bf9\u8c61\u7684\u65f6\u5019\uff0c\u5e76\u4e0d\u4f1a\u81ea\u52a8\u5f00\u59cb\u5bfb\u627e\u4fee\u9970\u3002\u4f46\u662f\uff0c\u5b83\u4f1a\u6309\u7167\u6211\u4eec\u60f3\u8981\u7684\u683c\u5f0f\u6765\u6574\u7406\u6570\u636e\u3002\u8bb0\u4f4f\uff0caggregate_example\u51fd\u6570\u53ea\u662f\u4e2a\u793a\u4f8b\uff0c\u6570\u636e\u7684\u805a\u5408\u5176\u5b9e\u662f\u6a21\u578b\u6784\u5efa\u7684\u4e00\u90e8\u5206\u3002<\/p>\n\n\n\n<p>setMethod(<\/p>\n\n\n\n<p>&nbsp;&nbsp;f = &#8220;aggregateData&#8221;,<\/p>\n\n\n\n<p>&nbsp;&nbsp;signature = signature(x = &#8220;ModMLExample&#8221;),<\/p>\n\n\n\n<p>&nbsp;&nbsp;definition =<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;function(x){<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aggregate_example(x)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n\n\n\n<p>)<\/p>\n\n\n\n<ul>\n<li><strong>\u83b7\u53d6\u8bad\u7ec3\u6570\u636e<\/strong><strong><\/strong><\/li>\n<\/ul>\n\n\n\n<p>\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u4ee3\u7801\u6765\u4e0b\u8f7d\u9700\u8981\u7684\u6570\u636e\uff1a<\/p>\n\n\n\n<p>proxy &lt;- httr::use_proxy(Sys.getenv(&#8216;http_proxy&#8217;))<\/p>\n\n\n\n<p>httr::set_config(proxy)<\/p>\n\n\n\n<p>ExperimentHub::setExperimentHubOption(&#8220;PROXY&#8221;, proxy)<\/p>\n\n\n\n<p>annotation &lt;- GFF3File(RNAmodR.Data.example.gff3())<\/p>\n\n\n\n<p>sequences &lt;- RNAmodR.Data.example.fasta()<\/p>\n\n\n\n<p>files &lt;- list(&#8220;wt&#8221; = c(treated = RNAmodR.Data.example.bam.1(),<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treated = RNAmodR.Data.example.bam.2(),<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treated = RNAmodR.Data.example.bam.3()))<\/p>\n\n\n\n<p>\u63a5\u7740\uff0c\u6211\u4eec\u53ea\u9700\u8981\u521b\u5efa\u4e00\u4e2aModMLExample\u5bf9\u8c61\uff0c\u7136\u540e\u8ba9\u5b83\u5f00\u59cb\u5de5\u4f5c\u3002<\/p>\n\n\n\n<p>me &lt;- &nbsp;ModMLExample(files[[1]], annotation, sequences)<\/p>\n\n\n\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u9700\u8981\u52a0\u8f7d\u6216\u521b\u5efa\u4e00\u4e9b\u5df2\u77e5\u88ab\u4fee\u9970\u7684\u4f4d\u7f6e\u5750\u6807\uff0c\u540c\u65f6\uff0c\u6211\u4eec\u4e5f\u9700\u8981\u90a3\u4e9b\u5df2\u77e5\u6ca1\u6709\u88ab\u4fee\u9970\u7684\u4f4d\u7f6e\u5750\u6807\u3002<\/p>\n\n\n\n<p>data(&#8220;dmod&#8221;,package = &#8220;RNAmodR.ML&#8221;)<\/p>\n\n\n\n<p># we just select the next U position from known positions<\/p>\n\n\n\n<p>nextUPos &lt;- function(gr){<\/p>\n\n\n\n<p>&nbsp;&nbsp;nextU &lt;- lapply(seq.int(1L,2L),<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function(i){<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subseq &lt;- subseq(sequences(me)[dmod$Parent], start(dmod)+3L)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos &lt;- start(dmod) + 2L +<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vapply(strsplit(as.character(subseq),&#8221;&#8221;),<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function(y){which(y == &#8220;U&#8221;)[i]},integer(1))<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans &lt;- dmod<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ranges(ans) &lt;- IRanges(start = pos, width = 1L)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})<\/p>\n\n\n\n<p>&nbsp;&nbsp;nextU &lt;- do.call(c,nextU)<\/p>\n\n\n\n<p>&nbsp;&nbsp;nextU$mod &lt;- NULL<\/p>\n\n\n\n<p>&nbsp;&nbsp;unique(nextU)<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>nondmod &lt;- nextUPos(dmod)<\/p>\n\n\n\n<p>nondmod &lt;- nondmod[!(nondmod %in% dmod)]<\/p>\n\n\n\n<p>coord &lt;- unique(c(dmod,nondmod))<\/p>\n\n\n\n<p>coord &lt;- coord[order(as.integer(coord$Parent))]<\/p>\n\n\n\n<p>\u6709\u4e86\u8fd9\u4e9b\u5750\u6807\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u4f7f\u7528trainingData\u51fd\u6570\uff0c\u628aModMLExample\u5bf9\u8c61\u805a\u5408\u7684\u6570\u636e\u63d0\u53d6\u51fa\u4e00\u4e2a\u8bad\u7ec3\u6570\u636e\u96c6\u3002<\/p>\n\n\n\n<p>trainingData &lt;- trainingData(me,coord)<\/p>\n\n\n\n<p>trainingData &lt;- unlist(trainingData, use.names = FALSE)<\/p>\n\n\n\n<p># converting logical labels to integer<\/p>\n\n\n\n<p>trainingData$labels &lt;- as.integer(trainingData$labels)<\/p>\n\n\n\n<p>\u7b80\u5355\u6765\u8bf4\uff0c\u8fd9\u4e2a\u8fc7\u7a0b\u5c31\u50cf\u662f\u5728\u51c6\u5907\u70f9\u996a\u7684\u98df\u6750\u3002\u6211\u4eec\u5148\u5b9a\u4e49\u597d\u6211\u4eec\u7684\u201c\u98df\u6750\u201d\u2014\u2014\u4e5f\u5c31\u662f\u90a3\u4e9b\u6570\u636e\u5750\u6807\uff0c\u7136\u540e\u7528\u8fd9\u4e9b\u201c\u98df\u6750\u201d\u6765\u5236\u4f5c\u6211\u4eec\u7684\u201c\u5927\u9910\u201d\u2014\u2014\u8bad\u7ec3\u6570\u636e\u96c6\u3002<\/p>\n\n\n\n<ul>\n<li><strong>\u6a21\u578b<\/strong><strong>\u7684\u8bad\u7ec3<\/strong><strong><\/strong><\/li>\n<\/ul>\n\n\n\n<p>\u8ddf\u7740\u5c0f\u5e08\u59b9\uff0c\u6211\u4eec\u76f4\u63a5\u6765\u770b\u6700\u7cbe\u5f69\u7684\u90e8\u5206\u2014\u2014\u8bad\u7ec3\u6a21\u578b\uff01\u4ec5\u9700\u4e00\u884c\u4ee3\u7801\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5b9e\u73b0\u7528ranger\u5305\u63d0\u4f9b\u7684\u529f\u80fd\u6765\u8bad\u7ec3\u4e00\u4e2a\u968f\u673a\u68ee\u6797\u6a21\u578b\u3002<\/p>\n\n\n\n<p>library(ranger)<\/p>\n\n\n\n<p>model &lt;- ranger(labels ~ ., data.frame(trainingData))<\/p>\n\n\n\n<p><strong>\u56db\u3001<\/strong><strong>\u521b\u5efa\u4e00\u4e2a\u65b0\u7684ModifierMLModel<\/strong><strong><\/strong><\/p>\n\n\n\n<p>\u73b0\u5728\uff0c\u6211\u4eec\u5df2\u7ecf\u8bad\u7ec3\u597d\u4e86\u6a21\u578b\uff0c\u63a5\u4e0b\u6765\u5c31\u662f\u7528\u5b83\u6765\u521b\u5efa\u4e00\u4e2a\u65b0\u7684ModifierMLModel\u7c7b\u548c\u5bf9\u8c61\u3002<\/p>\n\n\n\n<p>setClass(&#8220;ModifierMLexample&#8221;,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contains = c(&#8220;ModifierMLranger&#8221;),<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prototype = list(model = model))<\/p>\n\n\n\n<p>ModifierMLexample &lt;- function(&#8230;){<\/p>\n\n\n\n<p>&nbsp;&nbsp;new(&#8220;ModifierMLexample&#8221;)<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>mlmodel &lt;- ModifierMLexample()<\/p>\n\n\n\n<p>\u4e3a\u4e86\u8ba9\u8fd9\u4e2a\u6a21\u578b\u80fd\u5728ModifierMLModel\u7c7b\u4e2d\u53d1\u6325\u4f5c\u7528\uff0c\u6211\u4eec\u8fd8\u9700\u8981\u5b9a\u4e49\u4e00\u4e2a\u8bbf\u95ee\u5668\u6765\u83b7\u53d6\u6a21\u578b\u505a\u51fa\u7684\u9884\u6d4b\u3002\u8fd9\u4e2a\u8bbf\u95ee\u5668\u53eb\u505auseModel\uff0c\u800c\u4e14\u5728\u4e0a\u9762\u63d0\u5230\u7684\u201c\u4f7f\u7528RNAmodR.ML\u201d\u90a3\u90e8\u5206\uff0c\u5df2\u7ecf\u4e3a\u6211\u4eec\u9884\u5b9a\u4e49\u597d\u4e86\u3002<\/p>\n\n\n\n<p>getMethod(&#8220;useModel&#8221;, c(&#8220;ModifierMLranger&#8221;,&#8221;ModifierML&#8221;))<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"554\" height=\"405\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615695343_A4F763D5-E2E3-4c72-A405-142D14F8EF9E.png?resize=554%2C405\" alt=\"\" class=\"wp-image-60981\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615695343_A4F763D5-E2E3-4c72-A405-142D14F8EF9E.png?w=554 554w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615695343_A4F763D5-E2E3-4c72-A405-142D14F8EF9E.png?resize=300%2C219 300w\" sizes=\"(max-width: 554px) 100vw, 554px\" data-recalc-dims=\"1\" \/><\/figure>\n\n\n\n<p>\u5982\u679c\u8fd9\u4e2a\u51fd\u6570\u7684\u7ed3\u679c\u5bf9\u67d0\u4e2a\u7279\u5b9a\u7684\u6a21\u578b\u4e0d\u9002\u7528\uff0c\u6ca1\u5173\u7cfb\uff0c\u4f60\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u9700\u8981\u6765\u91cd\u65b0\u5b9a\u4e49\u5b83\u3002RNAmodR.ML\u5b9a\u4e49\u7684\u8fd9\u4e2a\u51fd\u6570\u4f1a\u8fd4\u56de\u4e00\u4e2aNumericList\uff0c\u8fd9\u4e2a\u5217\u8868\u4f1a\u548cModifierML\u5bf9\u8c61\u7684\u805a\u5408\u6570\u636e\u4e00\u8d77\u63d0\u4f9b\u3002<\/p>\n\n\n\n<p><strong>\u4e94\u3001\u6a21\u578b\u7684\u4f7f\u7528<\/strong><strong><\/strong><\/p>\n\n\n\n<p>\u73b0\u5728\uff0c\u6211\u4eec\u5df2\u7ecf\u751f\u6210\u4e86ModifierMLexample\u8fd9\u4e2a\u5305\u88c5\u5668\uff0c\u63a5\u4e0b\u6765\u6211\u4eec\u53ef\u4ee5\u7528setMLModel\u51fd\u6570\u628a\u5b83\u8bbe\u7f6e\u5230ModifierML\u5bf9\u8c61\u4e0a\u3002\u4e0d\u8fc7\uff0c\u5982\u679c\u6a21\u578b\u5df2\u7ecf\u88ab\u4fdd\u5b58\u4e3a\u5305\u7684\u4e00\u90e8\u5206\uff0c\u90a3\u4e48\u8fd9\u4e2a\u6b65\u9aa4\u5c31\u4e0d\u662f\u5fc5\u987b\u7684\u4e86\uff0c\u56e0\u4e3a\u5b83\u53ef\u4ee5\u4f5c\u4e3a\u7c7b\u5b9a\u4e49\u7684\u4e00\u90e8\u5206\u3002<\/p>\n\n\n\n<p>setMLModel(me) &lt;- mlmodel<\/p>\n\n\n\n<p>\u4e3a\u4e86\u8ba9\u9884\u6d4b\u6570\u636e\u80fd\u591f\u88ab\u4f7f\u7528\uff0c\u6211\u4eec\u9700\u8981\u5b9e\u73b0\u53e6\u4e00\u4e2a\u51fd\u6570\u6765\u4fdd\u5b58\u9884\u6d4b\u7ed3\u679c\u5230\u805a\u5408\u6570\u636e\u4e2d\u3002\u8fd9\u4e2a\u51fd\u6570\u5c31\u53eb\u505auseMLModel\u3002<\/p>\n\n\n\n<p>setMethod(f = &#8220;useMLModel&#8221;,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signature = signature(x = &#8220;ModMLExample&#8221;),<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;definition =<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function(x){<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;predictions &lt;- useModel(getMLModel(x), x)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data &lt;- getAggregateData(x)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unlisted_data &lt;- unlist(data, use.names = FALSE)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unlisted_data$score &lt;- unlist(predictions)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x@aggregate &lt;- relist(unlisted_data,data)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n\n\n\n<p>)<\/p>\n\n\n\n<p>\u901a\u8fc7\u91cd\u65b0\u8fd0\u884c\u805a\u5408\u51fd\u6570\u5e76\u5f3a\u5236\u66f4\u65b0\u6570\u636e\uff0c\u9884\u6d4b\u5c31\u4f1a\u88ab\u6267\u884c\u5e76\u7528\u6765\u586b\u5145\u5206\u6570\u5217\uff0c\u5c31\u50cf\u4e0a\u9762\u63d0\u5230\u7684\u90a3\u6837\u3002<\/p>\n\n\n\n<p>me &lt;- aggregate(me, force = TRUE)<\/p>\n\n\n\n<p><strong>\u516d\u3001\u6a21\u578b\u7684\u8bc4\u4f30<\/strong><strong><\/strong><\/p>\n\n\n\n<p>\u5728\u6784\u5efa\u6a21\u578b\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u901a\u5e38\u4f1a\u5305\u542b\u67d0\u79cd\u5f62\u5f0f\u7684\u6027\u80fd\u8bc4\u4f30\u3002\u9664\u4e86\u8fd9\u4e9b\u7279\u5b9a\u4e8e\u6a21\u578b\u7684\u6d4b\u91cf\u65b9\u6cd5\uff0cRNAmodR.ML\u8fd8\u4eceRNAmodR\u5305\u4e2d\u7ee7\u627f\u4e86ROCR\u5305\u7684\u529f\u80fd\u3002\u8fd9\u6837\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5728\u6574\u4e2a\u8bad\u7ec3\u96c6\u6216\u4efb\u4f55\u5750\u6807\u4e0a\u8bc4\u4f30\u6a21\u578b\u7684\u6027\u80fd\u4e86\u3002<\/p>\n\n\n\n<p>plotROC(me, dmod)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"295\" height=\"258\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615735446_5343B9B9-D0C6-40c7-8ABE-82CBC9456C3D.png?resize=295%2C258\" alt=\"\" class=\"wp-image-60982\" data-recalc-dims=\"1\"\/><\/figure>\n\n\n\n<ul>\n<li><strong>ModifierML\u7c7b\u7684\u4f7f\u7528<\/strong><strong><\/strong><\/li>\n<\/ul>\n\n\n\n<p>\u56e0\u4e3a\u6211\u4eec\u6253\u7b97\u7528ModifierML\u5bf9\u8c61\u6765\u68c0\u6d4b\u4fee\u9970\uff0c\u6211\u4eec\u9700\u8981\u5b9a\u4e49\u4e00\u4e2afindMod\u51fd\u6570\u3002\u6839\u636e\u6027\u80fd\u4fe1\u606f\uff0c\u6211\u4eec\u8bbe\u5b9a\u4e86\u9884\u6d4b\u5206\u6570\u4e3a0.8\u7684\u9608\u503c\uff0c\u7528\u6765\u68c0\u6d4bD\u4fee\u9970\u3002\u5728\u4e0b\u9762\u7684\u4f8b\u5b50\u91cc\uff0c\u8fd9\u4e2a\u9608\u503c\u88ab\u786c\u7f16\u7801\u8fdb\u4e86find_mod_example\u51fd\u6570\uff0c\u4f46\u4e5f\u53ef\u4ee5\u7528\u8bbe\u7f6e\u51fd\u6570\u6765\u5b9e\u73b0\u3002<\/p>\n\n\n\n<p>setMethod( f = &#8220;findMod&#8221;,signature = signature(x = &#8220;ModMLExample&#8221;),definition =function(x){find_mod_example(x, 25L)})<\/p>\n\n\n\n<p>\u73b0\u5728\uff0c\u6211\u4eec\u53ef\u4ee5\u91cd\u65b0\u5b9a\u4e49ModMLExample\u7c7b\uff0c\u5e76\u4e14mlModel\u69fd\u4f4d\u5df2\u7ecf\u8bbe\u7f6e\u4e3aModifierMLexample\u7c7b\u3002\u8fd9\u6837\u4e00\u6765\uff0cModMLExample\u7c7b\u5c31\u5927\u529f\u544a\u6210\u4e86\u3002<\/p>\n\n\n\n<p>rm(me)<\/p>\n\n\n\n<p>setClass(&#8220;ModMLExample&#8221;,contains = c(&#8220;RNAModifierML&#8221;),prototype = list(mod = c(&#8220;D&#8221;),score = &#8220;score&#8221;,dataType = c(&#8220;PileupSequenceData&#8221;, &#8220;CoverageSequenceData&#8221;), mlModel = &#8220;ModifierMLexample&#8221;))<\/p>\n\n\n\n<p>me &lt;- &nbsp;ModMLExample(files[[1]], annotation, sequences)<\/p>\n\n\n\n<p>\u68c0\u6d4b\u5230\u7684\u4fee\u9970\u53ef\u4ee5\u901a\u8fc7modifications\u51fd\u6570\u6765\u8bbf\u95ee\u3002<\/p>\n\n\n\n<p>mod &lt;- modifications(me)<\/p>\n\n\n\n<p>mod &lt;- split(mod, factor(mod$Parent,levels = unique(mod$Parent)))<\/p>\n\n\n\n<p>mod<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"412\" height=\"301\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615789358_1728615775806_0018B50F-596A-4fa7-BAF9-295C478D6C50.png?resize=412%2C301\" alt=\"\" class=\"wp-image-60983\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615789358_1728615775806_0018B50F-596A-4fa7-BAF9-295C478D6C50.png?w=412 412w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615789358_1728615775806_0018B50F-596A-4fa7-BAF9-295C478D6C50.png?resize=300%2C219 300w\" sizes=\"(max-width: 412px) 100vw, 412px\" data-recalc-dims=\"1\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"554\" height=\"304\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615871532_6EF62494-C6B1-49ec-A5EE-805628437B78.png?resize=554%2C304\" alt=\"\" class=\"wp-image-60984\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615871532_6EF62494-C6B1-49ec-A5EE-805628437B78.png?w=554 554w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615871532_6EF62494-C6B1-49ec-A5EE-805628437B78.png?resize=300%2C165 300w\" sizes=\"(max-width: 554px) 100vw, 554px\" data-recalc-dims=\"1\" \/><\/figure>\n\n\n\n<p><strong>\u516b\u3001\u6a21\u578b\u7684\u4f18\u5316<\/strong><strong><\/strong><\/p>\n\n\n\n<p>\u6709\u4e9b\u68c0\u6d4b\u5230\u7684\u4fee\u9970\u770b\u8d77\u6765\u662f\u9760\u8c31\u7684\uff0c\u4f46\u4e5f\u6709\u4e00\u4e9b\u4f4d\u7f6e\u4f3c\u4e4e\u662f\u566a\u58f0\u3002<\/p>\n\n\n\n<p>options(ucscChromosomeNames=FALSE)<\/p>\n\n\n\n<p>plotDataByCoord(sequenceData(me),mod[[&#8220;4&#8221;]][1])<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"365\" height=\"290\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615951348_8AB171A8-E610-49de-AE71-964FC33FD0AD.png?resize=365%2C290\" alt=\"\" class=\"wp-image-60985\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615951348_8AB171A8-E610-49de-AE71-964FC33FD0AD.png?w=365 365w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615951348_8AB171A8-E610-49de-AE71-964FC33FD0AD.png?resize=300%2C238 300w\" sizes=\"(max-width: 365px) 100vw, 365px\" data-recalc-dims=\"1\" \/><\/figure>\n\n\n\n<p>\u522b\u62c5\u5fc3\uff0c\u6211\u4eec\u6709\u51e0\u79cd\u65b9\u6cd5\u53ef\u4ee5\u4f18\u5316\u6a21\u578b\uff1a\u6211\u4eec\u53ef\u4ee5\u63d0\u9ad8\u9884\u6d4b\u5206\u6570\u7684\u9608\u503c\uff0c\u6bd4\u5982\u63d0\u9ad8\u52300.9\uff0c\u6216\u8005\u53ef\u4ee5\u628a\u8fd9\u4e9b\u4f4d\u7f6e\u4f5c\u4e3a\u672a\u4fee\u9970\u7684\u4f4d\u7f6e\u52a0\u5165\u5230\u53e6\u4e00\u4e2a\u8bad\u7ec3\u6570\u636e\u96c6\u4e2d\u91cd\u65b0\u8bad\u7ec3\u6a21\u578b\u3002\u6b64\u5916\uff0c\u901a\u8fc7\u63d0\u9ad8\u6d4b\u5e8f\u6df1\u5ea6\uff0c\u6211\u4eec\u901a\u5e38\u4e5f\u80fd\u6539\u5584\u8bad\u7ec3\u6570\u636e\u7684\u8d28\u91cf\u3002<\/p>\n\n\n\n<p>nonValidMod &lt;- mod[c(&#8220;1&#8243;,&#8221;4&#8221;)]<\/p>\n\n\n\n<p>nonValidMod[[&#8220;18&#8221;]] &lt;- nonValidMod[[&#8220;18&#8221;]][2]<\/p>\n\n\n\n<p>nonValidMod[[&#8220;26&#8221;]] &lt;- nonValidMod[[&#8220;26&#8221;]][2]<\/p>\n\n\n\n<p>nonValidMod &lt;- unlist(nonValidMod)<\/p>\n\n\n\n<p>nonValidMod &lt;- nonValidMod[,&#8221;Parent&#8221;]<\/p>\n\n\n\n<p>coord &lt;- unique(c(dmod,nondmod,nonValidMod))<\/p>\n\n\n\n<p>coord &lt;- coord[order(as.integer(coord$Parent))]<\/p>\n\n\n\n<p>\u6bd4\u5982\u8bf4\uff0c\u6211\u4eec\u53ef\u4ee5\u8bad\u7ec3\u4e00\u4e2a\u65b0\u7684\u6a21\u578b\uff0c\u628a\u4e4b\u524d\u6a21\u578b\u9519\u8bef\u8bc6\u522b\u7684\u4f4d\u7f6e\u4f5c\u4e3a\u672a\u4fee\u9970\u7684\u4f4d\u7f6e\u5305\u542b\u8fdb\u6765\u3002<\/p>\n\n\n\n<p>trainingData &lt;- trainingData(me,coord)<\/p>\n\n\n\n<p>trainingData &lt;- unlist(trainingData, use.names = FALSE)<\/p>\n\n\n\n<p>trainingData$labels &lt;- as.integer(trainingData$labels)<\/p>\n\n\n\n<p>model2 &lt;- ranger(labels ~ ., data.frame(trainingData), num.trees = 2000)<\/p>\n\n\n\n<p>setClass(&#8220;ModifierMLexample2&#8221;,contains = c(&#8220;ModifierMLranger&#8221;),prototype = list(model = model2))<\/p>\n\n\n\n<p>ModifierMLexample2 &lt;- function(&#8230;){new(&#8220;ModifierMLexample2&#8221;)}<\/p>\n\n\n\n<p>mlmodel2 &lt;- ModifierMLexample2()<\/p>\n\n\n\n<p>me2 &lt;- me<\/p>\n\n\n\n<p>setMLModel(me2) &lt;- mlmodel2<\/p>\n\n\n\n<p>me2 &lt;- aggregate(me2, force = TRUE)<\/p>\n\n\n\n<p>\u66f4\u65b0\u4e86ModifierMLexample\u7c7b\u5e76\u91cd\u65b0\u805a\u5408\u6570\u636e\u540e\uff0c\u6a21\u578b\u7684\u6027\u80fd\u770b\u8d77\u6765\u6709\u6240\u63d0\u9ad8\uff0c\u5e76\u4e14\u5728\u68c0\u6d4bD\u4fee\u9970\u65b9\u9762\u5f97\u5230\u4e86\u66f4\u597d\u7684\u7ed3\u679c\u3002<\/p>\n\n\n\n<p>plotROC(me2, dmod, score=&#8221;score&#8221;)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"398\" height=\"316\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615989554_D34EA203-BFA5-459e-A522-F5FC9EF4E355.png?resize=398%2C316\" alt=\"\" class=\"wp-image-60986\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615989554_D34EA203-BFA5-459e-A522-F5FC9EF4E355.png?w=398 398w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728615989554_D34EA203-BFA5-459e-A522-F5FC9EF4E355.png?resize=300%2C238 300w\" sizes=\"(max-width: 398px) 100vw, 398px\" data-recalc-dims=\"1\" \/><\/figure>\n\n\n\n<p>\u6709\u4e9b\u4f4d\u7f6e\u4e0d\u518d\u88ab\u68c0\u6d4b\u5230\uff0c\u8fd9\u8868\u660e\u5f53\u524d\u6a21\u578b\u8fd8\u4e0d\u662f\u6700\u4f18\u89e3\uff0c\u6b63\u5982\u4e0a\u6587\u5efa\u8bae\u7684\uff0c\u6211\u4eec\u8fd8\u53ef\u4ee5\u8fdb\u4e00\u6b65\u6539\u8fdb\u5176\u4ed6\u56e0\u7d20\u3002<\/p>\n\n\n\n<p>setMethod(f = &#8220;findMod&#8221;,signature = signature(x = &#8220;ModMLExample&#8221;),definition =function(x){find_mod_example(x, 25L)})<\/p>\n\n\n\n<p>me2 &lt;- modify(me2, force = TRUE)<\/p>\n\n\n\n<p>modifications(me2)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"554\" height=\"444\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728616022020_4A925D26-1FF0-44f7-9274-5BFFD5DA2BE6.png?resize=554%2C444\" alt=\"\" class=\"wp-image-60987\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728616022020_4A925D26-1FF0-44f7-9274-5BFFD5DA2BE6.png?w=554 554w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728616022020_4A925D26-1FF0-44f7-9274-5BFFD5DA2BE6.png?resize=300%2C240 300w\" sizes=\"(max-width: 554px) 100vw, 554px\" data-recalc-dims=\"1\" \/><\/figure>\n\n\n\n<p>\u9664\u4e86\u8bad\u7ec3\u5355\u4e2a\u6a21\u578b\uff0c\u6211\u4eec\u8fd8\u53ef\u4ee5\u8bad\u7ec3\u591a\u4e2a\u6a21\u578b\u5e76\u5c06\u5b83\u4eec\u7ec4\u5408\u6210\u4e00\u4e2aModifierSet\u3002<\/p>\n\n\n\n<p>mse &lt;- ModSetMLExample(list(one = me, two = me2))<\/p>\n\n\n\n<p>\u7136\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u5206\u6790\u591a\u4e2a\u6a21\u578b\u7684\u6574\u4f53\u6027\u80fd\uff0c\u6216\u8005\u6bd4\u8f83\u5b83\u4eec\u7684\u4e2a\u4f53\u6027\u80fd\u3002<\/p>\n\n\n\n<p>plotROC(mse, dmod, score= &#8220;score&#8221;,<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;plot.args = list(avg = &#8220;threshold&#8221;, spread.estimate = &#8220;stderror&#8221;))<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"172\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/10\/1728616052898_0C0E97C1-5AF6-41cb-AB0A-9FA693756534.png?resize=216%2C172\" alt=\"\" class=\"wp-image-60988\" data-recalc-dims=\"1\"\/><\/figure>\n\n\n\n<p>\u5982\u679c\u8bad\u7ec3\u4e86\u591a\u4e2a\u6a21\u578b\uff0c\u800c\u4e14\u6bcf\u4e2a\u6a21\u578b\u90fd\u63d0\u4f9b\u4e86\u6709\u7528\u7684\u4fe1\u606f\uff0c\u90a3\u4e48\u8fd9\u4e9b\u6a21\u578b\u53ef\u4ee5\u88ab\u6253\u5305\u8fdb\u4e00\u4e2aModifierMLModel\u7c7b\u4e2d\uff0c\u4ee5\u7ec4\u5408\u591a\u4e2a\u6a21\u578b\u7684\u8f93\u51fa\u3002\u6bd4\u5982\uff0c\u4e0a\u9762\u63d0\u5230\u7684useMLModel\u548c\/\u6216useModel\u51fd\u6570\u53ef\u80fd\u9700\u8981\u88ab\u4fee\u6539\uff0c\u4ee5\u63d0\u4f9b\u68c0\u6d4b\u4fee\u9970\u7684\u4e00\u4e2a\u6216\u591a\u4e2a\u5206\u6570\u3002<\/p>\n\n\n\n<p>\u4f19\u4f34\u4eec\uff0c\u8ddf\u7740\u5c0f\u5e08\u59b9\u7684\u5f15\u5bfc\uff0c\u6211\u4eec\u5df2\u7ecf\u987a\u5229\u5b8c\u6210\u4e86RNAmodR.ML\u5305\u7684\u63a2\u7d22\u4e4b\u65c5\u3002\u73b0\u5728\uff0c\u662f\u65f6\u5019\u8f6e\u5230\u4f60\u4eec\u5927\u663e\u8eab\u624b\u4e86\u3002\u52a8\u624b\u4f7f\u7528RNAmodR.ML\u5305\u6765\u5206\u6790\u90a3\u4e9b\u590d\u6742\u7684\u57fa\u56e0\u8868\u8fbe\u6570\u636e\u5427\uff0c\u65e0\u8bba\u662f\u68c0\u6d4bRNA\u5206\u5b50\u4e0a\u7684\u4fee\u9970\u4f4d\u70b9\uff0c\u8fd8\u662f\u6784\u5efa\u81ea\u5df1\u7684\u673a\u5668\u5b66\u4e60\u6a21\u578b\uff0cRNAmodR.ML\u90fd\u80fd\u52a9\u4f60\u4e00\u81c2\u4e4b\u529b\u3002<\/p>\n\n\n\n<p>\u8bb0\u5f97\u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\uff0c\u5145\u5206\u5229\u7528RNAmodR.ML\u63d0\u4f9b\u7684\u5404\u9879\u529f\u80fd\uff0c\u6bd4\u5982\u81ea\u5b9a\u4e49ModifierML\u7c7b\uff0c\u6216\u8005\u4f7f\u7528\u4e0d\u540c\u7684\u673a\u5668\u5b66\u4e60\u6a21\u578b\u8fdb\u884c\u9884\u6d4b\u3002\u540c\u65f6\uff0c\u522b\u5fd8\u4e86\u8fd0\u884c\u6027\u80fd\u8bc4\u4f30\uff0c\u8fd9\u4f1a\u8ba9\u4f60\u5bf9\u6a21\u578b\u7684\u51c6\u786e\u6027\u548c\u53ef\u9760\u6027\u6709\u66f4\u76f4\u89c2\u7684\u4e86\u89e3\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u4f60\u5728\u5206\u6790\u7684\u9053\u8def\u4e0a\u9047\u5230\u4efb\u4f55\u969c\u788d\uff0c\u6216\u8005\u60f3\u8981\u8fdb\u4e00\u6b65\u4f18\u5316\u6a21\u578b\uff0c\u968f\u65f6\u56de\u6765\u627e\u5c0f\u5e08\u59b9\u3002\u6211\u4eec\u4e00\u8d77\u8ba8\u8bba\uff0c\u4e00\u8d77\u8fdb\u6b65\u3002\u73b0\u5728\uff0c\u5c31\u8ba9\u6211\u4eec\u5e26\u7740\u65b0\u5b66\u7684\u6280\u80fd\uff0c\u52c7\u6562\u5730\u8fc8\u5411\u751f\u7269\u4fe1\u606f\u5b66\u7684\u65b0\u9ad8\u5cf0\u5427\uff01<\/p>\n\n\n\n<p>\u65e0\u8bba\u4f60\u662f\u5728\u4f18\u5316\u4ee3\u7801\uff0c\u8fd8\u662f\u5728\u4e91\u7aef\u8fdb\u884c\u4fbf\u6377\u7684\u5206\u6790\uff0c\u4e91\u751f\u4fe1\u795e\u5668\u90fd\u80fd\u4e3a\u4f60\u63d0\u4f9b\u5f3a\u5927\u7684\u652f\u6301\u3002<strong>\u6b22\u8fce\u8bd5\u8bd5\u6211\u4eec\u7684\u4e91\u751f\u4fe1\u795e\u5668\uff0c\u53ea\u9700\u4e00\u952e\u4e0a\u4f20\u6570\u636e\uff0c\u60f3\u8981\u7684\u56fe\u5c31\u80fd\u8f7b\u677eget~<\/strong><strong><\/strong><\/p>\n\n\n\n<p><strong>\u4e91\u751f\u4fe1\u5e73\u53f0\u94fe\u63a5\uff1a<\/strong><a href=\"http:\/\/www.biocloudservice.com\/home.html\"><strong>http:\/\/www.biocloudservice.com\/home.html<\/strong><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u563f\u670b\u53cb\u4eec\uff0c\u6b22\u8fce\u6765\u5230\u751f\u7269\u4fe1\u606f\u5b66\u7684\u7cbe\u5f69\u4e16\u754c\uff01\u9762\u5bf9RNA\u6570\u636e\u5206\u6790\u4e2d\u7684\u4e00\u4e2a\u5e38\u89c1\u6311\u6218\u2014\u2014\u5728rRNA\u548ctRNA\u4e2d\u8bc6\u522b\u4fee\u9970\u6838 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":""},"categories":[1],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/60980"}],"collection":[{"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=60980"}],"version-history":[{"count":1,"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/60980\/revisions"}],"predecessor-version":[{"id":60989,"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/60980\/revisions\/60989"}],"wp:attachment":[{"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=60980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=60980"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=60980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}