Other data transformations prior to beta diversity calculations
Closed this issue · 6 comments
Hi Ning,
It would be great if other normalisation measures (e.g. hellinger or log) can be made available across the iCAMP R functions which calculate beta diversity. I am looking to apply the hellinger transformations and as such down-weight highly abundant species in my samples
Regards, Adi
@DaliangNing Is this something that you consider is feasible to implement?
Sorry for my late responses (a busy 'proposal season'). As I replied to another issue, it is surely feasible. I will try to add the option in the next two to three weeks.
Please try the latest version of iCAMP (version >= 1.4.3, can be download from /RPackage/AllVersions). In the function 'icamp.big', the option 'comm' should still be the community matrix before the transformation, but you may set 'transform.method' as any method recognizable by the function 'decostand' in package 'vegan'. The taxonomic dissimilarity index can also be changed by setting 'taxo.metric' to another method, e.g., 'euclidean'.
Please also check the file 'icamp.test.r' in /Examples/SimpleOTU, the steps 9.6, for example code.
@adityabandla please let me know if the new version (1.4.3) can address your concern. I will close this issue if no more question : )
Dear Ning, sorry for the delay in circling back to this issue. In my dataset, we have several replicates from a transect and we have many such transects. For our analysis, we would like to compare the transect averages. In doing so, I end up with a relative abundance matrix as the starting point for the iCAMP analysis. However, I'm not sure if there is away to use iCAMP with such an input?
@adityabandla yes, the latest version of iCAMP (version 1.4.7) allows users to input proportional data table (values are all within 0 to 1) as a community matrix. The version has not been uploaded to CRAN, thus can only download from https://github.com/DaliangNing/iCAMP1/tree/master/RPackage/AllVersions.
Reminder: I used Dirichlet distribution to perform randomization in the null model, which is theoretically very close to the previous null model using count data, but in fact, I did find some difference. It should be considered as a different null model algorithm from the previous one. You may check the code in the function RC.pc, where i used 'DirichletReg::rdirichlet' to generate the randomized data.