で別のリストの組み合わせに対するデータのリストを比較し、私は本当に私のスクリプトとの助けが必要、私はR.機能:データR
に私が何をしたいのかについてのいくつかの背景情報のプロではありませんよ。
データ(薬物、病気)のランク付けされたリストが2つあります。これらのデータセットには、遺伝子が発現においてどのように変化するかに関する情報がある。
drugRL(drug)データセットは、ランク付けされたリストであるデータセットです。 diseaseRL(疾患)データセットは、説明においてそれが同じ(?diseaseRL)であるがランク付けされたリストではないと思われるデータセットである。
私がしたことは、diseaseRLデータセットから絶対数を取り出し、データの範囲(そのデータセット内の特定の疾患のベクトルの最大値 - 最小値)を使用してデータを正規化したことです。
私は現在、ランク付けされたリストとして、遺伝子発現の情報を含む2つのデータフレームのリストを持っています。
いくつかのコード例では、最初に必要なパッケージの構築:
# 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は、2つのランク付けされたリストを比較する機能です。私は遺伝子のデータフレームを含む正規化されたデータのリストのためにこの関数を利用したいと思っています。この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機能を提供するために、現時点で持っているもの、その後、より良い出力を持つことができますか?
そして第二:
ない場合(または類似の場合)、Iはエーテルのための薬剤、および疾患のための別の遺伝子情報を含むdata.framesのリストを有することになります。私はすべての病気に対してすべての薬のrbo機能を実行したい。
私はサプリを使ってみましたが、正しく動作するようにはできませんでした。それが正しい方法であるかどうかはわかりません。私は薬の名前を維持する必要があり、他のデータセットについては病気の名前だけでなく遺伝子名も重要です。だから私は後で遺伝子や病気で確認することができ、薬は相互作用を持っています。
私は本当にここに誰かがこれにいくつかの光を当てることができる願っています!
p.s:誰かが私をここで助けようとしていますが、パッケージのコンパイルに問題がある場合は、私が手伝ってください!たぶん私はサンプルデータセットを送ることができます。
よろしく、 リック