简体   繁体   English

在 R 中重新排序树状图

[英]Reorder dendrogram in R

I want to plot a heatmap where the x-axis is clustered by "normal" and "KIRP" from left to right.我想要 plot 一个热图,其中 x 轴从左到右由“正常”和“KIRP”聚类。 Currently, my code clusters by dendrogram/similarity, and unfortunately I have one outlier "KIRP" on the left-most.目前,我的代码按树状图/相似性聚类,不幸的是我在最左边有一个离群值“KIRP”。 I want to move this "KIRP" sample so that it appears after all the "normal" samples.我想移动这个“KIRP”样本,使其出现在所有“正常”样本之后。 Nevertheless, both groups "normal" and "KIRP" should still be clustered and arranged based on group similarity.尽管如此,“正常”和“KIRP”这两个组仍应根据组相似性进行聚类和排列。

[![enter image description here][1]][1] [![在此处输入图片描述][1]][1]

Code:代码:

dge <- DGEList(counts=mat, group=group)
keep <- filterByExpr(dge)
v <- voom(mat, design, plot=TRUE)
vfit <- lmFit(v, design)
vfit <- contrasts.fit(vfit, contrasts=contrasts)
efit <- eBayes(vfit)
tfit <- treat(vfit, lfc=1)
dt <- decideTests(tfit)
de.common <- which(dt[,1]!=0)


kirp.vs.normal <- topTreat(tfit, coef=1, n=Inf)

topgenes <- rownames(kirp.vs.normal)[1:150]
i <- which(rownames(dge) %in% topgenes)
mycol <- colorpanel(1000,"#FFA500","white","#2E2787")
heatmap.2(lcpm[i,], scale="row",
          labRow=rownames(dge)[i], labCol=group, 
          col=mycol, trace="none", density.info="none", 
          margin=c(8,1), lhei=c(2,10), dendrogram="column", main="Differential Gene Expression in\nNormal vs KIRP Type II CIMP samples", cex.main=0.3, lmat=rbind(c(0,3,4), c(2,1,0)), lwid=c(0.5,10,3))

Data:数据:

dput(dge[1:50,1:50])

