我有以下 MWE,我在其中制作了一个热图,而没有执行任何聚类和显示任何树状图。我想以比现在更好看的方式将我的行(基因)按类别分组在一起。
这是 MWE:
#MWE
library(gplots)
mymat <- matrix(rexp(600, rate=.1), ncol=12)
colnames(mymat) <- c(rep("treatment_1", 3), rep("treatment_2", 3), rep("treatment_3", 3), rep("treatment_4", 3))
rownames(mymat) <- paste("gene", 1:dim(mymat)[1], sep="_")
rownames(mymat) <- paste(rownames(mymat), c(rep("CATEGORY_1", 10), rep("CATEGORY_2", 10), rep("CATEGORY_3", 10), rep("CATEGORY_4", 10), rep("CATEGORY_5", 10)), sep=" --- ")
mymat #50x12 MATRIX. 50 GENES IN 5 CATEGORIES, ACROSS 4 TREATMENTS WITH 3 REPLICATES EACH
png(filename="TEST.png", height=800, width=600)
print(
heatmap.2(mymat, col=greenred(75),
trace="none",
keysize=1,
margins=c(8,14),
scale="row",
dendrogram="none",
Colv = FALSE,
Rowv = FALSE,
cexRow=0.5 + 1/log10(dim(mymat)[1]),
cexCol=1.25,
main="Genes grouped …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,具有 4 组患者和细胞类型之间的共同特征。我有很多不同的功能,但共享的功能(存在于多个组中)只是其中几个。
我想制作一个马戏团图,反映不同组患者和细胞类型之间的共享特征之间的联系,同时给出每组中有多少不共享特征的想法。
在我看来,它应该是一个由 4 个部分组成的图(每组患者和细胞类型一个),它们之间有一些联系。每个扇区的大小应该反映组中特征的总数,并且该区域的大部分不应该与其他组连接,而是空的。
这是我到目前为止所拥有的,但我不希望部门专门针对每个功能,而只针对每组患者和细胞类型。
微量元素:
library(circlize)
patients <- c(rep("patient1",20), rep("patient2",10))
cell.types <- c(rep("cell1",12), rep("cell2",8),rep("cell1",6), rep("cell2",4))
features <- c(paste("feature",1:12,sep="_"), paste("feature",9:16,sep="_"), paste("feature",c(1,2,9,10,17,18),sep="_"), paste("feature",c(1,18,19,20),sep="_"))
dat <- data.frame(patient=patients, cell.type=cell.types, feature=features)
dat
dat <- with(dat, table(paste(patient,cell.type,sep='|'), feature))
dat
chordDiagram(as.data.frame(dat), transparency = 0.5)
Run Code Online (Sandbox Code Playgroud)
编辑!!
@m-dz 在他的答案中显示的实际上是我正在寻找的格式,4 个不同的病人/细胞类型组合的 4 个扇区,仅显示连接,而非连接的特征虽然没有显示,但应该考虑在内该部门的规模。
然而,我意识到我遇到的情况比上面 MWE 中的情况更复杂。
一个特征被认为出现在 2 个患者/细胞类型组中,不仅当它在 2 个组中相同时,而且当它相似时......(序列同一性高于阈值)。这样一来,我就裁员了……
患者 1-细胞 1 中的特征 A 可以连接到患者 2-细胞 1 中的特征 A,也可以连接到特征 B...对于患者 1-细胞 1,特征 A 只能计数一次(唯一计数),并扩展到患者 2- 中的 2 个不同特征细胞1。
请参阅下面的示例,更准确地了解我的实际数据,并看看使用此示例是否可以获得最终的 circos …
我想用来根据相同数据设置2个向量子集replace=TRUE。
即使两个向量都可以包含相同的值,但它们在相同的索引位置也不能相同。
例如:
> set.seed(1)
> a <- sample(15, 10, replace=T)
> b <- sample(15, 10, replace=T)
> a
[1] 4 6 9 14 4 14 15 10 10 1
> b
[1] 4 3 11 6 12 8 11 15 6 12
> a==b
[1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
在这种情况下,向量a和b在索引1处包含相同的值(值== 4),这对我来说是错误的。
有简单的方法可以纠正此问题吗?
并且可以在subset台阶上完成吗?
或者我应该经过一个循环检查逐个元素,如果值相同,进行其他选择的b[i],并再次检查,如果它是不相同的循环往复?
非常感谢!
我试图用ggplot2将曲线拟合到下面的散点图.
我找到了geom_smooth功能,但尝试不同的方法和跨度,我似乎从来没有得到正确的曲线...
任何人都可以得到更好的曲线,正确适合,看起来不那么摇摆?谢谢!
在下面找到MWE:
my.df <- data.frame(sample=paste("samp",1:60,sep=""),
reads=c(523, 536, 1046, 1071, 2092, 2142, 4184, 4283, 8367, 8566, 16734, 17132, 33467, 34264, 66934, 68528, 133867, 137056, 267733, 274112, 409, 439, 818, 877, 1635, 1754, 3269, 3508, 6538, 7015, 13075, 14030, 26149, 28060, 52297, 56120, 104594, 112240, 209188, 224479, 374, 463, 748, 925, 1496, 1850, 2991, 3699, 5982, 7397, 11963, 14794, 23925, 29587, 47850, 59174, 95699, 118347, 191397, 236694),
number=c(17, 14, 51, 45, 136, 130, 326, 333, 742, 738, 1637, …Run Code Online (Sandbox Code Playgroud)