# Import metadata
metadata <-read.csv("~/Documents/gbru_fy18_rice_methane/march2020/metadata_biomassCH4_noRIL9.csv", header=TRUE)

Define function to filter genes with low abundance and many zeros


#Define the geometric mean for all values greater than 0
geomean <- function(x) { exp(mean(log(x[x>0]))) }

# Create a function to filter rows by the proportion of nonzero samples and the geometric mean of the nonzero samples
prefilter <- function(x, zcutoff, mcutoff){
    nzvect <- apply(x, 1, function(y){
      ((sum(y>0)/length(y))> zcutoff) & (geomean(y)> mcutoff)
      })
    lowcounts <- t(as.data.frame(apply(x[!nzvect,],2,sum)))
    rownames(lowcounts)<-c("lowconts")
    df1 <-rbind(lowcounts, x[nzvect,])
    return(df1)
}

Load eggnog count data

# Import OTU counts
eggnogdata<-read.table("~/Documents/gbru_fy18_rice_methane/march2020/gbru_fy20_rice_methane.eggnog.tsv", sep = "\t", header=TRUE)
row.names(eggnogdata)<-eggnogdata$EGGNOG_ID
eggnogdata2<-eggnogdata[,5:100]
eggnogdata2[is.na(eggnogdata2)]<-0
seeddata<-read.table("~/Documents/gbru_fy18_rice_methane/march2020/gbru_fy20_rice_methane.seed.tsv", sep = "\t", header=TRUE)
seeddata2<-seeddata[,5:100]
seeddata2[is.na(seeddata2)]<-0
interpro2godata<-read.table("~/Documents/gbru_fy18_rice_methane/march2020/gbru_fy20_rice_methane.interpro2go.tsv", sep = "\t", header=TRUE)
row.names(interpro2godata)<-interpro2godata$INTERPRO2GO_ID
interpro2godata2<-interpro2godata[,5:100]
interpro2godata2[is.na(interpro2godata2)]<-0
# Move feature ID to rownames
#Prefilter data
e_filt<-prefilter(eggnogdata2, 0.8, 200)
s_filt<-prefilter(seeddata2, 0.8, 200)
i_filt<-prefilter(interpro2godata2, 0.8, 200)

ALDEx2 statistical analysis for compositional count data at the family level

library("ALDEx2")
# Construct covariates matrix
covariates1 <- data.frame(genotype=metadata$genotype, sumch4=log10(metadata$sum_ch4), dev=metadata$dev)
# Process 

#select D3 developmental stage 
d3cov<-  covariates1[covariates1$dev=="D3",]
d3cov<-d3cov[1:30,]
d3rows <- as.numeric(rownames(d3cov))

# create model matrix for log10 of total methane
mm1 <- model.matrix(~ sumch4, d3cov)

Run Centered log ratio transformations and Dirichlet sampling

# run CLR transformations and sampling
i.clr<-  aldex.clr(i_filt[,d3rows], mm1, mc.samples = 128, denom="all", verbose=TRUE, useMC=TRUE)
multicore environment is is OK -- using the BiocParallel package
removed rows with sums equal to zero
computing center with all features
data format is OK
'package:stats' may not be available when loading'package:stats' may not be available when loadingdirichlet samples complete
'package:stats' may not be available when loading'package:stats' may not be available when loadingtransformation complete
s.clr<-  aldex.clr(s_filt[,d3rows], mm1, mc.samples = 128, denom="all", verbose=TRUE, useMC=TRUE)
multicore environment is is OK -- using the BiocParallel package
removed rows with sums equal to zero
computing center with all features
data format is OK
'package:stats' may not be available when loading'package:stats' may not be available when loadingdirichlet samples complete
'package:stats' may not be available when loading'package:stats' may not be available when loadingtransformation complete
e.clr<-  aldex.clr(e_filt[,d3rows], mm1, mc.samples = 128, denom="all", verbose=TRUE, useMC=TRUE)
multicore environment is is OK -- using the BiocParallel package
removed rows with sums equal to zero
computing center with all features
data format is OK
'package:stats' may not be available when loading'package:stats' may not be available when loadingdirichlet samples complete
'package:stats' may not be available when loading'package:stats' may not be available when loadingtransformation complete