new("DGEList", .Data = list(structure(c(2L, 47L, 5L, 185L, 124L, 
272L, 197L, 405L, 59L, 258L, 270L, 226L, 112L, 322L, 381L, 281L, 
145L, 53L, 325L, 107L, 103L, 375L, 70L, 298L, 131L, 79L, 297L, 
2L, 345L, 390L, 113L, 289L, 58L, 400L, 389L, 414L, 228L, 188L, 
392L, 222L, 86L, 355L, 20L, 49L, 211L, 311L, 96L, 304L, 378L, 
145L, 3L, 363L, 199L, 22L, 313L, 305L, 182L, 338L, 32L, 266L, 
314L, 35L, 384L, 361L, 37L, 241L, 4L, 340L, 356L, 26L, 100L, 
212L, 27L, 273L, 25L, 43L, 355L, 5L, 211L, 155L, 372L, 253L, 
180L, 380L, 105L, 13L, 242L, 221L, 401L, 215L, 197L, 233L, 345L, 
136L, 254L, 183L, 111L, 390L, 392L, 298L, 1L, 308L, 89L, 118L, 
306L, 219L, 50L, 100L, 352L, 286L, 229L, 340L, 135L, 194L, 130L, 
124L, 323L, 54L, 105L, 279L, 91L, 99L, 391L, 291L, 395L, 83L, 
353L, 1L, 322L, 185L, 196L, 263L, 33L, 274L, 362L, 265L, 234L, 
356L, 297L, 154L, 81L, 65L, 293L, 144L, 2L, 132L, 270L, 360L, 
371L, 5L, 2L, 95L, 1L, 93L, 248L, 317L, 269L, 373L, 71L, 192L, 
375L, 340L, 60L, 108L, 42L, 128L, 3L, 292L, 312L, 173L, 363L, 
178L, 17L, 387L, 143L, 329L, 385L, 2L, 252L, 118L, 413L, 16L, 
87L, 339L, 88L, 75L, 347L, 184L, 337L, 297L, 136L, 229L, 85L, 
358L, 8L, 283L, 162L, 316L, 45L, 7L, 1L, 319L, 2L, 117L, 137L, 
199L, 300L, 114L, 291L, 92L, 125L, 168L, 153L, 238L, 3L, 259L, 
192L, 360L, 125L, 230L, 80L, 262L, 34L, 266L, 220L, 237L, 272L, 
1L, 326L, 38L, 350L, 273L, 352L, 320L, 45L, 218L, 209L, 224L, 
288L, 145L, 372L, 192L, 307L, 203L, 2L, 277L, 280L, 233L, 368L, 
6L, 2L, 83L, 2L, 192L, 141L, 297L, 203L, 338L, 323L, 210L, 289L, 
275L, 91L, 263L, 3L, 4L, 2L, 28L, 259L, 264L, 317L, 198L, 361L, 
365L, 373L, 312L, 300L, 2L, 283L, 63L, 123L, 324L, 286L, 251L, 
253L, 104L, 284L, 143L, 371L, 237L, 325L, 314L, 16L, 208L, 1L, 
191L, 134L, 279L, 348L, 180L, 2L, 126L, 1L, 369L, 368L, 377L, 
305L, 314L, 38L, 24L, 407L, 223L, 320L, 66L, 3L, 136L, 2L, 240L, 
404L, 227L, 336L, 356L, 403L, 49L, 195L, 260L, 365L, 2L, 405L, 
350L, 302L, 351L, 11L, 358L, 225L, 37L, 340L, 132L, 380L, 276L, 
146L, 80L, 200L, 328L, 2L, 317L, 184L, 269L, 304L, 280L, 3L, 
147L, 4L, 183L, 279L, 198L, 69L, 90L, 337L, 192L, 9L, 173L, 201L, 
265L, 2L, 237L, 291L, 392L, 96L, 287L, 30L, 78L, 383L, 317L, 
325L, 333L, 275L, 1L, 354L, 12L, 37L, 245L, 378L, 316L, 51L, 
284L, 223L, 330L, 308L, 113L, 44L, 321L, 298L, 92L, 4L, 18L, 
241L, 269L, 336L, 22L, 1L, 272L, 4L, 114L, 134L, 224L, 315L, 
72L, 361L, 200L, 135L, 269L, 98L, 260L, 4L, 42L, 4L, 371L, 148L, 
168L, 110L, 323L, 48L, 271L, 33L, 49L, 345L, 2L, 285L, 95L, 79L, 
277L, 38L, 327L, 352L, 124L, 230L, 189L, 283L, 160L, 54L, 220L, 
357L, 211L, 2L, 287L, 273L, 275L, 339L, 2L, 2L, 302L, 203L, 210L, 
190L, 276L, 351L, 51L, 361L, 155L, 232L, 213L, 184L, 330L, 130L, 
56L, 342L, 79L, 209L, 178L, 163L, 86L, 375L, 337L, 96L, 286L, 
335L, 5L, 382L, 398L, 116L, 322L, 16L, 268L, 40L, 261L, 229L, 
263L, 359L, 181L, 117L, 71L, 400L, 113L, 1L, 390L, 23L, 329L, 
284L, 5L, 1L, 330L, 3L, 40L, 102L, 200L, 269L, 67L, 284L, 149L, 
186L, 145L, 93L, 296L, 4L, 321L, 1L, 35L, 53L, 148L, 57L, 283L, 
366L, 280L, 85L, 43L, 357L, 1L, 304L, 9L, 41L, 259L, 326L, 310L, 
106L, 153L, 229L, 214L, 243L, 172L, 30L, 289L, 331L, 174L, 111L, 
359L, 273L, 294L, 365L, 4L, 3L, 379L, 10L, 171L, 216L, 301L, 
151L, 70L, 40L, 34L, 394L, 245L, 390L, 142L, 3L, 146L, 10L, 341L, 
154L, 35L, 263L, 65L, 387L, 356L, 23L, 290L, 24L, 1L, 227L, 91L, 
323L, 389L, 376L, 275L, 55L, 369L, 328L, 257L, 256L, 304L, 102L, 
57L, 62L, 336L, 7L, 217L, 187L, 310L, 401L, 10L, 2L, 284L, 2L, 
141L, 222L, 278L, 376L, 67L, 342L, 276L, 142L, 179L, 74L, 310L, 
253L, 228L, 8L, 14L, 193L, 190L, 89L, 62L, 40L, 330L, 184L, 283L, 
324L, 2L, 244L, 390L, 183L, 277L, 402L, 357L, 388L, 156L, 256L, 
255L, 343L, 114L, 79L, 38L, 361L, 167L, 2L, 301L, 375L, 262L, 
356L, 205L, 1L, 111L, 1L, 58L, 109L, 315L, 210L, 23L, 18L, 218L, 
36L, 268L, 285L, 301L, 7L, 186L, 8L, 258L, 142L, 130L, 291L, 
335L, 71L, 19L, 16L, 385L, 69L, 2L, 276L, 375L, 128L, 42L, 369L, 
333L, 91L, 318L, 371L, 225L, 270L, 226L, 31L, 329L, 106L, 224L, 
2L, 172L, 88L, 292L, 35L, 143L, 2L, 23L, 2L, 74L, 207L, 257L, 
357L, 27L, 341L, 124L, 202L, 72L, 86L, 237L, 7L, 287L, 3L, 44L, 
224L, 221L, 116L, 35L, 30L, 305L, 71L, 337L, 350L, 1L, 365L, 
353L, 62L, 292L, 17L, 288L, 21L, 143L, 228L, 253L, 271L, 178L, 
39L, 382L, 363L, 238L, 6L, 137L, 374L, 331L, 346L, 100L, 1L, 
26L, 114L, 270L, 218L, 370L, 151L, 361L, 48L, 121L, 345L, 68L, 
280L, 308L, 326L, 217L, 2L, 234L, 93L, 40L, 73L, 102L, 85L, 265L, 
335L, 301L, 375L, 1L, 163L, 201L, 123L, 260L, 109L, 357L, 208L, 
319L, 286L, 108L, 252L, 284L, 184L, 181L, 235L, 240L, 2L, 56L, 
194L, 248L, 20L, 232L, 1L, 379L, 4L, 39L, 188L, 291L, 352L, 17L, 
363L, 57L, 177L, 215L, 127L, 300L, 3L, 112L, 5L, 23L, 77L, 199L, 
32L, 385L, 47L, 311L, 139L, 277L, 346L, 1L, 305L, 60L, 162L, 
284L, 13L, 332L, 36L, 159L, 224L, 230L, 304L, 228L, 53L, 376L, 
371L, 190L, 2L, 366L, 380L, 258L, 386L, 132L, 2L, 34L, 5L, 120L, 
375L, 338L, 126L, 41L, 24L, 173L, 33L, 387L, 54L, 146L, 198L, 
292L, 6L, 15L, 226L, 267L, 333L, 153L, 335L, 57L, 380L, 148L, 
32L, 3L, 349L, 189L, 298L, 49L, 403L, 350L, 88L, 94L, 343L, 260L, 
322L, 311L, 92L, 80L, 371L, 388L, 1L, 274L, 73L, 47L, 280L, 229L, 
1L, 316L, 1L, 118L, 261L, 254L, 347L, 58L, 388L, 209L, 264L, 
298L, 56L, 288L, 365L, 227L, 365L, 321L, 179L, 92L, 86L, 135L, 
35L, 279L, 133L, 190L, 353L, 2L, 314L, 93L, 223L, 329L, 45L, 
379L, 16L, 211L, 216L, 262L, 306L, 202L, 108L, 90L, 319L, 204L, 
4L, 273L, 381L, 332L, 15L, 118L, 3L, 211L, 138L, 48L, 255L, 302L, 
283L, 22L, 368L, 29L, 228L, 363L, 405L, 309L, 58L, 350L, 286L, 
301L, 78L, 159L, 65L, 149L, 399L, 306L, 74L, 198L, 336L, 1L, 
327L, 91L, 312L, 259L, 108L, 345L, 168L, 70L, 251L, 221L, 314L, 
253L, 169L, 97L, 231L, 177L, 4L, 325L, 291L, 293L, 386L, 138L, 
2L, 181L, 1L, 10L, 214L, 292L, 311L, 28L, 382L, 163L, 262L, 347L, 
77L, 242L, 404L, 340L, 9L, 416L, 232L, 168L, 157L, 95L, 14L, 
297L, 303L, 113L, 354L, 129L, 313L, 70L, 190L, 296L, 67L, 355L, 
17L, 103L, 266L, 257L, 377L, 226L, 98L, 132L, 345L, 241L, 7L, 
108L, 54L, 320L, 395L, 205L, 196L, 265L, 3L, 140L, 257L, 190L, 
74L, 95L, 315L, 177L, 151L, 130L, 169L, 235L, 5L, 188L, 311L, 
9L, 72L, 277L, 23L, 16L, 354L, 302L, 378L, 353L, 229L, 2L, 338L, 
19L, 156L, 262L, 352L, 288L, 274L, 228L, 200L, 351L, 310L, 127L, 
28L, 355L, 237L, 78L, 2L, 385L, 273L, 304L, 330L, 1L, 2L, 377L, 
138L, 141L, 22L, 286L, 318L, 399L, 38L, 230L, 97L, 295L, 57L, 
312L, 2L, 263L, 4L, 385L, 240L, 149L, 58L, 24L, 45L, 300L, 104L, 
263L, 367L, 1L, 319L, 100L, 169L, 298L, 36L, 383L, 130L, 91L, 
241L, 159L, 320L, 233L, 120L, 347L, 351L, 194L, 4L, 372L, 355L, 
329L, 394L, 8L, 3L, 110L, 1L, 311L, 143L, 373L, 178L, 181L, 379L, 
393L, 307L, 274L, 121L, 86L, 277L, 3L, 202L, 365L, 124L, 378L, 
374L, 107L, 348L, 57L, 370L, 304L, 18L, 139L, 255L, 325L, 286L, 
13L, 391L, 293L, 46L, 271L, 345L, 116L, 372L, 242L, 213L, 248L, 
149L, 295L, 4L, 106L, 263L, 303L, 279L, 119L, 2L, 262L, 2L, 242L, 
373L, 304L, 246L, 216L, 18L, 265L, 255L, 199L, 30L, 291L, 6L, 
357L, 133L, 359L, 168L, 266L, 80L, 114L, 352L, 15L, 157L, 389L, 
61L, 40L, 60L, 273L, 91L, 130L, 156L, 329L, 387L, 292L, 397L, 
403L, 323L, 301L, 215L, 332L, 177L, 375L, 9L, 161L, 181L, 330L, 
335L, 254L, 2L, 178L, 120L, 70L, 49L, 352L, 287L, 351L, 368L, 
214L, 389L, 221L, 44L, 60L, 2L, 121L, 272L, 363L, 36L, 388L, 
284L, 63L, 38L, 57L, 47L, 263L, 342L, 237L, 312L, 300L, 228L, 
22L, 373L, 201L, 116L, 77L, 347L, 168L, 318L, 257L, 107L, 27L, 
61L, 326L, 5L, 390L, 229L, 349L, 279L, 120L, 1L, 205L, 6L, 108L, 
141L, 129L, 47L, 83L, 327L, 23L, 54L, 184L, 181L, 249L, 188L, 
143L, 188L, 102L, 107L, 228L, 35L, 82L, 343L, 290L, 12L, 311L, 
232L, 1L, 339L, 53L, 159L, 212L, 346L, 239L, 316L, 305L, 158L, 
313L, 280L, 139L, 40L, 68L, 320L, 84L, 4L, 143L, 276L, 275L, 
310L, 2L, 1L, 147L, 1L, 339L, 67L, 301L, 117L, 329L, 347L, 372L, 
276L, 258L, 24L, 310L, 1L, 5L, 1L, 335L, 368L, 47L, 74L, 209L, 
262L, 83L, 371L, 28L, 341L, 1L, 305L, 31L, 9L, 357L, 325L, 259L, 
30L, 313L, 344L, 216L, 311L, 210L, 100L, 48L, 234L, 330L, 6L, 
19L, 285L, 350L, 275L, 180L, 8L, 128L, 2L, 120L, 162L, 266L, 
309L, 35L, 375L, 83L, 192L, 258L, 147L, 202L, 142L, 41L, 2L, 
313L, 9L, 197L, 126L, 75L, 368L, 323L, 14L, 199L, 63L, 5L, 380L, 
91L, 114L, 311L, 29L, 296L, 301L, 203L, 276L, 246L, 335L, 182L, 
45L, 11L, 387L, 215L, 1L, 15L, 383L, 364L, 332L, 7L, 2L, 132L, 
2L, 116L, 130L, 218L, 321L, 47L, 351L, 264L, 192L, 171L, 126L, 
227L, 2L, 363L, 229L, 379L, 210L, 188L, 154L, 285L, 11L, 314L, 
338L, 177L, 323L, 2L, 362L, 382L, 49L, 237L, 375L, 310L, 244L, 
185L, 254L, 241L, 346L, 111L, 27L, 230L, 383L, 175L, 2L, 232L, 
386L, 284L, 287L, 1L, 1L, 347L, 9L, 95L, 285L, 339L, 245L, 397L, 
91L, 229L, 298L, 26L, 396L, 385L, 401L, 24L, 8L, 347L, 264L, 
122L, 146L, 128L, 28L, 306L, 93L, 390L, 415L, 2L, 300L, 207L, 
262L, 287L, 127L, 51L, 230L, 43L, 297L, 194L, 348L, 209L, 213L, 
193L, 365L, 165L, 3L, 69L, 17L, 342L, 382L, 131L, 2L, 328L, 128L, 
109L, 207L, 199L, 305L, 43L, 357L, 269L, 207L, 209L, 162L, 251L, 
4L, 195L, 190L, 104L, 275L, 153L, 117L, 302L, 51L, 307L, 69L, 
358L, 341L, 4L, 283L, 359L, 46L, 238L, 12L, 293L, 312L, 212L, 
215L, 271L, 348L, 136L, 15L, 353L, 52L, 174L, 190L, 18L, 123L, 
321L, 335L, 1L, 2L, 301L, 5L, 365L, 226L, 285L, 206L, 28L, 395L, 
297L, 245L, 13L, 75L, 281L, 32L, 324L, 7L, 393L, 94L, 181L, 125L, 
153L, 368L, 268L, 10L, 191L, 369L, 1L, 326L, 180L, 188L, 314L, 
58L, 375L, 53L, 122L, 236L, 235L, 265L, 207L, 156L, 165L, 313L, 
171L, 5L, 385L, 256L, 276L, 29L, 129L, 1L, 216L, 128L, 72L, 117L, 
233L, 287L, 378L, 353L, 204L, 80L, 257L, 65L, 315L, 190L, 201L, 
227L, 12L, 198L, 146L, 103L, 15L, 48L, 280L, 155L, 308L, 359L, 
1L, 253L, 144L, 19L, 288L, 49L, 329L, 119L, 113L, 200L, 151L, 
284L, 196L, 102L, 295L, 358L, 240L, 128L, 241L, 281L, 264L, 349L, 
3L, 2L, 20L, 3L, 131L, 144L, 180L, 356L, 57L, 331L, 232L, 175L, 
199L, 114L, 215L, 191L, 74L, 5L, 88L, 144L, 202L, 135L, 355L, 
30L, 283L, 291L, 98L, 350L, 1L, 371L, 26L, 251L, 288L, 398L, 
270L, 353L, 93L, 237L, 225L, 333L, 174L, 45L, 8L, 391L, 197L, 
6L, 65L, 330L, 346L, 367L, 122L, 1L, 244L, 2L, 95L, 191L, 166L, 
360L, 63L, 305L, 118L, 182L, 172L, 110L, 236L, 6L, 17L, 6L, 365L, 
237L, 173L, 52L, 322L, 23L, 290L, 373L, 354L, 307L, 1L, 340L, 
47L, 97L, 273L, 329L, 284L, 316L, 203L, 219L, 253L, 315L, 142L, 
377L, 325L, 321L, 274L, 2L, 40L, 336L, 321L, 351L, 1L, 4L, 236L, 
5L, 278L, 195L, 243L, 348L, 40L, 9L, 230L, 215L, 364L, 39L, 196L, 
58L, 332L, 114L, 297L, 130L, 165L, 65L, 151L, 75L, 288L, 322L, 
200L, 380L, 4L, 227L, 198L, 217L, 233L, 111L, 276L, 293L, 167L, 
211L, 303L, 287L, 160L, 128L, 177L, 308L, 147L, 1L, 136L, 376L, 
274L, 335L, 176L, 1L, 397L, 1L, 46L, 137L, 315L, 271L, 373L, 
393L, 323L, 196L, 232L, 351L, 130L, 207L, 174L, 1L, 197L, 229L, 
123L, 228L, 368L, 36L, 383L, 140L, 322L, 342L, 2L, 200L, 345L, 
336L, 294L, 249L, 227L, 276L, 88L, 307L, 119L, 390L, 234L, 70L, 
46L, 64L, 241L, 205L, 132L, 208L, 270L, 343L, 13L, 1L, 221L, 
1L, 168L, 38L, 266L, 333L, 272L, 358L, 335L, 79L, 241L, 110L, 
33L, 1L, 1L, 2L, 41L, 295L, 165L, 287L, 368L, 332L, 337L, 357L, 
30L, 284L, 117L, 324L, 356L, 162L, 309L, 270L, 306L, 49L, 7L, 
282L, 155L, 12L, 194L, 68L, 259L, 208L, 85L, 1L, 214L, 63L, 252L, 
305L, 117L, 1L, 398L, 131L, 399L, 221L, 323L, 142L, 373L, 397L, 
262L, 277L, 389L, 315L, 324L, 98L, 393L, 8L, 190L, 285L, 58L, 
56L, 194L, 87L, 340L, 192L, 239L, 382L, 1L, 246L, 400L, 254L, 
269L, 161L, 314L, 148L, 146L, 276L, 200L, 334L, 284L, 185L, 147L, 
341L, 140L, 203L, 280L, 16L, 330L, 392L, 325L, 6L, 271L, 6L, 
75L, 241L, 205L, 14L, 108L, 363L, 190L, 148L, 269L, 169L, 226L, 
6L, 34L, 137L, 398L, 234L, 276L, 104L, 381L, 355L, 341L, 12L, 
322L, 325L, 1L, 360L, 123L, 224L, 291L, 400L, 301L, 285L, 245L, 
232L, 359L, 344L, 145L, 64L, 369L, 272L, 194L, 4L, 26L, 326L, 
309L, 323L, 6L, 1L, 376L, 2L, 102L, 109L, 202L, 298L, 72L, 366L, 
230L, 213L, 221L, 84L, 242L, 2L, 339L, 8L, 42L, 247L, 204L, 111L, 
28L, 17L, 281L, 375L, 150L, 337L, 1L, 349L, 24L, 229L, 262L, 
378L, 277L, 358L, 170L, 254L, 261L, 285L, 205L, 48L, 10L, 333L, 
198L, 2L, 324L, 309L, 355L, 359L, 4L, 1L, 55L, 4L, 91L, 386L, 
289L, 45L, 13L, 347L, 263L, 370L, 303L, 384L, 127L, 2L, 131L, 
6L, 353L, 165L, 333L, 271L, 295L, 105L, 18L, 109L, 20L, 14L, 
1L, 305L, 30L, 380L, 397L, 12L, 293L, 385L, 213L, 357L, 201L, 
312L, 282L, 23L, 318L, 72L, 301L, 4L, 146L, 96L, 302L, 379L, 
2L, 2L, 379L, 2L, 188L, 174L, 223L, 304L, 388L, 392L, 312L, 278L, 
182L, 144L, 334L, 5L, 283L, 195L, 59L, 310L, 179L, 192L, 30L, 
316L, 335L, 68L, 387L, 332L, 3L, 374L, 402L, 143L, 305L, 20L, 
358L, 21L, 208L, 239L, 214L, 407L, 133L, 97L, 326L, 42L, 256L, 
123L, 63L, 45L, 395L, 276L, 124L, 1L, 282L, 204L, 21L, 248L, 
311L, 74L, 62L, 416L, 347L, 278L, 276L, 69L, 385L, 20L, 297L, 
6L, 324L, 176L, 188L, 127L, 108L, 331L, 307L, 214L, 93L, 390L, 
2L, 300L, 80L, 349L, 344L, 109L, 398L, 339L, 173L, 244L, 323L, 
272L, 259L, 185L, 172L, 366L, 226L, 129L, 35L, 303L, 404L, 391L, 
206L, 2L, 346L, 4L, 109L, 30L, 218L, 171L, 17L, 332L, 240L, 239L, 
384L, 102L, 73L, 2L, 290L, 245L, 350L, 221L, 39L, 214L, 233L, 
74L, 378L, 329L, 286L, 359L, 4L, 315L, 115L, 353L, 306L, 328L, 
226L, 305L, 255L, 297L, 167L, 356L, 228L, 392L, 244L, 398L, 210L, 
1L, 170L, 92L, 264L, 300L, 8L, 4L, 197L, 2L, 7L, 231L, 352L, 
118L, 320L, 24L, 176L, 252L, 392L, 13L, 133L, 3L, 209L, 258L, 
121L, 186L, 204L, 80L, 168L, 379L, 374L, 335L, 271L, 39L, 279L, 
44L, 148L, 262L, 95L, 99L, 388L, 37L, 309L, 365L, 136L, 333L, 
291L, 164L, 215L, 27L, 343L, 3L, 115L, 233L, 368L, 342L, 51L, 
4L, 329L, 2L, 14L, 37L, 301L, 125L, 31L, 315L, 389L, 34L, 218L, 
38L, 312L, 11L, 4L, 227L, 271L, 228L, 102L, 357L, 208L, 316L, 
47L, 20L, 369L, 45L, 4L, 390L, 302L, 94L, 19L, 362L, 251L, 394L, 
335L, 32L, 258L, 325L, 256L, 73L, 52L, 110L, 288L, 8L, 58L, 113L, 
353L, 320L, 136L, 2L, 230L, 2L, 42L, 123L, 327L, 222L, 354L, 
338L, 345L, 236L, 128L, 102L, 41L, 135L, 7L, 3L, 31L, 293L, 347L, 
328L, 296L, 16L, 47L, 385L, 86L, 294L, 2L, 19L, 246L, 164L, 371L, 
317L, 297L, 100L, 346L, 352L, 206L, 379L, 252L, 40L, 363L, 54L, 
186L, 1L, 339L, 139L, 274L, 391L, 194L, 1L, 287L, 1L, 128L, 53L, 
268L, 180L, 343L, 13L, 213L, 377L, 270L, 80L, 204L, 119L, 118L, 
118L, 10L, 103L, 375L, 202L, 21L, 63L, 316L, 393L, 342L, 344L, 
1L, 353L, 93L, 86L, 324L, 327L, 336L, 319L, 230L, 308L, 167L, 
355L, 219L, 43L, 32L, 389L, 199L, 3L, 96L, 386L, 290L, 388L, 
6L), dim = c(50L, 50L), dimnames = list(c("A2ML1", "ABCA4", "ABCB5", 
"ABHD1", "ACRBP", "ACSL5", "ACSM5", "ACSS3", "ACVRL1", "ADH1C", 
"ADRB2", "AEBP1", "AFMID", "AIF1", "AIM2", "AKR1B10", "AKR1C4", 
"AKR7L", "ALDH3B2", "ALDH8A1", "ALDOC", "ALOX5AP", "ALPK3", "AMFR", 
"ANKRD22", "ANKRD2", "ANKRD45", "ANXA8L2", "ANXA9", "AOC3", "APBB1IP", 
"APH1B", "APOBEC3C", "APOL3", "APOL4", "APOM", "APP", "AQP1", 
"ARFRP1", "ARHGAP29", "ARHGDIB", "ARL11", "ARL4D", "ARRDC3", 
"ASCL3", "B3GNT3", "B3GNT8", "BAMBI", "BAZ2B", "BCL2L14"), c("TCGA.BQ.7051.11A", 
"TCGA.DZ.6132.11A", "TCGA.CZ.4864.11A", "TCGA.KN.8426.11A", "TCGA.CZ.5982.11A", 
"TCGA.A4.A4ZT.11A", "TCGA.CZ.5468.11A", "TCGA.BQ.5894.11A", "TCGA.B0.5699.11A", 
"TCGA.KL.8339.11A", "TCGA.CZ.5988.11A", "TCGA.CZ.5461.11A", "TCGA.CJ.6030.11A", 
"TCGA.B8.5549.11A", "TCGA.CW.5587.11A", "TCGA.CZ.5987.11A", "TCGA.CJ.5677.11A", 
"TCGA.CZ.5470.11A", "TCGA.B2.5636.11A", "TCGA.CJ.5676.11A", "TCGA.KN.8435.11A", 
"TCGA.BQ.5877.11A", "TCGA.CZ.5984.11A", "TCGA.CZ.5457.11A", "TCGA.CZ.4863.11A", 
"TCGA.CZ.5467.11A", "TCGA.A3.3387.11A", "TCGA.CZ.5456.11A", "TCGA.B9.4115.11A", 
"TCGA.GL.6846.11A", "TCGA.B0.5402.11A", "TCGA.DZ.6133.11A", "TCGA.B0.5691.11A", 
"TCGA.B0.4700.11A", "TCGA.B0.5696.11A", "TCGA.CW.5581.11A", "TCGA.BQ.7045.11A", 
"TCGA.KN.8427.11A", "TCGA.GL.A59R.11A", "TCGA.CW.5584.11A", "TCGA.BQ.5878.11A", 
"TCGA.CW.5589.11A", "TCGA.CJ.5672.11A", "TCGA.BQ.7044.11A", "TCGA.CZ.5466.11A", 
"TCGA.BQ.5887.11A", "TCGA.CZ.4865.11A", "TCGA.CZ.5458.11A", "TCGA.Y8.A8RY.11A", 
"TCGA.KN.8422.11A"))), structure(list(group = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L), levels = "normal", class = "factor"), lib.size = c(94225, 
93733, 87671, 94478, 81956, 81966, 91604, 87469, 81048, 91004, 
81264, 92424, 91496, 85877, 87734, 83846, 88254, 92553, 89254, 
91736, 96220, 84907, 90231, 87189, 90384, 87166, 81495, 81436, 
90285, 83664, 95495, 84763, 91291, 85265, 87117, 81741, 88278, 
92099, 81840, 90942, 88312, 89034, 89739, 90942, 95178, 88887, 
91263, 85695, 87717, 90705), norm.factors = c(1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1)), row.names = c("TCGA.BQ.7051.11A", "TCGA.DZ.6132.11A", 
"TCGA.CZ.4864.11A", "TCGA.KN.8426.11A", "TCGA.CZ.5982.11A", "TCGA.A4.A4ZT.11A", 
"TCGA.CZ.5468.11A", "TCGA.BQ.5894.11A", "TCGA.B0.5699.11A", "TCGA.KL.8339.11A", 
"TCGA.CZ.5988.11A", "TCGA.CZ.5461.11A", "TCGA.CJ.6030.11A", "TCGA.B8.5549.11A", 
"TCGA.CW.5587.11A", "TCGA.CZ.5987.11A", "TCGA.CJ.5677.11A", "TCGA.CZ.5470.11A", 
"TCGA.B2.5636.11A", "TCGA.CJ.5676.11A", "TCGA.KN.8435.11A", "TCGA.BQ.5877.11A", 
"TCGA.CZ.5984.11A", "TCGA.CZ.5457.11A", "TCGA.CZ.4863.11A", "TCGA.CZ.5467.11A", 
"TCGA.A3.3387.11A", "TCGA.CZ.5456.11A", "TCGA.B9.4115.11A", "TCGA.GL.6846.11A", 
"TCGA.B0.5402.11A", "TCGA.DZ.6133.11A", "TCGA.B0.5691.11A", "TCGA.B0.4700.11A", 
"TCGA.B0.5696.11A", "TCGA.CW.5581.11A", "TCGA.BQ.7045.11A", "TCGA.KN.8427.11A", 
"TCGA.GL.A59R.11A", "TCGA.CW.5584.11A", "TCGA.BQ.5878.11A", "TCGA.CW.5589.11A", 
"TCGA.CJ.5672.11A", "TCGA.BQ.7044.11A", "TCGA.CZ.5466.11A", "TCGA.BQ.5887.11A", 
"TCGA.CZ.4865.11A", "TCGA.CZ.5458.11A", "TCGA.Y8.A8RY.11A", "TCGA.KN.8422.11A"
), class = "data.frame")))

