我目前正在尝试在宏基因组环境中为每个样本构建树。
以下是一个示例数据集:
import cv2
from skimage.measure import regionprops
img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)
image, contours, hierarchy = cv2.findContours(img,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)`
现在要收集每个分类水平的价值。实际上,如果我取一个样本的值,那么它们都处于NA的最低分类水平(物种):
library(phyloseq)
library(dplyr)
data(GlobalPatterns)
mydata <- merge(GlobalPatterns@tax_table, GlobalPatterns@otu_table, by = "row.names")
mydata <- mydata %>% dplyr::select(-one_of("Row.names"))
mydata$pathString <- apply(mydata[,1:7], 1, paste, collapse="/")
tree <- data.tree::as.Node(mydata)
我使用了这里提出的想法:Aggregating values on a data tree with R来执行聚合,这是按样本进行的示例:
print(tree, "CL3")
我的想法是创建一个适用于样本的向量n并且在聚合中执行的函数。我尝试通过添加“sample”参数来更改函数,但没有成功
myApply <- function(node) {
node$CL3_2 <- sum(c(node$CL3, purrr::map_dbl(node$children, myApply)), na.rm = TRUE)
}
myApply(tree)
print(tree, "CL3_2")