nhanhocu / metamicrobiomeR

An R package for analysis of microbiome relative abundance data using zero inflated beta GAMLSS and meta-analysis across microbiome studies using random effects models
https://github.com/nhanhocu/metamicrobiomeR
33 stars 11 forks source link

problem with taxa.compare #9

Open hihithere opened 4 years ago

hihithere commented 4 years ago

Hello,

taxa.compare(taxtab=data, propmed.rel="lm",comvar="x", adjustvar=c("a","b","c","d","e"),p.adjust.method="fdr", longitudinal="no",transform="asin.sqrt") is working well, but

taxacom6.rmg<-taxa.compare(taxtab=data, propmed.rel="gamlss",comvar="x", adjustvar=c("a","b","c","d","e"),p.adjust.method="fdr", longitudinal="no",transform="none") is not working. [1] 1 Error in [.data.frame(taxdat, , c(taxname[i], comvar, adjustvar, "personid")) : undefined columns selected

Could you please tell me what's going on here? Thanks a lot for your help. Best,

nhanhocu commented 4 years ago

Hi, Thanks for trying the package. Sorry for the issue. This can be fixed as below. Please let me know if you have any further question/issue. Thanks, Nhan

load the package

library(metamicrobiomeR)

open taxa.compare source code to edit

taxa.compare=edit()

edit the source code from line 168 as below then save (everything else before and after the code below remain the same)

if (propmed.rel == "gamlss") {

  if (longitudinal == "yes") {
      testdat <- taxdat[, c(taxname[i], comvar, adjustvar, "personid")]
      testdat[, taxname[i]][testdat[, taxname[i]] >= 1] <- 0.9999
      testdat <- stats::na.omit(testdat)
    fitsum <- try(summary(gamlss::gamlss(stats::as.formula(paste(taxname[i], 
      paste(c(comvar, adjustvar, "random(personid)"), 
        collapse = "+"), sep = "~")), family = BEZI, 
      data = testdat, trace = FALSE), save = TRUE))
  }
  if (longitudinal == "no") {
      testdat <- taxdat[, c(taxname[i], comvar, adjustvar)]
      testdat[, taxname[i]][testdat[, taxname[i]] >= 1] <- 0.9999
      testdat <- stats::na.omit(testdat)
    fitsum <- try(summary(gamlss::gamlss(stats::as.formula(paste(taxname[i], 
      paste(c(comvar, adjustvar), collapse = "+"), 
      sep = "~")), family = BEZI, data = testdat, 
      trace = FALSE), save = TRUE))
  }