I used some simulated data to try this, since it seems that the question can be generalized to other datasets.我使用了一些模拟数据来尝试这个,因为这个问题似乎可以推广到其他数据集。 I also ran into errors with your subset of data.我也遇到了您的数据子集的错误。

set.seed(123)
data <- as.matrix(data.frame(
    a1 = rnorm(100, 0, 1),
    a2 = rnorm(100, 0, 1),
    a3 = rnorm(100, 0, 1),
    b1 = rnorm(100, 0, 1.2),
    b2 = rnorm(100, 0, 1.2),
    b3 = rnorm(100, 0, 1.2)
))

Here we see that b1 would look nicer next to b3 and b2 .在这里我们看到b1b3b2旁边看起来更好。

library(gplots)
ht <- heatmap.2(
    x = data,
    ColSideColors = c(rep("#b66363", 3), rep("#8fa8c0", 3)),
    col = colorpanel(1000,"#FFA500","white","#2E2787"),
    trace = "none",
    key = FALSE,
    dendrogram = "column",
    main = "Example Data",
    labRow = FALSE
)

示例数据

Looking at the structure of the heatmap output, the dendrogram is stored as a "dendrogram" class object, which can be manipulated with with the reorder() generic.查看热图 output 的结构,树状图存储为“树状图”class object,可以使用reorder()泛型对其进行操作。

