【发布时间】:2023-03-27 08:18:02
【问题描述】:
我是 R 和 DESeq2 的新手,我正在尝试运行如下差异表达式
library(DESeq2)
count_file_names <- grep("counts",list.files("HTSeq_counts"),value=T)
host_type < c("Damaged","Control")
sample_information <-data.frame(sampleName = count_file_names, fileName = count_file_names, condition = host_type)
DESeq_data <- DESeqDataSetFromHTSeqCount(sampleTable = sample_information, directory = "HTSeq_counts", design = ~condition)
colData(DESeq_data)$condition <- factor(colData(DESeq_data)$condition,levels = c('Damaged','Control'))
rld <- rlogTransformation(DESeq_data, blind=T)
当我查看 rld 矩阵时,它的行名没有注释,因此没有直接用处;注意-我打算在下游步骤中基于此矩阵生成图,因此需要相应的实际基因名称
print(rld)
class: DESeqTransform
dim: 33219 38
metadata(1): version
assays(1): ''
rownames(33219): g100.t1 g1000.t1 ... g9998.t1 g9999.t1
rowData names(7): baseMean baseVar ... dispFit rlogIntercept
colnames(38): Damaged_R1.counts Damaged_R2.counts ...
Control_R4.counts Control_R5.counts
colData names(2): condition sizeFactor
我有一个单独的“Annotations.csv”,其中包含基因名称信息
gene_names <- read.csv("Annotations.csv", header=TRUE, sep=",", stringsAsFactors=FALSE)
head(gene_names)
gene_id name product
1 g38227.t1 Stk10 Serine/threonine-protein kinase 10
2 g38227.t2 Stk10 Serine/threonine-protein kinase 10
3 g1000.t1 Ccnh Cyclin-H
4 g46237.t1 fam136a Protein FAM136A
5 g100.t1 H2B Histone H2B
6 g40390.t1 STAC2 SH3 and cysteine-rich domain-containing protein 2
并且我想根据gene_names 中指定的正确对应基因名称替换rld 矩阵中的行名。例如,rld 矩阵 rownames(33219) 应该显示为名称“H2B CCnh ... 等等”而不是“g100.t1 g1000.t1 ... 等等”。我尝试了下面的 R代码
new.rld <- cbind(name=gene_names$name[ match(rownames(rld), gene_names$gene_id) ], rld)
但它给了我这个错误:
(函数(类,fdef,mtable)中的错误: 无法为签名“字符”找到函数“bindCOLS”的继承方法
非常感谢任何有助于正确生成 new.rld 矩阵的帮助!
【问题讨论】:
标签: r