我真的需要我的脚本帮助另一个列表的组合,我不是R.函数嵌套等级列表:比较数据列表针对与数据R
专业的什么我想要做一些背景资料。
有两个排名的数据列表(药物,疾病)。在这些数据集中有关于基因如何在表达中改变的信息。
药物RL(药物)数据集是一个数据集,它是一个排名列表。疾病RL(疾病)数据集是一个数据集,它在描述中表示它是相同的(?疾病RL),但似乎不是排名清单。
我所做的是我从疾病RL数据集中取出绝对数字,并使用数据范围(该数据集中特定疾病的矢量的最大 - 最小值)对数据进行归一化。
所以我现在有两个包含基因表达信息的数据框列表作为排名列表。
的某些代码示例,首先建立所需的软件包:
# Compile/install packages using biocLite.
#source("https://bioconductor.org/biocLite.R")
#biocLite("DrugVsDiseasedata")
#biocLite("gespeR")
#biocLite("DrugVsDisease") # may not be needed.
然后导入包/数据集:
#import libraries
library("DrugVsDisease")#may not be needed
library("DrugVsDiseasedata")
library("cMap2data")
library("gespeR")
#import datasets
data(diseaseRL)
data(drugRL)
> class(drugRL)
[1] "matrix"
>
> class(diseaseRL)
[1] "matrix"
>
> str(drugRL)
num [1:11709, 1:1309] 1870 4059 2250 10284 8999 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:11709] "ZNF702P" "SAMD4A" "VN1R1" "ZNF419" ...
..$ : chr [1:1309] "(+)-chelidonine" "(+)-isoprenaline" "(+/-)-catechin" "(-)-MK-801" ...
>
> str(diseaseRL)
num [1:11709, 1:45] 0.01683 -0.00112 -0.00126 0.04902 0.02605 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:11709] "LINC00115" "GOT2P1" "TP73-AS1" "PIN1P1" ...
..$ : chr [1:45] "wilms-tumor" "glaucoma-open-angle" "diabetes-mellitus-type-ii" "soft-tissue-sarcoma" ...
>
既然说到这里我创建了一个功能正常化的数据集的一部分:
NormalizeRLData <- function(x){
data.rankedlist <- x
data.rankedlist.abs <- as.data.frame(abs(data.rankedlist))
data.rankedlist.abs.ordered <-
data.rankedlist.abs[order(data.rankedlist.abs,decreasing=T), , drop = FALSE]
data.rankedlist.abs.ordered.max <- max(data.rankedlist.abs.ordered)
data.rankedlist.abs.ordered.min <- min(data.rankedlist.abs.ordered)
data.rankedlist.abs.ordered.normalizedToOwnRange <- (data.rankedlist.abs.ordered
/
(data.rankedlist.abs.ordered.max - data.rankedlist.abs.ordered.min))
data.rankedlist.abs.ordered.normalizedToOwnRange.ordered <-
data.rankedlist.abs.ordered.normalizedToOwnRange[order(
data.rankedlist.abs.ordered.normalizedToOwnRange,decreasing=T), , drop =
FALSE]
return(data.rankedlist.abs.ordered.normalizedToOwnRange.ordered)
}
diseaseRL.normalized <- apply(diseaseRL,2,NormalizeRLData)
drugRL.normalized <- apply(drugRL,2,NormalizeRLData)
我有很多疑问/问题,以便继续。我不确定我到目前为止所做的工作是否可以更有效地完成,特别是关于以下方面,使用等级偏向重叠(RBO)。
RBO是一种能够比较两个排名列表的功能。我想利用这个函数来处理标准化数据的列表,其中包含基因的数据框架(用于疾病和药物排名表)。这个rbo函数的输入是一个命名向量。
例如:
> a <- c(4,2,5,5)
> b <- c(1,2,3,4)
> names(a) <- c('one','two','three','four')
> names(b) <- c('one','two','three','four')
> rbo(a,b, p = 0.95)
[1] 0.9650417
什么是最有效的方式做到这一点,所以首先我能有更好的输出,那么我有什么,此刻提供给RBO的功能?
其次:
如果不是(或类似情况),我将有疾病含有醚的基因信息的药物data.frames的列表,和另一个。我想针对每种药物的每种药物进行rbo功能。
我尝试过使用sapply,但是我无法使它正常工作,而且我不确定它是否是正确的方法。我需要保持药物的名称,对于其他数据集名称的疾病,而且基因名称是重要的。因此,我可以稍后检查基因和疾病,药物正在发生相互作用。
我真的很希望这里有人能够对此有所了解!
p.s:如果有人试图帮助我,但在编译软件包时遇到问题,我可以帮忙!也许我可以发送一个示例数据集(不知道我是否可以直接在这里附加任何东西)。
最好的问候, 里克