Tôi đã thấy một vài truy vấn về phân cụm theo chuỗi thời gian và cụ thể là phân cụm, nhưng tôi không nghĩ họ trả lời câu hỏi của tôi.
Bối cảnh: Tôi muốn phân cụm gen trong một thí nghiệm khóa học thời gian trong nấm men. Có bốn thời điểm nói: t1 t2 t3 và t4 và tổng số gen G . Tôi có dữ liệu ở dạng ma trận M trong đó các cột biểu thị các nghiệm thức (hoặc các điểm thời gian) t1 t2 t3 và t4 và các hàng đại diện cho các gen. Do đó, M là ma trận Gx4.
Vấn đề: Tôi muốn phân cụm các gen hoạt động giống nhau trên tất cả các điểm thời gian t1 t2 t3 và t4 cũng như trong một thời điểm cụ thể ti , trong đó tôi ở {1, 2, 3, 4} (Trong trường hợp chúng tôi không thể làm cả hai cụm với nhau, phân cụm trong một điểm thời gian quan trọng hơn phân cụm theo các điểm thời gian). Thêm vào đó, tôi cũng muốn vẽ một bản đồ nhiệt.
Giải pháp của tôi:
Tôi sử dụng mã R bên dưới để có được bản đồ nhiệt cũng như các cụm sử dụng hclust
chức năng trong R (thực hiện phân cụm theo phân cấp với khoảng cách euclide)
row.scaled.expr <- (expr.diff - rowMeans(expr.diff)) / rowSds(expr.diff)
breaks.expr <- c(quantile(row.scaled.expr[row.scaled.expr < 0],
seq(0,1,length=10)[-9]), 0,
quantile(row.scaled.expr[row.scaled.expr > 0],
seq(0,1,length=10))[-1] )
blue.red.expr <- maPalette(low = "blue", high = "red", mid = "white",
k=length(breaks.expr) - 1)
pdf("images/clust.pdf",
height=30,width=20,pointsize=20)
ht1 <- heatmap.2(row.scaled.expr, col = blue.red.expr, Colv = FALSE, key = FALSE,
dendrogram = "row", scale = "none", trace = "none",
cex=1.5, cexRow=1, cexCol=2,
density.info = "none", breaks = breaks.expr,
labCol = colnames(row.scaled.expr),
labRow="",
lmat=rbind( c(0, 3), c(2,1), c(0,4) ), lhei=c(0.25, 4, 0.25 ),
main=expression("Heat Map"),
ylab="Genes in the Microarray",
xlab="Treatments"
)
dev.off()
Gần đây tôi đã phát hiện ra hopach
gói trong Bioconductor có thể được sử dụng để ước tính số lượng cụm. Trước đây, tôi đã chỉ định ngẫu nhiên số lượng thùng cho bản đồ nhiệt và cắt cây ở độ cao thích hợp để có được số cụm được chỉ định trước.
Các vấn đề có thể có trong giải pháp của tôi:
- Tôi có thể không phân cụm các gen trong một điều trị cụ thể và chỉ phân cụm các gen trong các phương pháp điều trị hoặc ngược lại.
- Có thể có nhiều cách tốt hơn để có được một bản đồ nhiệt cho mẫu mà tôi muốn thấy (các gen tương tự trong một phương pháp điều trị và qua các phương pháp điều trị).
- Có thể có các phương pháp trực quan tốt hơn mà tôi không biết.
Ghi chú:
csgillespie (người điều hành) có một tài liệu tổng quát hơn trên trang web của mình, trong đó ông thảo luận về tất cả các khía cạnh của phân tích khóa học thời gian (bao gồm cả bản đồ nhiệt và phân cụm). Tôi sẽ đánh giá cao nếu bạn có thể chỉ cho tôi một bài viết mô tả các bản đồ nhiệt và phân cụm chi tiết.
Tôi đã thử
pvclust
gói, nhưng nó phàn nàn rằng M là số ít và sau đó nó bị hỏng.