Fit a GLM on total methane

# run CLR transformations and sampling
i.glm<- aldex.glm(i.clr, verbose=TRUE)
running tests for each MC instance:
|------------(25%)----------(50%)----------(75%)----------|
e.glm<- aldex.glm(e.clr, verbose=TRUE)
running tests for each MC instance:
|------------(25%)----------(50%)--------

Results

Because there are no significant taxa after BH correction. The challenge of regressing this data is that each sample does not have its own menthane measurment whic reduces the degrees of freedom

Do a correlation test

i.corr <- aldex.corr(i.clr, d3cov$sumch4)
s.corr <- aldex.corr(s.clr, d3cov$sumch4)
e.corr <- aldex.corr(e.clr, d3cov$sumch4)

RESULTS

No genes were signifigant in any of the three ontologies at Stage D2

LS0tCnRpdGxlOiAiTG9va2luZyBmb3IgZnVudGlvbmFsIGdlbmVzIGNvcnJlbGF0ZWQgd2l0aCBUb3RhbCBtZXRoYW5lIGluIHRoZSAgcmljZSBtZXRoYW5lIGRhdGEgc2V0IgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgoKYGBge3J9CiMgSW1wb3J0IG1ldGFkYXRhCm1ldGFkYXRhIDwtcmVhZC5jc3YoIn4vRG9jdW1lbnRzL2dicnVfZnkxOF9yaWNlX21ldGhhbmUvbWFyY2gyMDIwL21ldGFkYXRhX2Jpb21hc3NDSDRfbm9SSUw5LmNzdiIsIGhlYWRlcj1UUlVFKQpgYGAKCgojIERlZmluZSBmdW5jdGlvbiB0byBmaWx0ZXIgZ2VuZXMgd2l0aCBsb3cgYWJ1bmRhbmNlIGFuZCBtYW55IHplcm9zIAoKYGBge3J9CgojRGVmaW5lIHRoZSBnZW9tZXRyaWMgbWVhbiBmb3IgYWxsIHZhbHVlcyBncmVhdGVyIHRoYW4gMApnZW9tZWFuIDwtIGZ1bmN0aW9uKHgpIHsgZXhwKG1lYW4obG9nKHhbeD4wXSkpKSB9CgojIENyZWF0ZSBhIGZ1bmN0aW9uIHRvIGZpbHRlciByb3dzIGJ5IHRoZSBwcm9wb3J0aW9uIG9mIG5vbnplcm8gc2FtcGxlcyBhbmQgdGhlIGdlb21ldHJpYyBtZWFuIG9mIHRoZSBub256ZXJvIHNhbXBsZXMKcHJlZmlsdGVyIDwtIGZ1bmN0aW9uKHgsIHpjdXRvZmYsIG1jdXRvZmYpewogICAgbnp2ZWN0IDwtIGFwcGx5KHgsIDEsIGZ1bmN0aW9uKHkpewogICAgICAoKHN1bSh5PjApL2xlbmd0aCh5KSk+IHpjdXRvZmYpICYgKGdlb21lYW4oeSk+IG1jdXRvZmYpCiAgICAgIH0pCiAgICBsb3djb3VudHMgPC0gdChhcy5kYXRhLmZyYW1lKGFwcGx5KHhbIW56dmVjdCxdLDIsc3VtKSkpCiAgICByb3duYW1lcyhsb3djb3VudHMpPC1jKCJsb3djb250cyIpCiAgICBkZjEgPC1yYmluZChsb3djb3VudHMsIHhbbnp2ZWN0LF0pCiAgICByZXR1cm4oZGYxKQp9CgoKYGBgCgoKCiMgTG9hZCBlZ2dub2cgY291bnQgZGF0YQpgYGB7cn0KIyBJbXBvcnQgT1RVIGNvdW50cwplZ2dub2dkYXRhPC1yZWFkLnRhYmxlKCJ+L0RvY3VtZW50cy9nYnJ1X2Z5MThfcmljZV9tZXRoYW5lL21hcmNoMjAyMC9nYnJ1X2Z5MjBfcmljZV9tZXRoYW5lLmVnZ25vZy50c3YiLCBzZXAgPSAiXHQiLCBoZWFkZXI9VFJVRSkKcm93Lm5hbWVzKGVnZ25vZ2RhdGEpPC1lZ2dub2dkYXRhJEVHR05PR19JRAplZ2dub2dkYXRhMjwtZWdnbm9nZGF0YVssNToxMDBdCmVnZ25vZ2RhdGEyW2lzLm5hKGVnZ25vZ2RhdGEyKV08LTAKCnNlZWRkYXRhPC1yZWFkLnRhYmxlKCJ+L0RvY3VtZW50cy9nYnJ1X2Z5MThfcmljZV9tZXRoYW5lL21hcmNoMjAyMC9nYnJ1X2Z5MjBfcmljZV9tZXRoYW5lLnNlZWQudHN2Iiwgc2VwID0gIlx0IiwgaGVhZGVyPVRSVUUpCnNlZWRkYXRhMjwtc2VlZGRhdGFbLDU6MTAwXQpzZWVkZGF0YTJbaXMubmEoc2VlZGRhdGEyKV08LTAKaW50ZXJwcm8yZ29kYXRhPC1yZWFkLnRhYmxlKCJ+L0RvY3VtZW50cy9nYnJ1X2Z5MThfcmljZV9tZXRoYW5lL21hcmNoMjAyMC9nYnJ1X2Z5MjBfcmljZV9tZXRoYW5lLmludGVycHJvMmdvLnRzdiIsIHNlcCA9ICJcdCIsIGhlYWRlcj1UUlVFKQpyb3cubmFtZXMoaW50ZXJwcm8yZ29kYXRhKTwtaW50ZXJwcm8yZ29kYXRhJElOVEVSUFJPMkdPX0lECmludGVycHJvMmdvZGF0YTI8LWludGVycHJvMmdvZGF0YVssNToxMDBdCmludGVycHJvMmdvZGF0YTJbaXMubmEoaW50ZXJwcm8yZ29kYXRhMildPC0wCiMgTW92ZSBmZWF0dXJlIElEIHRvIHJvd25hbWVzCmBgYAoKYGBge3J9CiNQcmVmaWx0ZXIgZGF0YQplX2ZpbHQ8LXByZWZpbHRlcihlZ2dub2dkYXRhMiwgMC44LCAyMDApCnNfZmlsdDwtcHJlZmlsdGVyKHNlZWRkYXRhMiwgMC44LCAyMDApCmlfZmlsdDwtcHJlZmlsdGVyKGludGVycHJvMmdvZGF0YTIsIDAuOCwgMjAwKQpgYGAKCgojIEFMREV4MiBzdGF0aXN0aWNhbCBhbmFseXNpcyBmb3IgY29tcG9zaXRpb25hbCBjb3VudCBkYXRhIGF0IHRoZSBmYW1pbHkgbGV2ZWwKYGBge3J9CmxpYnJhcnkoIkFMREV4MiIpCiMgQ29uc3RydWN0IGNvdmFyaWF0ZXMgbWF0cml4CmNvdmFyaWF0ZXMxIDwtIGRhdGEuZnJhbWUoZ2Vub3R5cGU9bWV0YWRhdGEkZ2Vub3R5cGUsIHN1bWNoND1sb2cxMChtZXRhZGF0YSRzdW1fY2g0KSwgZGV2PW1ldGFkYXRhJGRldikKIyBQcm9jZXNzIAoKI3NlbGVjdCBEMyBkZXZlbG9wbWVudGFsIHN0YWdlIApkM2NvdjwtICBjb3ZhcmlhdGVzMVtjb3ZhcmlhdGVzMSRkZXY9PSJEMyIsXQpkM2NvdjwtZDNjb3ZbMTozMCxdCmQzcm93cyA8LSBhcy5udW1lcmljKHJvd25hbWVzKGQzY292KSkKCiMgY3JlYXRlIG1vZGVsIG1hdHJpeCBmb3IgbG9nMTAgb2YgdG90YWwgbWV0aGFuZQptbTEgPC0gbW9kZWwubWF0cml4KH4gc3VtY2g0LCBkM2NvdikKCmBgYAoKIyMgUnVuIENlbnRlcmVkIGxvZyByYXRpbyB0cmFuc2Zvcm1hdGlvbnMgYW5kIERpcmljaGxldCBzYW1wbGluZwpgYGB7cn0KIyBydW4gQ0xSIHRyYW5zZm9ybWF0aW9ucyBhbmQgc2FtcGxpbmcKaS5jbHI8LSAgYWxkZXguY2xyKGlfZmlsdFssZDNyb3dzXSwgbW0xLCBtYy5zYW1wbGVzID0gMTI4LCBkZW5vbT0iYWxsIiwgdmVyYm9zZT1UUlVFLCB1c2VNQz1UUlVFKQpzLmNscjwtICBhbGRleC5jbHIoc19maWx0WyxkM3Jvd3NdLCBtbTEsIG1jLnNhbXBsZXMgPSAxMjgsIGRlbm9tPSJhbGwiLCB2ZXJib3NlPVRSVUUsIHVzZU1DPVRSVUUpCmUuY2xyPC0gIGFsZGV4LmNscihlX2ZpbHRbLGQzcm93c10sIG1tMSwgbWMuc2FtcGxlcyA9IDEyOCwgZGVub209ImFsbCIsIHZlcmJvc2U9VFJVRSwgdXNlTUM9VFJVRSkKYGBgCgojIyBGaXQgYSBHTE0gb24gdG90YWwgbWV0aGFuZQpgYGB7cn0KIyBydW4gQ0xSIHRyYW5zZm9ybWF0aW9ucyBhbmQgc2FtcGxpbmcKaS5nbG08LSBhbGRleC5nbG0oaS5jbHIsIHZlcmJvc2U9VFJVRSkKZS5nbG08LSBhbGRleC5nbG0oZS5jbHIsIHZlcmJvc2U9VFJVRSkKcy5nbG08LSBhbGRleC5nbG0ocy5jbHIsIHZlcmJvc2U9VFJVRSkKYGBgCgojIyMgUmVzdWx0cwpCZWNhdXNlIHRoZXJlIGFyZSBubyBzaWduaWZpY2FudCB0YXhhIGFmdGVyIEJIIGNvcnJlY3Rpb24uIFRoZSBjaGFsbGVuZ2Ugb2YgcmVncmVzc2luZyB0aGlzIGRhdGEgaXMgdGhhdCBlYWNoIHNhbXBsZSBkb2VzIG5vdCBoYXZlIGl0cyBvd24gbWVudGhhbmUgbWVhc3VybWVudCB3aGljIHJlZHVjZXMgdGhlIGRlZ3JlZXMgb2YgZnJlZWRvbQoKIyMgRG8gYSBjb3JyZWxhdGlvbiB0ZXN0CmBgYHtyfQppLmNvcnIgPC0gYWxkZXguY29ycihpLmNsciwgZDNjb3Ykc3VtY2g0KQpzLmNvcnIgPC0gYWxkZXguY29ycihzLmNsciwgZDNjb3Ykc3VtY2g0KQplLmNvcnIgPC0gYWxkZXguY29ycihlLmNsciwgZDNjb3Ykc3VtY2g0KQpgYGAKCiMjIFJFU1VMVFMKCk5vIGdlbmVzIHdlcmUgc2lnbmlmaWdhbnQgaW4gYW55IG9mIHRoZSB0aHJlZSBvbnRvbG9naWVzIGF0IFN0YWdlIEQy