The documentation doesn't reveal too much, but the second argument wts describes arbitrary weights to determine a reordered dendrogram.该文档没有透露太多,但第二个参数wts描述了任意权重以确定重新排序的树状图。 From what I can tell, large values generally get placed to the right.据我所知,大值通常放在右边。 From trial-and-error, it appears that supplying weights in the original order of the columns worked out.通过反复试验,似乎可以按列的原始顺序提供权重。 This essentially flips branches without affecting the distance metrics.这实质上是在不影响距离度量的情况下翻转分支。

colden <- ht$colDendrogram
colden_reordered <- reorder(colden, c(10, 1, 1, 100, 300, 200))
plot(colden, main = "original dendrogram")
plot(colden_reordered, main = "modified dendrogram")

原始树状图修改后的树状图

When can then plot the heatmap with the new dendrogram using the Colv option. plot 什么时候可以使用Colv选项使用新的树状图生成热图。

ht2 <- heatmap.2(
    x = data,
    ColSideColors = c(rep("#b66363", 3), rep("#8fa8c0", 3)),
    col = colorpanel(1000,"#FFA500","white","#2E2787"),
    trace = "none",
    key = FALSE,
    dendrogram = "column",
    Colv = colden_reordered,
    main = "Reordered manually",
    labRow = FALSE
)

