{"id":28040,"date":"2024-02-04T17:50:14","date_gmt":"2024-02-04T09:50:14","guid":{"rendered":"http:\/\/www.biocloudservice.com\/wordpress\/?p=28040"},"modified":"2024-02-04T17:50:16","modified_gmt":"2024-02-04T09:50:16","slug":"%e6%80%8e%e6%a0%b7%e8%bf%88%e5%87%ba%e7%b2%be%e5%87%86%e5%8c%bb%e5%ad%a6%e5%88%86%e6%9e%90%e7%ac%ac%e4%b8%80%e6%ad%a5%ef%bc%9fxeva%e5%b8%ae%e4%bd%a0%e6%89%93%e5%a5%bd%e8%8d%af%e7%89%a9%e9%9d%b6","status":"publish","type":"post","link":"http:\/\/www.biocloudservice.com\/wordpress\/?p=28040","title":{"rendered":"\u600e\u6837\u8fc8\u51fa\u7cbe\u51c6\u533b\u5b66\u5206\u6790\u7b2c\u4e00\u6b65\uff1fXeva\u5e2e\u4f60\u6253\u597d\u836f\u7269\u9776\u5411\u7684\u57fa\u7840\uff01"},"content":{"rendered":"<p>\u5728\u7cbe\u51c6\u533b\u5b66\u7684\u9886\u57df\uff0c\u5982\u4f55\u786e\u5b9a\u836f\u7269\u5f3a\u5927\u7684\u751f\u7269\u6807\u5fd7\u7269\u662f\u7814\u7a76\u4eba\u5458\u4e00\u76f4\u9762\u4e34\u7684\u4e00\u4e2a\u5de8\u5927\u6311\u6218\uff0c\u867d\u7136\u60a3\u8005\u6e90\u6027\u80bf\u7624\u5f02\u79cd\u79fb\u690d(PDX)\u5df2\u7ecf\u662f\u975e\u5e38\u53ef\u9760\u7684\u4e34\u5e8a\u524d\u6a21\u578b\u4e86\uff0c\u4f46\u662f\u7f3a\u4e4f\u8ba1\u7b97\u5de5\u5177\u4f7f\u5f97\u5206\u6790PDX\u7684\u9ad8\u901a\u91cf\u5206\u5b50\u548c\u836f\u7406\u5b66\u7279\u5f81\u53d8\u5f97\u7279\u522b\u56f0\u96be\uff0c\u56e0\u6b64\uff0c\u5c0f\u679c\u4eca\u5929\u7ed9\u5927\u5bb6\u4ecb\u7ecd\u7684\u5c31\u662f\u7cbe\u51c6\u533b\u5b66\u5173\u952e\u6311\u6218\u7684\u7834\u5c40\u8005\u2014\u2014Xeva\u3002<\/p>\n<p>Xeva (XEnograft Visualization &amp; Analysis)\uff0c\u662f\u4e00\u4e2a\u7528\u4e8e\u4f53\u5185\u836f\u7269\u57fa\u56e0\u7ec4\u5b66\u6570\u636e\u96c6\u7684\u5f00\u6e90\u8f6f\u4ef6\u5305, \u53ef\u4ee5\u91cf\u5316\u57fa\u56e0\u8868\u8fbe\u7684\u53ef\u53d8\u6027\u548c\u8de8PDX\u4f20\u4ee3\u7684\u9014\u5f84\u6d3b\u6027\u3002<\/p>\n<p>Xeva\u901a\u8fc7\u4f7f\u7528\u8fc4\u4eca\u4e3a\u6b62\u6700\u5927\u7684PDX\u836f\u7269\u57fa\u56e0\u7ec4\u6570\u636e\u96c6\uff0c\u786e\u5b9a\u4e8687\u79cd\u4e0e51\u79cd\u836f\u7269\u53cd\u5e94\u663e\u8457\u76f8\u5173\u7684\u9014\u5f84(FDR&lt;0.05)\u3002\u53d1\u73b0\u4e86\u57fa\u4e8e\u57fa\u56e0\u8868\u8fbe\u3001\u62f7\u8d1d\u6570\u7578\u53d8\u548c\u7a81\u53d8\u9884\u6d4b\u836f\u7269\u53cd\u5e94\u7684\u65b0\u7684\u751f\u7269\u6807\u5fd7\u7269(\u4e00\u81f4\u6027\u6307\u6570&gt;0.60;FDR&lt; 0.05)\u3002\u603b\u4e4b\uff0cXeva\u4e3a\u4e34\u5e8a\u524d\u4f53\u5185\u836f\u7269\u57fa\u56e0\u7ec4\u5b66\u6570\u636e\u7684\u7efc\u5408\u5206\u6790\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7075\u6d3b\u7684\u5e73\u53f0\uff0c\u4ee5\u8bc6\u522b\u9884\u6d4b\u836f\u7269\u53cd\u5e94\u7684\u751f\u7269\u6807\u5fd7\u7269\uff0c\u4ee3\u8868\u7740\u7cbe\u51c6\u80bf\u7624\u5b66\u7684\u91cd\u8981\u4e00\u6b65\uff01<\/p>\n<p>\u4ecb\u7ecd\u4e86\u8fd9\u4e48\u591a\uff0c\u5c0f\u679c\u5df2\u7ecf\u8dc3\u8dc3\u6b32\u8bd5\u5566\uff01\u4eca\u5929\u5c0f\u679c\u5c31\u6765\u624b\u628a\u624b\u6559\u4f1a\u5927\u5bb6\u5982\u4f55\u4f7f\u7528Xeva\u8fd9\u4e2aR\u5305\u3002\u672c\u6b21\u6559\u7a0b\u5bf9\u7535\u8111\u914d\u7f6e\u6709\u4e00\u5b9a\u9700\u6c42\uff0c\u5efa\u8bae\u5927\u5bb6\u4f7f\u7528\u670d\u52a1\u5668\u8fd0\u884c\uff0c\u5982\u679c\u6ca1\u6709\u81ea\u5df1\u7684\u670d\u52a1\u5668\uff0c\u6b22\u8fce\u8054\u7cfb\u6211\u4eec\u6765\u79df\u8d41\u670d\u52a1\u5668\u54e6\uff5e<\/p>\n<p>Step 1 \u5b89\u88c5Xeva<\/p>\n<p>\u5206\u6790\u6240\u9700\u7684\u6570\u636e\u5c0f\u679c\u5df2\u7ecf\u5e2e\u5927\u5bb6\u51c6\u5907\u597d\u4e86~<\/p>\n<p>\u94fe\u63a5\uff1ahttps:\/\/pan.baidu.com\/s\/1E9LxoIqMYYvBJKtkSkGN4A<\/p>\n<p>\u63d0\u53d6\u7801\uff1ax54w<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"492\" class=\"wp-image-28041\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-1.png?resize=640%2C492\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-1.png?w=865 865w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-1.png?resize=300%2C231 300w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-1.png?resize=768%2C590 768w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-1.png?resize=600%2C461 600w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/><\/p>\n<p>\u56fe\u4e2d\u7684\u6570\u636e\u662f\u6211\u4eec\u672c\u6b21\u5206\u6790\u6240\u6d89\u53ca\u5230\u7684\u4e00\u4e9b\u836f\u7269\u901a\u8def\uff0c\u4f8b\u5982\u56fe\u4e2d\u7ed9\u51fa\u4e86MAPK\u76f8\u5173\u7684\u4fe1\u53f7\u901a\u8def\u3002<\/p>\n<p>#\u68c0\u67e5\u548c\u5b89\u88c5Xeva<\/p>\n<p>library(devtools)<\/p>\n<p>if(is.element(&#8220;Xeva&#8221;, installed.packages())==FALSE)<\/p>\n<p>{<\/p>\n<p>install_github(&#8220;bhklab\/Xeva&#8221;)<\/p>\n<p>}<\/p>\n<p>library(Xeva)<\/p>\n<p>Step 2 \u5206\u6790\u836f\u7269\u5bf9\u4e8e\u4e73\u817a\u764c\u7684\u6709\u6548\u6027<\/p>\n<p>#\u5b89\u88c5\u6240\u9700R\u5305<\/p>\n<p>library(methods)<\/p>\n<p>library(BBmisc)<\/p>\n<p>library(Xeva)<\/p>\n<p>#\u52a0\u8f7d\u60a3\u8005\u7684\u80bf\u7624\u53cd\u5e94\u6570\u636e<\/p>\n<p>data(pdxe)<\/p>\n<p>#\u5c06\u80bf\u7624\u7684\u7f29\u5199\u548c\u5168\u79f0\u5bf9\u5e94\uff0c\u65b9\u4fbf\u7ed8\u56fe<\/p>\n<p>tumor &lt;- c(&#8220;BRCA&#8221; = &#8220;Breast Cancer&#8221;,<\/p>\n<p>&#8220;NSCLC&#8221; = &#8220;Non-small Cell Lung Carcinoma&#8221;,<\/p>\n<p>&#8220;PDAC&#8221; = &#8220;Pancreatic Ductal Carcinoma&#8221;,<\/p>\n<p>&#8220;CM&#8221; = &#8220;Cutaneous Melanoma&#8221;,<\/p>\n<p>&#8220;GC&#8221; = &#8220;Gastric Cancer&#8221;,<\/p>\n<p>&#8220;CRC&#8221; = &#8220;Colorectal Cancer&#8221;)<\/p>\n<p>#\u8f93\u51faPDF\u6587\u4ef6\uff0c\u6839\u636eXeva\u4e2d\u7684mRECIST \u6807\u51c6\uff0c\u6309\u7167\u60a3\u8005\u7684ID\u548c\u80bf\u7624\u7c7b\u578b\u8fdb\u884c\u4e86\u5206\u7ec4\uff0c\u5f97\u5230\u4e86\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u96c6 pdxe.tt<\/p>\n<p>pdf(&#8220;..\/results\/figure-1.pdf&#8221;, width = 14.1, height = 7.6)<\/p>\n<p>for(tt in names(tumor))<\/p>\n<p>{<\/p>\n<p>pdxe.tt &lt;- summarizeResponse(pdxe, response.measure = &#8220;mRECIST&#8221;,<\/p>\n<p>group.by=&#8221;patient.id&#8221;, tissue=tt)<\/p>\n<p>pdxe.tt &lt;- pdxe.tt[, names(sort(pdxe.tt[&#8220;untreated&#8221;, ], na.last = TRUE))]<\/p>\n<p>plotmRECIST(pdxe.tt, control.name = &#8220;Untreated&#8221;, name = tumor[tt],<\/p>\n<p>row_fontsize = 12, col_fontsize=12, sort = FALSE)<\/p>\n<p>}<\/p>\n<p>dev.off()<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"345\" class=\"wp-image-28042\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-2.png?resize=640%2C345\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-2.png?w=1355 1355w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-2.png?resize=300%2C162 300w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-2.png?resize=1024%2C552 1024w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-2.png?resize=768%2C414 768w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-2.png?resize=600%2C323 600w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-2.png?w=1280 1280w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/><\/p>\n<p>\u901a\u8fc7\u4f7f\u7528Xeva\u7684mRECIST\u51fd\u6570\u8ba1\u7b97\u548c\u53ef\u89c6\u5316PDXE\u4e73\u817a\u764c\u6570\u636e\u4e2d\u57fa\u4e8ePDX\u7684\u836f\u7269\u7b5b\u9009\u7684\u54cd\u5e94\u3002<\/p>\n<p>\u4ece\u56fe\u7247\u4e2d\u53ef\u4ee5\u770b\u5230\uff0c\u6709\u4e9b\u6cbb\u7597\u7684\u6548\u679c\u6bd4\u8f83\u597d\uff0c\u6bd4\u5982\u00a0<strong>BGJ398<\/strong>\u00a0\u548c\u00a0<strong>binimetinib<\/strong>\uff0c\u6709\u5f88\u591a\u7ea2\u8272\u7684\u683c\u5b50\uff0c\u8868\u793a\u5b8c\u5168\u53cd\u5e94\uff08CR\uff09\u3002\u6709\u4e9b\u6cbb\u7597\u7684\u6548\u679c\u6bd4\u8f83\u5dee\uff0c\u6bd4\u5982\u00a0<strong>paclitaxel<\/strong>\u00a0\u548c\u00a0<strong>LLM871<\/strong>\uff0c\u5b83\u4eec\u6709\u5f88\u591a\u84dd\u8272\u7684\u683c\u5b50\uff0c\u8868\u793a\u8fdb\u5c55\u6027\u75be\u75c5\uff08PD\uff09\u3002\u6709\u4e9b\u6cbb\u7597\u7684\u6548\u679c\u6bd4\u8f83\u4e00\u822c\uff0c\u6bd4\u5982<strong>LEE011+everolimus<\/strong>\uff0c\u6709\u5f88\u591a\u7eff\u8272\u7684\u683c\u5b50\uff0c\u8868\u793a\u7a33\u5b9a\u75c5\u60c5\uff08SD\uff09\u3002\u53ef\u4ee5\u5e2e\u52a9\u7814\u7a76\u4eba\u5458\u5206\u6790\u54ea\u4e9b\u836f\u7269\u5bf9\u54ea\u4e9b\u60a3\u8005\u6709\u6548\uff0c\u4ee5\u53ca\u54ea\u4e9b\u836f\u7269\u53ef\u80fd\u6709\u526f\u4f5c\u7528\u6216\u65e0\u6548\u3002<\/p>\n<p>Step 3 \u5bf9\u57fa\u56e0\u6570\u636e\u8fdb\u884cTSNE\u5206\u6790\uff0c\u76f8\u5173\u6027\u5206\u6790<\/p>\n<p>#\u5bfc\u5165\u529f\u80fd\u51fd\u6570\uff0c\u6240\u7528\u5305<\/p>\n<p>set.seed(19)<\/p>\n<p>#\u8c03\u7528\u529f\u80fd\u51fd\u6570\u6587\u4ef6<\/p>\n<p>source(&#8220;imp_functions.R&#8221;)<\/p>\n<p>suppressMessages(library(Biobase))<\/p>\n<p>library(Rtsne)<\/p>\n<p>library(ggplot2)<\/p>\n<p>library(ggpubr)<\/p>\n<p>#\u51c6\u5907\u8f93\u51fa\u7ed3\u679c<\/p>\n<p>args &lt;- commandArgs(trailingOnly = TRUE)<\/p>\n<p>recompute &lt;- FALSE<\/p>\n<p>if(args[1] %in% c(TRUE, FALSE))<\/p>\n<p>{ recompute &lt;- args[1] }<\/p>\n<p>pdf(&#8220;..\/results\/figure-2.pdf&#8221;, width = 9.27, height = 6.4)<\/p>\n<p>#\u4ece&#8221;..\/data\/passage_data.Rda&#8221;\u6587\u4ef6\u4e2d\u8bfb\u53d6\u901a\u9053\u6570\u636e\u3002<\/p>\n<p>passage &lt;- readRDS(&#8220;..\/data\/passage_data.Rda&#8221;)<\/p>\n<p>dp &lt;- pData(passage$data)<\/p>\n<p>#\u5bf9\u6570\u636e\u8fdb\u884ct-SNE\uff08t\u5206\u5e03\u968f\u673a\u90bb\u5c45\u5d4c\u5165\uff09\u964d\u7ef4\u5904\u7406<\/p>\n<p>#\u8ba1\u7b97\u80bf\u7624\u5bf9\u5e94\u7684\u60a3\u8005\u6570\u91cf\uff0c\u6392\u5e8f<\/p>\n<p>ptByTT &lt;- sort(sapply(unique(dp$tumor.type),<\/p>\n<p>function(tt){length(unique(dp[dp$tumor.type==tt, &#8220;patient.id&#8221;]))},<\/p>\n<p>USE.NAMES = TRUE))<\/p>\n<p>#\u7b5b\u9009\u6570\u91cf\u5927\u4e8e10\u7684\u80bf\u7624\u7c7b\u578b<\/p>\n<p>tt2take &lt;- names(ptByTT)[ptByTT&gt;10]<\/p>\n<p>dq &lt;- dp[dp$tumor.type %in% tt2take, ]<\/p>\n<p>psgFrq&lt;- table(dq$patient.id)<\/p>\n<p>pid2take &lt;- names(psgFrq)[psgFrq&gt;1]<\/p>\n<p>dq &lt;- dq[dq$patient.id%in%pid2take, ]<\/p>\n<p>dq$tumor.type &lt;- gsub(&#8220;_&#8221;, &#8221; &#8220;, dq$tumor.type)<\/p>\n<p>dq$tumor.type[dq$tumor.type==&#8221;large intestine&#8221;] &lt;- &#8220;LI&#8221;<\/p>\n<p>tissuCol &lt;- c(&#8216;#1b9e77&#8242;,&#8217;#d95f02&#8242;,&#8217;#7570b3&#8242;,&#8217;#e7298a&#8217;, &#8216;#d9f0a3&#8217;, &#8216;#e6ab02&#8242;,&#8217;#a6761d&#8217;,&#8217;#666666&#8242;)<\/p>\n<p>names(tissuCol) &lt;- c(&#8220;lung&#8221;, &#8220;ovary&#8221;, &#8220;LI&#8221;, &#8220;breast&#8221;, &#8220;kidney&#8221;, &#8220;pancreas&#8221;,<\/p>\n<p>&#8220;skin&#8221;, &#8220;soft tissue&#8221;)<\/p>\n<p>#\u7b5b\u9009\u6570\u636e<\/p>\n<p>dt &lt;- as.matrix(t(Biobase::exprs(passage$data)))<\/p>\n<p>dt &lt;- dt[dq$biobase.id, ]<\/p>\n<p>#\u8fd0\u884ct-SNE\u7b97\u6cd5\u5206\u6790<\/p>\n<p>tsne_out &lt;- Rtsne(dt, perplexity = 13)<\/p>\n<p>dq$X &lt;- data.frame(tsne_out$Y)[,1]<\/p>\n<p>dq$Y &lt;- data.frame(tsne_out$Y)[,2]<\/p>\n<p>#\u8fdb\u884c\u53ef\u89c6\u5316\u5206\u6790<\/p>\n<p>tsne.plot &lt;- ggplot(data=dq, aes(X, Y, color=tumor.type)) + geom_point(size=0.5)<\/p>\n<p>tsne.plot &lt;- tsne.plot + theme_classic()<\/p>\n<p>tsne.plot &lt;- tsne.plot + scale_color_manual(values=tissuCol)<\/p>\n<p>tsne.plot &lt;- tsne.plot + geom_line(data=dq, aes(X, Y, group=patient.id),<\/p>\n<p>show.legend=FALSE)<\/p>\n<p>print(tsne.plot)<\/p>\n<p>#\u5bf9\u80bf\u7624\u6570\u636e\u7684\u76f8\u5173\u6027\u8fdb\u884c\u5206\u6790<\/p>\n<p>marExp &lt;- Biobase::exprs(passage$data)<\/p>\n<p>passMat &lt;- passage$passage<\/p>\n<p># \u8fc7\u6ee4\u6709\u591a\u4e2a\u975e NA \u503c\u7684\u884c\u548c\u5217<\/p>\n<p>passMat &lt;- passMat %&gt;%<\/p>\n<p>filter(rowSums(!is.na(.)) &gt; 1) %&gt;%<\/p>\n<p>filter(colSums(!is.na(.)) &gt; 1)<\/p>\n<p>if(recompute==TRUE)<\/p>\n<p>{<\/p>\n<p>cat(sprintf(&#8220;recomputing values&#8230;. it may take long time\\n&#8221;))<\/p>\n<p>dfx &lt;- data.frame()<\/p>\n<p>##&#8212;&#8211; correlation for related pairs &#8212;&#8212;&#8212;&#8212;<\/p>\n<p># use map_dfr to loop over the rows and return a data frame<\/p>\n<p>dfx &lt;- passMat %&gt;%<\/p>\n<p>map_dfr(~{<\/p>\n<p># use combn to get all possible pairs of non-NA values<\/p>\n<p>prx &lt;- combn(.x[!is.na(.x)], 2, simplify = F)<\/p>\n<p># use map_dbl to loop over the pairs and return a numeric vector<\/p>\n<p>v &lt;- prx %&gt;%<\/p>\n<p>map_dbl(~cor(marExp[, .x[1]], marExp[, .x[2]], method = &#8220;pearson&#8221;))<\/p>\n<p># return a data frame with correlation and type<\/p>\n<p>data.frame(Correlation = v, type = &#8220;Related pairs&#8221;)<\/p>\n<p>})<\/p>\n<p># \u4f7f\u7528 sample_n \u83b7\u53d6\u884c\u7684\u968f\u673a\u6837\u672c<\/p>\n<p>randPassMat &lt;- passMat %&gt;%<\/p>\n<p>sample_n(nrow(passMat))<\/p>\n<p># \u4f7f\u7528 map_dfr \u904d\u5386\u884c\u5e76\u8fd4\u56de\u6570\u636e\u5e27<\/p>\n<p>dfx &lt;- randPassMat %&gt;%<\/p>\n<p>map_dfr(~{<\/p>\n<p># use combn to get all possible pairs of non-NA values<\/p>\n<p>prx &lt;- combn(.x[!is.na(.x)], 2, simplify = F)<\/p>\n<p># use keep to filter the pairs that are not in the same row of passMat<\/p>\n<p>prx &lt;- prx %&gt;%<\/p>\n<p>keep(~!any(passMat[which(passMat == .x[1]), ] == .x[2]))<\/p>\n<p>#\u4f7f\u7528 map_dbl \u904d\u5386\u8fd9\u4e9b\u5bf9\u5e76\u8fd4\u56de\u4e00\u4e2a\u6570\u503c\u5411\u91cf<\/p>\n<p>v &lt;- prx %&gt;%<\/p>\n<p>map_dbl(~cor(marExp[, .x[1]], marExp[, .x[2]]))<\/p>\n<p># return a data frame with correlation and type<\/p>\n<p>data.frame(Correlation = v, type = &#8220;Random pairs&#8221;)<\/p>\n<p>})<\/p>\n<p>} else<\/p>\n<p>{<\/p>\n<p>cat(sprintf(&#8220;using pre-computed values\\n&#8221;))<\/p>\n<p>dfx &lt;- readRDS(&#8220;..\/data\/PDX_passage_correlation.Rda&#8221;)<\/p>\n<p>}<\/p>\n<p>pltOrd &lt;- c(&#8220;Related pairs&#8221;, &#8220;Random pairs&#8221;)<\/p>\n<p>dfx$type &lt;- factor(as.character(dfx$type), levels = pltOrd)<\/p>\n<p>pltCol &lt;- c(&#8216;#e41a1c&#8217;,&#8217;#377eb8&#8242;)<\/p>\n<p>names(pltCol) &lt;- pltOrd<\/p>\n<p>#\u521b\u5efa\u5c0f\u63d0\u7434\u56fe\u548c\u6458\u8981\u7edf\u8ba1\u6570\u636e\uff0c\u4ee5\u6bd4\u8f83\u76f8\u5173\u5bf9\u548c\u968f\u673a\u5bf9\u4e4b\u95f4\u7684\u76f8\u5173\u6027<\/p>\n<p>p &lt;- ggplot(data=dfx, aes(x=type, y=Correlation, fill=type, color=type))<\/p>\n<p>p &lt;- p + geom_violin(trim=T)<\/p>\n<p>p &lt;- p + theme_classic()<\/p>\n<p>p &lt;- p + scale_fill_manual(values=pltCol)<\/p>\n<p>p &lt;- p + scale_color_manual(values=pltCol)<\/p>\n<p>p &lt;- p + stat_summary(fun.data=data_summary, colour = &#8220;white&#8221;, size=0.4)<\/p>\n<p>p &lt;- p + theme(legend.position=&#8221;none&#8221;)<\/p>\n<p>p &lt;- p + scale_y_continuous(breaks = seq(-1,1,by = 0.1))<\/p>\n<p>p &lt;- p + theme(axis.text.x = element_text(colour=&#8221;grey20&#8243;,size=12, angle=0,face=&#8221;bold&#8221;),<\/p>\n<p>axis.text.y = element_text(colour=&#8221;grey20&#8243;,size=11, face=&#8221;bold&#8221;),<\/p>\n<p>axis.title.y = element_text(colour=&#8221;grey20&#8243;,size=11, face=&#8221;bold&#8221;),<\/p>\n<p>axis.ticks.length=unit(0.25,&#8221;cm&#8221;))<\/p>\n<p>p &lt;- p + theme(axis.line.x = element_line(size = 0, colour = &#8220;white&#8221;),<\/p>\n<p>axis.title.x=element_blank(),<\/p>\n<p>axis.ticks.x=element_blank())<\/p>\n<p>comparisons &lt;- list(c(&#8220;Related pairs&#8221;, &#8220;Random pairs&#8221;))<\/p>\n<p>p &lt;- p + stat_compare_means(comparisons = comparisons, label = &#8220;p.signif&#8221;)<\/p>\n<p>print(p)<\/p>\n<p>dev.off()<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"439\" class=\"wp-image-28043\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-3.png?resize=640%2C439\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-3.png?w=825 825w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-3.png?resize=300%2C206 300w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-3.png?resize=768%2C527 768w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-3.png?resize=600%2C412 600w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/> <img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"443\" class=\"wp-image-28044\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-4.png?resize=640%2C443\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-4.png?w=888 888w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-4.png?resize=300%2C207 300w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-4.png?resize=768%2C531 768w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-4.png?resize=600%2C415 600w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/><\/p>\n<p>\u7ed3\u679c\u5982\u56fe\uff0c\u5de6\u56fe\u662f\u5bf9PDXs\u4e0d\u540c\u4f20\u4ee317304\u4e2a\u57fa\u56e0\u7684\u57fa\u56e0\u8868\u8fbe\u6570\u636e\u8fdb\u884cTSNE\u5206\u6790\uff0c\u4ece\u800c\u5c06\u9ad8\u7ef4\u6570\u636e\u6620\u5c04\u5230\u4f4e\u7ef4\u7a7a\u95f4\uff0c\u663e\u793a\u4e86\u4e0d\u540c\u7c7b\u578b\u7684\u80bf\u7624\u5728\u4e8c\u7ef4\u7a7a\u95f4\u4e2d\u7684\u5206\u5e03\u3002\u6bcf\u79cd\u989c\u8272\u4ee3\u8868\u4e00\u79cd\u7279\u5b9a\u7c7b\u578b\u7684\u80bf\u7624\uff0c\u6bd4\u5982\u8bf4\u4e73\u817a\u764c\uff08\u7d2b\u8272\uff09\u7684\u6570\u636e\u70b9\u5206\u5e03\u5f97\u6bd4\u8f83\u5e7f\u6cdb\uff0c\u6709\u4e9b\u70b9\u4e0e\u5176\u4ed6\u7c7b\u578b\u7684\u80bf\u7624\u6df7\u5408\u5728\u4e00\u8d77\uff0c\u6709\u4e9b\u70b9\u5219\u5f62\u6210\u4e86\u4e00\u4e9b\u7c07\u3002\u8fd9\u53ef\u80fd\u8868\u660e\u4e73\u817a\u764c\u7684\u5f02\u8d28\u6027\u6bd4\u8f83\u9ad8\uff0c\u6709\u4e9b\u4e9a\u578b\u4e0e\u5176\u4ed6\u7c7b\u578b\u7684\u80bf\u7624\u66f4\u76f8\u4f3c\uff0c\u6709\u4e9b\u4e9a\u578b\u5219\u66f4\u72ec\u7279\u3002<\/p>\n<p>\u800c\u53f3\u56fe\u662f\u76f8\u5173\u6837\u672c\u5bf9(\u5c5e\u4e8e\u540c\u4e00\u8c31\u7cfb)\u548c\u968f\u673a\u9009\u62e9\u6837\u672c\u5bf9\u7684Pearson\u76f8\u5173\u6027\u7684\u53ef\u89c6\u5316\uff0c\u4ece\u8fd9\u5e45\u56fe\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff1a\u76f8\u5173\u5bf9\u7684\u76f8\u5173\u6027\u7684\u5e73\u5747\u503c\u662f0.94\uff0c\u968f\u673a\u5bf9\u7684\u76f8\u5173\u6027\u7684\u5e73\u5747\u503c\u662f0.86\uff0c\u8bf4\u660e\u4e24\u8005\u4e4b\u95f4\u6709\u663e\u8457\u7684\u5dee\u5f02\u3002<\/p>\n<p>Step 4 \u6240\u6709\u57fa\u56e0\u5728PDX\u4f20\u4ee3\u4e2d\u7684\u7c7b\u5185\u76f8\u5173\u6027(ICC)\u53ef\u89c6\u5316<\/p>\n<p>#\u5bfc\u5165\u5305<\/p>\n<p>source(&#8220;imp_functions.R&#8221;)<\/p>\n<p>library(foreach)<\/p>\n<p>library(doParallel)<\/p>\n<p>library(psych)<\/p>\n<p>##plotViolin\uff1a\u4f7f\u7528ggplot2\u5305\u751f\u6210\u5c0f\u63d0\u7434\u56fe\u3002<\/p>\n<p>plotViolin &lt;- function(dfx, pltCol, ylim=NULL)<\/p>\n<p>{<\/p>\n<p>p &lt;- ggplot(data=dfx, aes(x=type, y=ICC , fill=type,color=type))<\/p>\n<p>p &lt;- p + geom_boxplot(width = .001, outlier.size = 2.0, outlier.color = &#8220;#525252&#8221;,<\/p>\n<p>outlier.shape = 95)<\/p>\n<p>p &lt;- p + geom_violin(trim=F)<\/p>\n<p>p &lt;- p + theme_classic()<\/p>\n<p>p &lt;- p + scale_fill_manual(values=pltCol)<\/p>\n<p>p &lt;- p + scale_color_manual(values=pltCol)<\/p>\n<p>p &lt;- p + stat_summary(fun.data=data_summary, colour = &#8220;white&#8221;, size=0.4)<\/p>\n<p>p &lt;- p + theme(legend.position=&#8221;none&#8221;)<\/p>\n<p>p &lt;- p + scale_y_continuous(breaks = seq(-1,1,by = 0.25))<\/p>\n<p>p &lt;- p + theme(axis.text.x = element_text(colour=&#8221;grey20&#8243;,size=12, angle=0,face=&#8221;bold&#8221;),<\/p>\n<p>axis.text.y = element_text(colour=&#8221;grey20&#8243;,size=11, face=&#8221;bold&#8221;),<\/p>\n<p>axis.title.y = element_text(colour=&#8221;grey20&#8243;,size=11, face=&#8221;bold&#8221;),<\/p>\n<p>axis.ticks.length=unit(0.25,&#8221;cm&#8221;))<\/p>\n<p>p &lt;- p + theme(axis.line.x = element_line(size = 0, colour = &#8220;white&#8221;),<\/p>\n<p>axis.title.x=element_blank(),<\/p>\n<p>axis.ticks.x=element_blank())<\/p>\n<p>if(!is.null(ylim))<\/p>\n<p>{ p &lt;- p + coord_cartesian(ylim = ylim, expand = F) }<\/p>\n<p>return(p)<\/p>\n<p>}<\/p>\n<p>##computeRankMatFor1Gene\u51fd\u6570\uff1a\u8ba1\u7b97\u7ed9\u5b9a\u57fa\u56e0\u5728\u6837\u672c\u4e2d\u7684\u6392\u540d\u77e9\u9635<\/p>\n<p>computeRankMatFor1Gene &lt;- function(gn, pt, marExp)<\/p>\n<p>{<\/p>\n<p>findRankOfGene &lt;- function(gn, sampleIds, marExp)<\/p>\n<p>{<\/p>\n<p>rtx &lt;- rep(NA, length(sampleIds)); names(rtx)&lt;- names(sampleIds)<\/p>\n<p>for(n in names(rtx))<\/p>\n<p>{<\/p>\n<p>s &lt;- sampleIds[n]<\/p>\n<p>if(!is.na(s))<\/p>\n<p>{<\/p>\n<p>gval &lt;- sort(marExp[, s])<\/p>\n<p>rtx[n] &lt;- which(names(gval)==gn)<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>return(rtx)<\/p>\n<p>}<\/p>\n<p>gnRankMat &lt;- matrix(data = NA, nrow = nrow(pt), ncol = ncol(pt))<\/p>\n<p>rownames(gnRankMat) &lt;- rownames(pt); colnames(gnRankMat)&lt;- colnames(pt)<\/p>\n<p>for(patientID in rownames(pt))<\/p>\n<p>{<\/p>\n<p>sampleIds &lt;- pt[patientID, ]<\/p>\n<p>gnRankMat[patientID, ] &lt;- findRankOfGene(gn, sampleIds, marExp)<\/p>\n<p>}<\/p>\n<p>gnRankMat &lt;- gnRankMat[!apply(gnRankMat, 1, function(x)all(is.na(x))), ]<\/p>\n<p>return(gnRankMat)<\/p>\n<p>}<\/p>\n<p>##getICCforAllGen\u51fd\u6570\uff1a\u7528\u4e8e\u8ba1\u7b97\u6240\u6709\u57fa\u56e0\u7684ICC\uff08Intraclass Correlation Coefficient\uff09\u3002<\/p>\n<p>getICCforAllGenes &lt;- function(pt, allGenes, marExp, NCPU=2, verbose=F)<\/p>\n<p>{<\/p>\n<p>if(verbose==TRUE) { cl&lt;-makeCluster(NCPU, outfile=&#8221;&#8221;) } else<\/p>\n<p>{ cl&lt;-makeCluster(NCPU)}<\/p>\n<p>registerDoParallel(cl)<\/p>\n<p>allICC &lt;- foreach(i=1:length(allGenes), .export=c(&#8220;computeRankMatFor1Gene&#8221;),<\/p>\n<p>.packages = c(&#8220;psych&#8221;) ) %dopar%<\/p>\n<p>{<\/p>\n<p>gn &lt;- allGenes[i]<\/p>\n<p>gnRankMat &lt;- computeRankMatFor1Gene(gn, pt, marExp)<\/p>\n<p>v &lt;- NULL<\/p>\n<p>if(nrow(gnRankMat)&gt;2)<\/p>\n<p>{<\/p>\n<p>v &lt;- psych::ICC(gnRankMat, missing = F)<\/p>\n<p>v$geneName &lt;- gn<\/p>\n<p>}<\/p>\n<p>v<\/p>\n<p>}<\/p>\n<p>stopCluster(cl)<\/p>\n<p>rtx &lt;- data.frame()<\/p>\n<p>for(i in 1:length(allICC))<\/p>\n<p>{<\/p>\n<p>if(!is.null(allICC[[i]]))<\/p>\n<p>{<\/p>\n<p>v &lt;- allICC[[i]]$results[&#8220;Single_raters_absolute&#8221;,]<\/p>\n<p>v[&#8220;gene&#8221;] &lt;- allICC[[i]]$geneName<\/p>\n<p>rtx &lt;- rbind(rtx, v[c(&#8220;ICC&#8221;, &#8220;p&#8221;, &#8220;gene&#8221;)])<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>rownames(rtx) &lt;- NULL<\/p>\n<p>return(rtx)<\/p>\n<p>}<\/p>\n<p>## randomizeMatGetICC\u51fd\u6570\uff1a\u7528\u4e8e\u5bf9\u6570\u636e\u8fdb\u884c\u968f\u673a\u5316\u5904\u7406\uff0c\u5e76\u8ba1\u7b97\u968f\u673a\u5316\u540e\u7684\u57fa\u56e0ICC\u503c\u3002<\/p>\n<p>randomizeMatGetICC &lt;- function(passMatx, allGenes, marExp, NCPU, verbose=F)<\/p>\n<p>{<\/p>\n<p>passMatRand &lt;- passMatx<\/p>\n<p>for(i in 1:ncol(passMatRand))<\/p>\n<p>{ passMatRand[,i] &lt;- sample(passMatRand[,i]) }<\/p>\n<p>for(i in 1:nrow(passMatRand))<\/p>\n<p>{ passMatRand[i,] &lt;- sample(passMatRand[i,]) }<\/p>\n<p>passMatRand &lt;- passMatRand[!(apply(passMatRand, 1, function(x) all(is.na(x)))),]<\/p>\n<p>rownames(passMatRand) &lt;- paste0(&#8220;r&#8221;, 1:nrow(passMatRand))<\/p>\n<p>allICCRand &lt;- getICCforAllGenes(passMatRand, allGenes, marExp, NCPU=NCPU,<\/p>\n<p>verbose=verbose)<\/p>\n<p>return(allICCRand)<\/p>\n<p>}<\/p>\n<p>## \u6570\u636e\u52a0\u8f7d\u548c\u51c6\u5907<\/p>\n<p>NCPU = max(1, detectCores()-1 )<\/p>\n<p>cat(sprintf(&#8220;\\n##&#8212;- number of CPU %d &#8212;&#8212;\\n&#8221;, NCPU))<\/p>\n<p>passage &lt;- readRDS(&#8220;..\/data\/passage_data.Rda&#8221;)<\/p>\n<p>dp &lt;- pData(passage$data)<\/p>\n<p>mar &lt;- passage$data<\/p>\n<p>allGenes &lt;- rownames(mar)<\/p>\n<p>marExp &lt;- Biobase::exprs(mar)<\/p>\n<p>pheno &lt;- Biobase::pData(mar)<\/p>\n<p>pheno$passage &lt;- paste0(&#8220;P&#8221;, pheno$passage)<\/p>\n<p>passMat &lt;- passage$passage<\/p>\n<p>if(recompute==TRUE){<\/p>\n<p>cat(sprintf(&#8220;recomputing values&#8230;. it may take long time\\n&#8221;))<\/p>\n<p>ICCv &lt;- list()<\/p>\n<p>##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;For all tissue type &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>allICC &lt;- getICCforAllGenes(passMat, allGenes, marExp, NCPU=NCPU, verbose=F)<\/p>\n<p>allICC$type &lt;- &#8220;All tissue&#8221;<\/p>\n<p>allICCRand &lt;- randomizeMatGetICC(passMat, allGenes, marExp, NCPU=NCPU, verbose=F)<\/p>\n<p>allICCRand$type &lt;- &#8220;Null (All tissue)&#8221;<\/p>\n<p>ICCv[[&#8220;All tissue&#8221;]] &lt;- rbind(allICC, allICCRand)<\/p>\n<p>##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;By Tissue Type &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>tissueName &lt;- c(&#8220;breast&#8221;, &#8220;lung&#8221;, &#8220;pancreas&#8221;, &#8220;skin&#8221;, &#8220;large_intestine&#8221;)<\/p>\n<p>for(tt in tissueName)<\/p>\n<p>{<\/p>\n<p>ptt &lt;- passMat[pheno[pheno$tumor.type==tt, &#8220;patient.id&#8221;], , drop=F]<\/p>\n<p>if(nrow(ptt)&gt;8)<\/p>\n<p>{<\/p>\n<p>cat(sprintf(&#8220;##&#8212; running for %s &#8212;&#8211;\\n&#8221;, tt))<\/p>\n<p>allICCtt &lt;- getICCforAllGenes(ptt, allGenes, marExp, NCPU=NCPU, verbose=F)<\/p>\n<p>allICCtt$type &lt;- tt<\/p>\n<p>allICCttRand &lt;- randomizeMatGetICC(ptt,allGenes,marExp,NCPU=NCPU,verbose=F)<\/p>\n<p>allICCttRand$type &lt;- sprintf(&#8220;Null (%s)&#8221;, tt)<\/p>\n<p>ICCv[[tt]] &lt;- rbind(allICCtt, allICCttRand)<\/p>\n<p>}<\/p>\n<p>##\u50a8\u5b58\u7ed3\u679c<\/p>\n<p>saveRDS(ICCv, &#8220;..\/results\/ICC_for_genes.Rda&#8221;)<\/p>\n<p>}<\/p>\n<p>} else<\/p>\n<p>{ICCv &lt;- readRDS(&#8220;..\/data\/ICC_for_genes.Rda&#8221;)}<\/p>\n<p>##\u7ed8\u5236\u56fe\u7247<\/p>\n<p>pltColo &lt;- c(&#8216;#e41a1c&#8217;, &#8216;#8dd3c7&#8242;,&#8217;#bebada&#8217;,&#8217;#fb8072&#8242;,&#8217;#80b1d3&#8242;,&#8217;#fdb462&#8242;)<\/p>\n<p>names(pltColo)&lt;-c(&#8220;All tissue&#8221;,&#8221;breast&#8221;,&#8221;lung&#8221;,&#8221;pancreas&#8221;,&#8221;skin&#8221;,&#8221;large_intestine&#8221;)<\/p>\n<p>nullCol &lt;- &#8220;#4d4d4d&#8221;<\/p>\n<p>pdf(&#8220;..\/results\/figure-3.pdf&#8221;, width = 5.15, height = 2.15)<\/p>\n<p>for(tt in names(pltColo))<\/p>\n<p>{<\/p>\n<p>dfx &lt;- ICCv[[tt]]<\/p>\n<p>pltCol &lt;- c(pltColo[tt], nullCol); names(pltCol) &lt;- c(tt, sprintf(&#8220;Null (%s)&#8221;, tt))<\/p>\n<p>dfx$type &lt;- factor(as.character(dfx$type), levels = names(pltCol))<\/p>\n<p>ylim &lt;- c(-0.25,1)<\/p>\n<p>p &lt;- plotViolin(dfx, pltCol, ylim = ylim)<\/p>\n<p>print(p)<\/p>\n<p>}<\/p>\n<p>dev.off()<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"267\" class=\"wp-image-28045\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-5.png?resize=640%2C267\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-5.png?w=815 815w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-5.png?resize=300%2C125 300w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-5.png?resize=768%2C320 768w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-5.png?resize=600%2C250 600w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/> <img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"267\" class=\"wp-image-28046\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-6.png?resize=640%2C267\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-6.png?w=814 814w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-6.png?resize=300%2C125 300w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-6.png?resize=768%2C320 768w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-6.png?resize=600%2C250 600w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/> <img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"268\" class=\"wp-image-28047\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-7.png?resize=640%2C268\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-7.png?w=811 811w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-7.png?resize=300%2C125 300w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-7.png?resize=768%2C321 768w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-7.png?resize=600%2C251 600w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/> <img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"265\" class=\"wp-image-28048\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-8.png?resize=640%2C265\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-8.png?w=813 813w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-8.png?resize=300%2C124 300w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-8.png?resize=768%2C317 768w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-8.png?resize=600%2C248 600w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/> <img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"266\" class=\"wp-image-28049\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-9.png?resize=640%2C266\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-9.png?w=814 814w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-9.png?resize=300%2C125 300w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-9.png?resize=768%2C319 768w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-9.png?resize=600%2C249 600w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/> <img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"265\" class=\"wp-image-28050\" src=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-10.png?resize=640%2C265\" srcset=\"https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-10.png?w=813 813w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-10.png?resize=300%2C124 300w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-10.png?resize=768%2C318 768w, https:\/\/i0.wp.com\/www.biocloudservice.com\/wordpress\/wp-content\/uploads\/2024\/02\/word-image-28040-10.png?resize=600%2C249 600w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/><\/p>\n<p>\u5982\u56fe\uff0c\u5c0f\u63d0\u7434\u56fe\u663e\u793a\u4e86\u6240\u6709\u6837\u672c\u7684\u57fa\u56e0\u5728PDX\u4f20\u4ee3\u4e2d\u7684\u7c7b\u5185\u76f8\u5173\u6027(ICC)\uff0c\u5e76\u6309\u7ec4\u7ec7\u7c7b\u578b\u5206\u5c42\u3002\u9ed1\u8272\u7684\u5c0f\u63d0\u7434\u56fe\u8868\u793a\u4f7f\u7528\u975e\u4f20\u4ee3\u76f8\u5173(\u968f\u673a\u9009\u62e9)\u6837\u672c\u8ba1\u7b97\u7684\u57fa\u56e0\u7684ICC\u503c\u3002<\/p>\n<p>\u5c0f\u679c\u4ee5\u7b2c\u4e00\u5e45\u56fe\u4e3a\u4f8b\u5b50\u8fdb\u884c\u8bf4\u660e\uff0c\u8fd9\u5e45\u56fe\u663e\u793a\u4e86\u4e0d\u540c\u7c7b\u578b\u7684\u80bf\u7624\u5728\u901a\u9053\u4e4b\u95f4\u7684\u76f8\u5173\u6027\u3002\u6bcf\u79cd\u989c\u8272\u4ee3\u8868\u4e00\u79cd\u7279\u5b9a\u7c7b\u578b\u7684\u80bf\u7624\u3002\u76f8\u5173\u5bf9\u7684\u76f8\u5173\u6027\u7684\u5e73\u5747\u503c\u662f0.94\uff0c\u968f\u673a\u5bf9\u7684\u76f8\u5173\u6027\u7684\u5e73\u5747\u503c\u662f0.86\uff0c\u4e24\u8005\u4e4b\u95f4\u6709\u663e\u8457\u7684\u5dee\u5f02\uff0c\u8fd9\u4e9b\u56fe\u7247\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u4e86\u89e3\u80bf\u7624\u7684\u53ef\u5851\u6027\u548c\u9002\u5e94\u6027\u3002<\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u5c0f\u679c\u4eca\u5929\u5206\u4eab\u7684\u5168\u90e8\u5185\u5bb9\u5566\uff0c\u5728\u4eca\u5929\u7684\u4ecb\u7ecd\u4e2d\uff0c\u6211\u4eec\u901a\u8fc7\u4f7f\u7528Xeva\u5305\uff0c\u5bf9PDXE\u4e73\u817a\u764c\u4ee5\u53ca\u4e2d\u57fa\u4e8ePDX\u7684\u836f\u7269\u8fdb\u884c\u4e86\u54cd\u5e94\u9776\u5411\u901a\u8def\u7684\u7b5b\u9009\uff0c\u5e76\u4e14\u4f7f\u7528t-SNE\u5bf9\u4e73\u817a\u764c\u76f8\u5173\u7684\u6570\u636e\u8fdb\u884c\u4e86\u964d\u7ef4\u5904\u7406\uff0c\u6700\u540e\u901a\u8fc7\u5206\u6790\u8bf4\u660ePDX\u6a21\u578b\u80fd\u591f\u4fdd\u6301\u539f\u59cb\u80bf\u7624\u7684\u57fa\u56e0\u8868\u8fbe\u7684\u7a33\u5b9a\u6027\u548c\u4e00\u81f4\u6027\uff0c\u8fdb\u800c\u4e3a\u7cbe\u51c6\u533b\u5b66\u7684\u63a2\u7d22\u63d0\u4f9b\u4e86\u826f\u597d\u7684\u4fdd\u969c\u3002<\/p>\n<p>\u9664\u4e86\u4eca\u5929\u5c0f\u679c\u4ecb\u7ecd\u7684\u529f\u80fd\u4e4b\u5916\uff0cXeva\u5305\u4e2d\u8fd8\u6709\u5f88\u591a\u7684\u529f\u80fd\u7b49\u7740\u5c0f\u4f19\u4f34\u4eec\u53bb\u63a2\u7d22\uff0c\u5982\u679c\u6709\u5176\u4ed6\u751f\u4fe1\u65b9\u5411\u7684\u4efb\u4f55\u7591\u95ee\uff0c\u6b22\u8fce\u5927\u5bb6\u5173\u6ce8\u5c0f\u679c\uff0c\u8bd5\u4e00\u8bd5\u6211\u4eec\u7684\u4e91\u751f\u4fe1\u5c0f\u5de5\u5177\uff0c\u53ea\u8981\u8f93\u5165\u5408\u9002\u7684\u6570\u636e\uff0c\u5c31\u53ef\u4ee5\u76f4\u63a5\u7ed8\u5236\u60f3\u8981\u7684\u56fe\u5462\uff0c\u94fe\u63a5\uff1ahttp:\/\/www.biocloudservice.com\/home.html\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u7cbe\u51c6\u533b\u5b66\u7684\u9886\u57df\uff0c\u5982\u4f55\u786e\u5b9a\u836f\u7269\u5f3a\u5927\u7684\u751f\u7269\u6807\u5fd7\u7269\u662f\u7814\u7a76\u4eba\u5458\u4e00\u76f4\u9762\u4e34\u7684\u4e00\u4e2a\u5de8\u5927\u6311\u6218\uff0c\u867d\u7136\u60a3\u8005\u6e90\u6027\u80bf\u7624\u5f02\u79cd\u79fb\u690d(PD [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","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\/28040"}],"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=28040"}],"version-history":[{"count":1,"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/28040\/revisions"}],"predecessor-version":[{"id":28051,"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/28040\/revisions\/28051"}],"wp:attachment":[{"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28040"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.biocloudservice.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}