[R] partial dbRDA or CCA with two distance objects in Vegan.
Nevil Amos
nevil.amos at gmail.com
Tue Sep 21 16:40:16 CEST 2010
I am trying to use the cca/rda/capscale functions in vegan to analyse
genetic distance data ( provided as a dist object calculated using
dist.genpop in package adegenet) with geographic distance partialled out
( provided as a distance object using dist function in veganthis method
is attempting to follow the method used by Geffen et al 2004 as
suggested by Legendre and . FORTIN (2010).
I cannot see how to introduce the Conditioning ( partialled) second dist
matrix. as you can see from the code snippet below, the two dist
objects are of the same dimensions. - I get an error using capscale:
Error in qr.fitted(Q, Xbar) :
'qr' and 'y' must have the same number of rows
or cca
Error in weighted.mean.default(newX[, i], ...) :
'x' and 'w' must have the same length
when using a conditioning distance object instead of a variable (Clade)
of the same length as the constraints ( Latitude and Longitude)
I would be grateful, for any pointers on this, ie which test is the
appropriate one to use ( I believe capscale since it is "similar to
distance-based redundancy analysis (Legendre & Anderson 1999)") and
whether this test is indeed equivalent to the approach suggested by
Legendre &Fortin, (Geffen et al used DISTLM).
many thanks
Nevil Amos
ACB
Monash University
references
(Geffen, E., M. J. Anderson, et al. (2004). "Climate and habitat
barriers to dispersal in the highly mobile grey wolf." Molecular Ecology
13(8): 2481-2490.)
LEGENDRE, P. and M.-J. FORTIN (2010). "Comparison of the Mantel test and
alternative approaches for detecting complex multivariate relationships
in the spatial analysis of genetic data." Molecular ecology resources
early copy online
Snippet from analysis script:
> Gen_Dist<-dist.genpop(mygenpop,method=2,diag=F,upper=F)
> str(Gen_Dist)
Class 'dist' atomic [1:666] 0.866 0.757 0.813 0.872 0.887 ...
..- attr(*, "Labels")= Named chr [1:37] "4879" "4883" "4884" "4885" ...
.. ..- attr(*, "names")= chr [1:37] "01" "02" "03" "04" ...
..- attr(*, "Size")= int 37
..- attr(*, "call")= language dist.genpop(x = mygenpop, method = 2,
diag = F, upper = F)
..- attr(*, "Diag")= logi FALSE
..- attr(*, "Upper")= logi FALSE
..- attr(*, "method")= chr "Edwards"
> str(geog)
Class 'dist' atomic [1:666] 6.61 4.19 14.6 16.71 16.68 ...
..- attr(*, "Size")= int 37
..- attr(*, "Labels")= chr [1:37] "2" "5" "6" "7" ...
..- attr(*, "Diag")= logi FALSE
..- attr(*, "Upper")= logi FALSE
..- attr(*, "method")= chr "euclidean"
..- attr(*, "call")= language dist(x = XY)
> myDbRDA<-cca(Gen_Dist ~ Latitude+Longitude+Condition(Clade),data =
mydata)
> myDbRDA<-cca(Gen_Dist ~ Latitude+Longitude+Condition(geog),data = mydata)
Error in weighted.mean.default(newX[, i], ...) :
'x' and 'w' must have the same length
More information about the R-help
mailing list