手动重新排序

The dendsort package may be a better go-to tool for sorting dendrograms. dendsort可能是对树状图进行排序的更好的首选工具。 In short, the dendsort() moves clusters with smaller average distances to the left.简而言之, dendsort()将平均距离较小的簇向左移动。 Using this alone seems to solve the issue.单独使用它似乎可以解决问题。 With larger heatmaps, the benefit may be apparent when looking for patterns in the data.使用较大的热图,在查找数据中的模式时,好处可能会很明显。 Seems preferable to manual reordering, when possible.在可能的情况下,似乎比手动重新排序更可取。 Below I've modified the option Colv to use this function.下面我修改了选项Colv以使用这个 function。

library(dendsort)

ht3 <- heatmap.2(
    x = data,
    ColSideColors = c(rep("#b66363", 3), rep("#8fa8c0", 3)),
    col = colorpanel(1000,"#FFA500","white","#2E2787"),
    trace = "none",
    density.info = "none",
    key = FALSE,
    dendrogram = "column",
    Colv = dendsort(colden),
    main = "Reordered w/ dendsort()",
    labRow = FALSE
)

用 dendsort 重新排序

For more options for heatmaps concerning clustering and groups, I use the ComplexHeatmap package, which has wonderful documentation.有关聚类和组的热图的更多选项,我使用ComplexHeatmap package,它有很好的文档。 They have many options for splitting columns;他们有很多拆分列的选项; for instance, slicing up the columns into groups first, and then clustering within those slices.例如,首先将列切片成组,然后在这些切片内聚类。 See this section 2.7: Chapter 2 A Single Heatmap |请参阅第 2.7 节: 第 2 章单个热图 | ComplexHeatmap Complete Reference . ComplexHeatmap 完整参考

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM