-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Description
The natural log (log) in transformAssay behaves differently from log2 and log10:
# Example data
library(mia)
data(peerj13075)
tse <- peerj13075
# List log transformations
trans <- list(log2=log2, log10=log10, log=log)
for (i in names(trans)) {
f <- trans[[i]]
tse <- transformAssay(tse, assay.type = "counts", method = i, pseudocount=1)
# Use check sum to verify if transformAssay gives same result than manual version
# 0 indicates match
print(paste(i, sum(assay(tse, i) - f(assay(tse, "counts") + 1))))
}
Reason seesm to be that log uses vegan::decostand, which has different treatment for count data.
This is confusing.
Suggestion:
- change the default behavior of
logto align withlog2andlog10 - consider providing vegan::decostand version separately, for instance through method="log.decostand"
- even better, support providing functions in the
methodargument (i.e. method=log2 instead of method="log2"); then one could use vegan functions or any other functions directly here.
This could be justified since pseudocount is not intended to be used as a general transformation.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels