Hi @zippyzo and @gregcaporaso
I wouldn't recommend rarefaction + CLR. The issue I end up having with rarefaction here is that it introduces artifcial zeros. (We have true 0s from absences, 0s from things that are below the limit of detection, systematic zeros, and now rarefaction zeros.) Since a lot of bias in CLR comes from those zeros, introducing more zeros would not be my preferred appraoch,even if its done through repeated subsampling.
I tend to prefer to apply a filter to my taxa to select things which meet certain abundance and prevalence criteria so that I can be confident that they're detected consistently when I test them. My person critieria are typical 1/rarefaction depth in at least 10% of the samples. This is based on the idea that I in theory want to be able to detect at least 1 read (if present) in any sample, so if my shallowest sample is slightly deeper than that depth, I should - theoretically - be able to detect it. I think you could also argue that you need to go half the rarefaction depth (at least 2 reads detected in the shallowest sample, although for the life of me, I cant recall the name of this principle.) I use a 10% threshhold because I will sometimes use the same critieria for other transforms, like a presence/absence model, and in those cases, my RR models dont work well for super rare taxon.
The filtering function is implemented in filter-features-conditionally
You can do this with q2-feature-table merge using the average as your overlap method. Im not sure how float values are handled there, but as a first order solution, you can already do it?
Best,
Justine