1

私はテーブルを持っています、ここから始めます:

TargetID         SM_H1462   SM_H1463    SM_K1566    SM_X1567    SM_V1568   SM_K1534     SM_K1570    SM_K1571    
ENSG00000000419.8   290 270 314 364 240 386 430 329     
ENSG00000000457.8   252 230 242 220 106 234 343 321 
ENSG00000000460.11  154 158 162 136 64  152 206  432
ENSG00000000938.7   20106   18664   19764   15640   19024   18508   45590   32113

DESeq パッケージを使用して、このテーブルの newCountDataSet オブジェクトを作成したいと考えています。

これが私のコードです:

#First, define Control & Case so that condition can be defined later
#Here, the colnames are grouped into Control or Case based on their name (the SM_... ones)

my.df <- data.frame(matrix(rep(seq(1,8),3), ncol = 8))
colnames(my.df) <- c('SM_H1462','SM_H1463','SM_K1566','SM_X1567', 'SM_V1568', 'SM_K1534', 'SM_K1570','SM_K1571')
control = my.df[,(substr(colnames(my.df),4,4) == 'H' | substr(colnames(my.df),4,4) == 'K')]
case = my.df[,(substr(colnames(my.df),4,4) == 'X' | substr(colnames(my.df),4,4) == 'V')]

#Define condition
condition= c(control, case) 

cds1 = newCountDataSet(data, condition)

しかし、このようにエラーが発生し、修正方法がわかりません:

Error in sort.list(y) : 'x' must be atomic for 'sort.list'
Have you called 'sort' on a list?

条件が要因である必要があるためだと思います.現在24のリストです.だから私は試しました

condition=factor(condition)

しかし、同じエラーメッセージが表示されます。

4

1 に答える 1

2

私はDESeq?newCountDataSet conditionsを使用したことはありませんが、長さが の列数に等しい係数でなければなりませんcountData。以下が機能するはずです。

condition <- factor(ifelse(substr(colnames(my.df),4,4) == 'H' | substr(colnames(my.df),4,4) == 'K', "control", "case"))
cds1 <- newCountDataSet(my.df, condition)
于 2013-07-24T22:03:46.330 に答える