Asymetric Eigenvector Maps (AEM) were developed by Blanchet, Legendre and Borcard (2008 to model multivariate spatial distributions generated by an asymetric directional process, such as current direction.
In a seascape genomics study, AEM variables are generated by translating the presence of a connection - i.e., dispersal probability from the biophysical model >0 between all pairs of sites into a site-by-edge matrix.
The information needed to construct such AEM variables is: 1) a connectivity matrix linking the sites to one another and giving information about the direction of the hypothesized asymmetric process influencing the response variable(s) 2) the spatial coordinates of your sampling sites
The connectivity matrix results from the biophysical model of larval dispersal that estimates the probability of connectivity due to oceanographic circulation.
Optionnally, weights attached to the edges (links) can be added to the analysis resulting. So two types of AEM vectors can be built : 1) AEM variables weighted 2) AEM variables non-weighted
For both AEMs and dbMEMs, the larger eigenvectors model broad-scale spatial structures, whereas the smaller eigenvectors model fine-scale spatial structures Dray et al., 2012.
We will then evaluate the effect of directional currents on spatial patterns of neutral genetic variation using the derived AEM predictor variables implemented in a redundancy analysis (RDA) framework.
“The development of AEM has provided a new and more powerful way for studying ocean current influence of genomic variation. It has also significantly enhanced the proportion of variation explained by ocean current.” see Liggings et al..
library(reshape2)
library(ggplot2)
library(adespatial)
## Registered S3 methods overwritten by 'adegraphics':
## method from
## biplot.dudi ade4
## kplot.foucart ade4
## kplot.mcoa ade4
## kplot.mfa ade4
## kplot.pta ade4
## kplot.sepan ade4
## kplot.statis ade4
## scatter.coa ade4
## scatter.dudi ade4
## scatter.nipals ade4
## scatter.pco ade4
## score.acm ade4
## score.mix ade4
## score.pca ade4
## screeplot.dudi ade4
## Registered S3 method overwritten by 'spdep':
## method from
## plot.mst ape
## Registered S3 methods overwritten by 'adespatial':
## method from
## plot.multispati adegraphics
## print.multispati ade4
## summary.multispati ade4
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
AEM eigenfunctions can be constructed from a ocean current network and the ecological example presented in the paper of Xuereb et al. perfectly illustrate the use of AEM, starting from a set of 20 sampling sites in a single oceanographic network, located in the Western part of the Canadian coast.
A caption
Transform connectivity matrix into a matrix.
con_mat <- as.matrix(con_mat)
Check the dimension of the connectivity matrix.
dim(con_mat)
## [1] 20 20
Visualize the connectivity matrix.
First, change your matrix from wide to long format and rename the columns.
melted_con <- melt(con_mat)
colnames(melted_con) <- c("SITE1","SITE2","Dispersal")
Create the graph of the connectivity matrix and observe the amount of 0 values.
ggplot(data = melted_con, aes(SITE1, SITE2, fill = Dispersal))+
geom_tile(color = "black")+
scale_fill_gradient2(low = "white", mid ="white", high = "brown2", space = "Lab",
name="Dispersal probabilities") +
ylab("Sampling location A")+
xlab("Sampling location B")+
theme(axis.text.x = element_text(angle = 45, vjust = 1, size = 8, hjust = 1))+
theme(legend.position="top",legend.text = element_text(color = "black", size = 6)) +
coord_fixed()
Separate the connectivity matrix in the upper and lower parts.
upper <- con_mat[upper.tri(con_mat, diag = TRUE)]
lower <- con_mat[lower.tri(con_mat, diag = TRUE)]
When connectivity between a given pair of sites was > 0 in both directions, we want to select the direction with the highest probability of dispersal.
Find the highest probability between two sites by examining the upper and lower parts of the connectivity matrix.
highest <- vector()
for (i in 1 : length(upper)) {
if (upper[i] < lower[i]) {
highest[i] <- lower[i]
} else {
highest[i] <- upper[i]
}
}
Then, we replace the uppper matrix of the object con_mat with the highest values.
con_mat2 <- con_mat
con_mat2[upper.tri(con_mat2, diag = TRUE)] <- highest
We also replace the lower matrix by 0 as we want to only keep the upper part of the connectivity matrix that contains the highest probabilities.
con_mat2[lower.tri(con_mat2, diag = T)] <- 0
diag(con_mat2) <- diag(con_mat)
dim(con_mat2)
## [1] 20 20
Import geographic coordinates of your study and exclude the four sampling sites in Alaska.
sites <- read.table("24_sites.txt", header=TRUE)
sites <- sites[-c(21:24), ]
sites
## Year Month Site Abb Lat Long Site_nb Lat_round
## 1 2015 August OgdenPoint OGD 48.40822 -123.3875 1 48.408
## 2 2015 August SouthernGulfIsland SGI 48.75678 -123.3799 2 48.757
## 3 2015 August Lasqueti LAS 49.47478 -124.1826 3 49.475
## 4 2015 September JervisInlet JER 49.75303 -124.0011 4 49.753
## 5 2014 July Tofino TOF 49.24820 -125.9384 5 49.248
## 6 2014 August CracroftIsland CRA 50.52120 -126.5646 6 50.521
## 7 2015 August RockBay RBY 50.33027 -125.4666 7 50.330
## 8 2015 August ShewellIsland SHE 50.65893 -126.2377 8 50.659
## 9 2015 July MalcolmIsland MAL 50.62737 -127.1282 9 50.627
## 10 2015 June Quatsino QUA 50.49977 -127.8717 10 50.500
## 11 2015 June HopeIsland HOP 50.89923 -127.8512 11 50.899
## 12 2015 July TableIsland TBL 51.27213 -127.8038 12 51.272
## 13 2014 July CalvertIsland CAL 51.69000 -128.1425 13 51.690
## 14 2014 October Tolmie TOL 52.71327 -128.5782 14 52.713
## 15 2014 October PrinceRupert PRI 54.19700 -130.3660 15 54.197
## 16 2014 October Legace LEG 54.68200 -130.4640 16 54.682
## 17 2014 August JuanPerez JUA 52.63200 -131.3960 17 52.632
## 18 2014 August Selwyn SEL 52.93882 -131.9049 18 52.939
## 19 2014 July RennellSound REN 53.39900 -132.6600 19 53.399
## 20 2014 July Mazarredo MAZ 54.10000 -132.5531 20 54.100
## Long_round
## 1 -123.387
## 2 -123.380
## 3 -124.183
## 4 -124.001
## 5 -125.938
## 6 -126.565
## 7 -125.467
## 8 -126.238
## 9 -127.128
## 10 -127.872
## 11 -127.851
## 12 -127.804
## 13 -128.143
## 14 -128.578
## 15 -130.366
## 16 -130.464
## 17 -131.396
## 18 -131.905
## 19 -132.660
## 20 -132.553
Select the geographic coordinates (Latitude and Longitude) from the sitesobject.
xy <- sites[,4:6]
Give an unique number to each site, here there are 20 sites so we have the sequence of numbers between 1 and 20.
xy$Nb <- seq(1, 20, 1)
Change the order of the columns by ensuring Longitude is before Latitude. And check the final output.
xy <- xy[,c(4,3,2)]
xy
## Nb Long Lat
## 1 1 -123.3875 48.40822
## 2 2 -123.3799 48.75678
## 3 3 -124.1826 49.47478
## 4 4 -124.0011 49.75303
## 5 5 -125.9384 49.24820
## 6 6 -126.5646 50.52120
## 7 7 -125.4666 50.33027
## 8 8 -126.2377 50.65893
## 9 9 -127.1282 50.62737
## 10 10 -127.8717 50.49977
## 11 11 -127.8512 50.89923
## 12 12 -127.8038 51.27213
## 13 13 -128.1425 51.69000
## 14 14 -128.5782 52.71327
## 15 15 -130.3660 54.19700
## 16 16 -130.4640 54.68200
## 17 17 -131.3960 52.63200
## 18 18 -131.9049 52.93882
## 19 19 -132.6600 53.39900
## 20 20 -132.5531 54.10000
Create a data frame from all combinations of the supplied vectors gave by the connectivity matrix containing only upper values.
con_mat_ex <- expand.grid(con_mat2)
Give the name of the pairwise comparison for each value - 400 values in total as 20x20 matrix at the beginning - as well as the specific number of each site. So you will add 4 columns in total.
con_mat_ex$SITE1 <- rep(colnames(con_mat2), each = 20)
con_mat_ex$SITE2 <- rep(colnames(con_mat2), 20)
con_mat_ex$POP1id <- rep(seq(1,20,1), each = 20)
con_mat_ex$POP2id <- rep(seq(1,20,1), 20)
Combine both names (SITE1 and SITE2) to the create the name of the pairwise comparison column.
con_mat_ex$PAIR <- paste(con_mat_ex$SITE1, con_mat_ex$SITE2, sep = "-")
Remove columns indicating each site name (column named SITE1 and column named SITE2).
con_mat_ex <- con_mat_ex[,-c(2,3)]
con_mat_ex
## Var1 POP1id POP2id PAIR
## 1 6.557377e-05 1 1 SEL-SEL
## 2 0.000000e+00 1 2 SEL-JUA
## 3 0.000000e+00 1 3 SEL-CAL
## 4 0.000000e+00 1 4 SEL-MAZ
## 5 0.000000e+00 1 5 SEL-REN
## 6 0.000000e+00 1 6 SEL-TOL
## 7 0.000000e+00 1 7 SEL-TOF
## 8 0.000000e+00 1 8 SEL-CRA
## 9 0.000000e+00 1 9 SEL-LEG
## 10 0.000000e+00 1 10 SEL-PRI
## 11 0.000000e+00 1 11 SEL-RBY
## 12 0.000000e+00 1 12 SEL-QUA
## 13 0.000000e+00 1 13 SEL-LAS
## 14 0.000000e+00 1 14 SEL-HOP
## 15 0.000000e+00 1 15 SEL-JER
## 16 0.000000e+00 1 16 SEL-MAL
## 17 0.000000e+00 1 17 SEL-SGI
## 18 0.000000e+00 1 18 SEL-TBL
## 19 0.000000e+00 1 19 SEL-OGD
## 20 0.000000e+00 1 20 SEL-SHE
## 21 5.200820e-03 2 1 JUA-SEL
## 22 3.508197e-03 2 2 JUA-JUA
## 23 0.000000e+00 2 3 JUA-CAL
## 24 0.000000e+00 2 4 JUA-MAZ
## 25 0.000000e+00 2 5 JUA-REN
## 26 0.000000e+00 2 6 JUA-TOL
## 27 0.000000e+00 2 7 JUA-TOF
## 28 0.000000e+00 2 8 JUA-CRA
## 29 0.000000e+00 2 9 JUA-LEG
## 30 0.000000e+00 2 10 JUA-PRI
## 31 0.000000e+00 2 11 JUA-RBY
## 32 0.000000e+00 2 12 JUA-QUA
## 33 0.000000e+00 2 13 JUA-LAS
## 34 0.000000e+00 2 14 JUA-HOP
## 35 0.000000e+00 2 15 JUA-JER
## 36 0.000000e+00 2 16 JUA-MAL
## 37 0.000000e+00 2 17 JUA-SGI
## 38 0.000000e+00 2 18 JUA-TBL
## 39 0.000000e+00 2 19 JUA-OGD
## 40 0.000000e+00 2 20 JUA-SHE
## 41 1.639344e-05 3 1 CAL-SEL
## 42 5.327869e-05 3 2 CAL-JUA
## 43 4.053279e-03 3 3 CAL-CAL
## 44 0.000000e+00 3 4 CAL-MAZ
## 45 0.000000e+00 3 5 CAL-REN
## 46 0.000000e+00 3 6 CAL-TOL
## 47 0.000000e+00 3 7 CAL-TOF
## 48 0.000000e+00 3 8 CAL-CRA
## 49 0.000000e+00 3 9 CAL-LEG
## 50 0.000000e+00 3 10 CAL-PRI
## 51 0.000000e+00 3 11 CAL-RBY
## 52 0.000000e+00 3 12 CAL-QUA
## 53 0.000000e+00 3 13 CAL-LAS
## 54 0.000000e+00 3 14 CAL-HOP
## 55 0.000000e+00 3 15 CAL-JER
## 56 0.000000e+00 3 16 CAL-MAL
## 57 0.000000e+00 3 17 CAL-SGI
## 58 0.000000e+00 3 18 CAL-TBL
## 59 0.000000e+00 3 19 CAL-OGD
## 60 0.000000e+00 3 20 CAL-SHE
## 61 2.950820e-04 4 1 MAZ-SEL
## 62 4.549180e-04 4 2 MAZ-JUA
## 63 2.459016e-05 4 3 MAZ-CAL
## 64 1.163934e-03 4 4 MAZ-MAZ
## 65 0.000000e+00 4 5 MAZ-REN
## 66 0.000000e+00 4 6 MAZ-TOL
## 67 0.000000e+00 4 7 MAZ-TOF
## 68 0.000000e+00 4 8 MAZ-CRA
## 69 0.000000e+00 4 9 MAZ-LEG
## 70 0.000000e+00 4 10 MAZ-PRI
## 71 0.000000e+00 4 11 MAZ-RBY
## 72 0.000000e+00 4 12 MAZ-QUA
## 73 0.000000e+00 4 13 MAZ-LAS
## 74 0.000000e+00 4 14 MAZ-HOP
## 75 0.000000e+00 4 15 MAZ-JER
## 76 0.000000e+00 4 16 MAZ-MAL
## 77 0.000000e+00 4 17 MAZ-SGI
## 78 0.000000e+00 4 18 MAZ-TBL
## 79 0.000000e+00 4 19 MAZ-OGD
## 80 0.000000e+00 4 20 MAZ-SHE
## 81 1.188525e-04 5 1 REN-SEL
## 82 6.024590e-04 5 2 REN-JUA
## 83 9.426230e-05 5 3 REN-CAL
## 84 2.868852e-05 5 4 REN-MAZ
## 85 6.229508e-04 5 5 REN-REN
## 86 0.000000e+00 5 6 REN-TOL
## 87 0.000000e+00 5 7 REN-TOF
## 88 0.000000e+00 5 8 REN-CRA
## 89 0.000000e+00 5 9 REN-LEG
## 90 0.000000e+00 5 10 REN-PRI
## 91 0.000000e+00 5 11 REN-RBY
## 92 0.000000e+00 5 12 REN-QUA
## 93 0.000000e+00 5 13 REN-LAS
## 94 0.000000e+00 5 14 REN-HOP
## 95 0.000000e+00 5 15 REN-JER
## 96 0.000000e+00 5 16 REN-MAL
## 97 0.000000e+00 5 17 REN-SGI
## 98 0.000000e+00 5 18 REN-TBL
## 99 0.000000e+00 5 19 REN-OGD
## 100 0.000000e+00 5 20 REN-SHE
## 101 4.098361e-06 6 1 TOL-SEL
## 102 1.639344e-05 6 2 TOL-JUA
## 103 2.459016e-04 6 3 TOL-CAL
## 104 0.000000e+00 6 4 TOL-MAZ
## 105 0.000000e+00 6 5 TOL-REN
## 106 9.983607e-03 6 6 TOL-TOL
## 107 0.000000e+00 6 7 TOL-TOF
## 108 0.000000e+00 6 8 TOL-CRA
## 109 0.000000e+00 6 9 TOL-LEG
## 110 0.000000e+00 6 10 TOL-PRI
## 111 0.000000e+00 6 11 TOL-RBY
## 112 0.000000e+00 6 12 TOL-QUA
## 113 0.000000e+00 6 13 TOL-LAS
## 114 0.000000e+00 6 14 TOL-HOP
## 115 0.000000e+00 6 15 TOL-JER
## 116 0.000000e+00 6 16 TOL-MAL
## 117 0.000000e+00 6 17 TOL-SGI
## 118 0.000000e+00 6 18 TOL-TBL
## 119 0.000000e+00 6 19 TOL-OGD
## 120 0.000000e+00 6 20 TOL-SHE
## 121 5.327869e-05 7 1 TOF-SEL
## 122 1.639344e-05 7 2 TOF-JUA
## 123 1.639344e-05 7 3 TOF-CAL
## 124 1.065574e-04 7 4 TOF-MAZ
## 125 0.000000e+00 7 5 TOF-REN
## 126 4.098361e-06 7 6 TOF-TOL
## 127 2.868852e-04 7 7 TOF-TOF
## 128 0.000000e+00 7 8 TOF-CRA
## 129 0.000000e+00 7 9 TOF-LEG
## 130 0.000000e+00 7 10 TOF-PRI
## 131 0.000000e+00 7 11 TOF-RBY
## 132 0.000000e+00 7 12 TOF-QUA
## 133 0.000000e+00 7 13 TOF-LAS
## 134 0.000000e+00 7 14 TOF-HOP
## 135 0.000000e+00 7 15 TOF-JER
## 136 0.000000e+00 7 16 TOF-MAL
## 137 0.000000e+00 7 17 TOF-SGI
## 138 0.000000e+00 7 18 TOF-TBL
## 139 0.000000e+00 7 19 TOF-OGD
## 140 0.000000e+00 7 20 TOF-SHE
## 141 1.106557e-04 8 1 CRA-SEL
## 142 0.000000e+00 8 2 CRA-JUA
## 143 1.639344e-05 8 3 CRA-CAL
## 144 0.000000e+00 8 4 CRA-MAZ
## 145 8.196721e-06 8 5 CRA-REN
## 146 0.000000e+00 8 6 CRA-TOL
## 147 4.098361e-06 8 7 CRA-TOF
## 148 1.147541e-04 8 8 CRA-CRA
## 149 0.000000e+00 8 9 CRA-LEG
## 150 0.000000e+00 8 10 CRA-PRI
## 151 0.000000e+00 8 11 CRA-RBY
## 152 0.000000e+00 8 12 CRA-QUA
## 153 0.000000e+00 8 13 CRA-LAS
## 154 0.000000e+00 8 14 CRA-HOP
## 155 0.000000e+00 8 15 CRA-JER
## 156 0.000000e+00 8 16 CRA-MAL
## 157 0.000000e+00 8 17 CRA-SGI
## 158 0.000000e+00 8 18 CRA-TBL
## 159 0.000000e+00 8 19 CRA-OGD
## 160 0.000000e+00 8 20 CRA-SHE
## 161 3.045082e-03 9 1 LEG-SEL
## 162 1.532787e-03 9 2 LEG-JUA
## 163 8.606557e-05 9 3 LEG-CAL
## 164 4.053279e-03 9 4 LEG-MAZ
## 165 1.967213e-04 9 5 LEG-REN
## 166 3.975410e-04 9 6 LEG-TOL
## 167 9.754098e-04 9 7 LEG-TOF
## 168 8.278689e-04 9 8 LEG-CRA
## 169 3.897541e-03 9 9 LEG-LEG
## 170 0.000000e+00 9 10 LEG-PRI
## 171 0.000000e+00 9 11 LEG-RBY
## 172 0.000000e+00 9 12 LEG-QUA
## 173 0.000000e+00 9 13 LEG-LAS
## 174 0.000000e+00 9 14 LEG-HOP
## 175 0.000000e+00 9 15 LEG-JER
## 176 0.000000e+00 9 16 LEG-MAL
## 177 0.000000e+00 9 17 LEG-SGI
## 178 0.000000e+00 9 18 LEG-TBL
## 179 0.000000e+00 9 19 LEG-OGD
## 180 0.000000e+00 9 20 LEG-SHE
## 181 9.098361e-04 10 1 PRI-SEL
## 182 6.598361e-04 10 2 PRI-JUA
## 183 3.360656e-04 10 3 PRI-CAL
## 184 1.040984e-03 10 4 PRI-MAZ
## 185 2.049180e-05 10 5 PRI-REN
## 186 4.959016e-03 10 6 PRI-TOL
## 187 1.311475e-04 10 7 PRI-TOF
## 188 6.270492e-03 10 8 PRI-CRA
## 189 6.639344e-04 10 9 PRI-LEG
## 190 4.262295e-04 10 10 PRI-PRI
## 191 0.000000e+00 10 11 PRI-RBY
## 192 0.000000e+00 10 12 PRI-QUA
## 193 0.000000e+00 10 13 PRI-LAS
## 194 0.000000e+00 10 14 PRI-HOP
## 195 0.000000e+00 10 15 PRI-JER
## 196 0.000000e+00 10 16 PRI-MAL
## 197 0.000000e+00 10 17 PRI-SGI
## 198 0.000000e+00 10 18 PRI-TBL
## 199 0.000000e+00 10 19 PRI-OGD
## 200 0.000000e+00 10 20 PRI-SHE
## 201 7.008197e-04 11 1 RBY-SEL
## 202 8.438525e-03 11 2 RBY-JUA
## 203 1.163934e-03 11 3 RBY-CAL
## 204 2.659836e-03 11 4 RBY-MAZ
## 205 8.196721e-06 11 5 RBY-REN
## 206 0.000000e+00 11 6 RBY-TOL
## 207 0.000000e+00 11 7 RBY-TOF
## 208 1.450820e-03 11 8 RBY-CRA
## 209 1.143443e-03 11 9 RBY-LEG
## 210 0.000000e+00 11 10 RBY-PRI
## 211 6.434426e-04 11 11 RBY-RBY
## 212 0.000000e+00 11 12 RBY-QUA
## 213 0.000000e+00 11 13 RBY-LAS
## 214 0.000000e+00 11 14 RBY-HOP
## 215 0.000000e+00 11 15 RBY-JER
## 216 0.000000e+00 11 16 RBY-MAL
## 217 0.000000e+00 11 17 RBY-SGI
## 218 0.000000e+00 11 18 RBY-TBL
## 219 0.000000e+00 11 19 RBY-OGD
## 220 0.000000e+00 11 20 RBY-SHE
## 221 0.000000e+00 12 1 QUA-SEL
## 222 4.098361e-06 12 2 QUA-JUA
## 223 2.131148e-04 12 3 QUA-CAL
## 224 0.000000e+00 12 4 QUA-MAZ
## 225 0.000000e+00 12 5 QUA-REN
## 226 6.557377e-05 12 6 QUA-TOL
## 227 1.278689e-03 12 7 QUA-TOF
## 228 2.786885e-04 12 8 QUA-CRA
## 229 6.229508e-04 12 9 QUA-LEG
## 230 4.918033e-05 12 10 QUA-PRI
## 231 6.557377e-05 12 11 QUA-RBY
## 232 2.336066e-04 12 12 QUA-QUA
## 233 0.000000e+00 12 13 QUA-LAS
## 234 0.000000e+00 12 14 QUA-HOP
## 235 0.000000e+00 12 15 QUA-JER
## 236 0.000000e+00 12 16 QUA-MAL
## 237 0.000000e+00 12 17 QUA-SGI
## 238 0.000000e+00 12 18 QUA-TBL
## 239 0.000000e+00 12 19 QUA-OGD
## 240 0.000000e+00 12 20 QUA-SHE
## 241 8.196721e-06 13 1 LAS-SEL
## 242 3.688525e-05 13 2 LAS-JUA
## 243 0.000000e+00 13 3 LAS-CAL
## 244 2.459016e-05 13 4 LAS-MAZ
## 245 0.000000e+00 13 5 LAS-REN
## 246 3.688525e-05 13 6 LAS-TOL
## 247 0.000000e+00 13 7 LAS-TOF
## 248 4.508197e-05 13 8 LAS-CRA
## 249 0.000000e+00 13 9 LAS-LEG
## 250 6.557377e-05 13 10 LAS-PRI
## 251 2.393852e-02 13 11 LAS-RBY
## 252 8.196721e-06 13 12 LAS-QUA
## 253 2.201230e-02 13 13 LAS-LAS
## 254 0.000000e+00 13 14 LAS-HOP
## 255 0.000000e+00 13 15 LAS-JER
## 256 0.000000e+00 13 16 LAS-MAL
## 257 0.000000e+00 13 17 LAS-SGI
## 258 0.000000e+00 13 18 LAS-TBL
## 259 0.000000e+00 13 19 LAS-OGD
## 260 0.000000e+00 13 20 LAS-SHE
## 261 8.196721e-06 14 1 HOP-SEL
## 262 1.475410e-04 14 2 HOP-JUA
## 263 1.536885e-03 14 3 HOP-CAL
## 264 0.000000e+00 14 4 HOP-MAZ
## 265 0.000000e+00 14 5 HOP-REN
## 266 2.295082e-04 14 6 HOP-TOL
## 267 1.233607e-03 14 7 HOP-TOF
## 268 8.118852e-03 14 8 HOP-CRA
## 269 0.000000e+00 14 9 HOP-LEG
## 270 1.106557e-04 14 10 HOP-PRI
## 271 4.713115e-04 14 11 HOP-RBY
## 272 6.967213e-04 14 12 HOP-QUA
## 273 1.311475e-04 14 13 HOP-LAS
## 274 5.454918e-03 14 14 HOP-HOP
## 275 0.000000e+00 14 15 HOP-JER
## 276 0.000000e+00 14 16 HOP-MAL
## 277 0.000000e+00 14 17 HOP-SGI
## 278 0.000000e+00 14 18 HOP-TBL
## 279 0.000000e+00 14 19 HOP-OGD
## 280 0.000000e+00 14 20 HOP-SHE
## 281 2.868852e-04 15 1 JER-SEL
## 282 0.000000e+00 15 2 JER-JUA
## 283 0.000000e+00 15 3 JER-CAL
## 284 0.000000e+00 15 4 JER-MAZ
## 285 4.959016e-04 15 5 JER-REN
## 286 2.049180e-05 15 6 JER-TOL
## 287 1.196721e-03 15 7 JER-TOF
## 288 1.639344e-05 15 8 JER-CRA
## 289 3.614754e-03 15 9 JER-LEG
## 290 1.639344e-05 15 10 JER-PRI
## 291 3.651639e-03 15 11 JER-RBY
## 292 8.196721e-06 15 12 JER-QUA
## 293 3.512295e-03 15 13 JER-LAS
## 294 4.098361e-06 15 14 JER-HOP
## 295 1.065574e-04 15 15 JER-JER
## 296 0.000000e+00 15 16 JER-MAL
## 297 0.000000e+00 15 17 JER-SGI
## 298 0.000000e+00 15 18 JER-TBL
## 299 0.000000e+00 15 19 JER-OGD
## 300 0.000000e+00 15 20 JER-SHE
## 301 0.000000e+00 16 1 MAL-SEL
## 302 0.000000e+00 16 2 MAL-JUA
## 303 1.967213e-04 16 3 MAL-CAL
## 304 0.000000e+00 16 4 MAL-MAZ
## 305 0.000000e+00 16 5 MAL-REN
## 306 1.024590e-04 16 6 MAL-TOL
## 307 1.229508e-05 16 7 MAL-TOF
## 308 2.877049e-03 16 8 MAL-CRA
## 309 0.000000e+00 16 9 MAL-LEG
## 310 2.049180e-05 16 10 MAL-PRI
## 311 1.803279e-04 16 11 MAL-RBY
## 312 1.926230e-04 16 12 MAL-QUA
## 313 3.897541e-03 16 13 MAL-LAS
## 314 2.172131e-03 16 14 MAL-HOP
## 315 0.000000e+00 16 15 MAL-JER
## 316 2.397541e-03 16 16 MAL-MAL
## 317 0.000000e+00 16 17 MAL-SGI
## 318 0.000000e+00 16 18 MAL-TBL
## 319 0.000000e+00 16 19 MAL-OGD
## 320 0.000000e+00 16 20 MAL-SHE
## 321 0.000000e+00 17 1 SGI-SEL
## 322 2.459016e-05 17 2 SGI-JUA
## 323 0.000000e+00 17 3 SGI-CAL
## 324 1.639344e-05 17 4 SGI-MAZ
## 325 0.000000e+00 17 5 SGI-REN
## 326 5.737705e-05 17 6 SGI-TOL
## 327 0.000000e+00 17 7 SGI-TOF
## 328 0.000000e+00 17 8 SGI-CRA
## 329 4.262295e-04 17 9 SGI-LEG
## 330 0.000000e+00 17 10 SGI-PRI
## 331 4.918033e-04 17 11 SGI-RBY
## 332 0.000000e+00 17 12 SGI-QUA
## 333 5.491803e-04 17 13 SGI-LAS
## 334 0.000000e+00 17 14 SGI-HOP
## 335 1.680328e-04 17 15 SGI-JER
## 336 0.000000e+00 17 16 SGI-MAL
## 337 3.688525e-05 17 17 SGI-SGI
## 338 0.000000e+00 17 18 SGI-TBL
## 339 0.000000e+00 17 19 SGI-OGD
## 340 0.000000e+00 17 20 SGI-SHE
## 341 0.000000e+00 18 1 TBL-SEL
## 342 1.229508e-05 18 2 TBL-JUA
## 343 1.147541e-03 18 3 TBL-CAL
## 344 0.000000e+00 18 4 TBL-MAZ
## 345 9.836066e-05 18 5 TBL-REN
## 346 1.188525e-04 18 6 TBL-TOL
## 347 6.352459e-04 18 7 TBL-TOF
## 348 5.364754e-03 18 8 TBL-CRA
## 349 0.000000e+00 18 9 TBL-LEG
## 350 0.000000e+00 18 10 TBL-PRI
## 351 3.278689e-04 18 11 TBL-RBY
## 352 3.893443e-04 18 12 TBL-QUA
## 353 2.336066e-04 18 13 TBL-LAS
## 354 3.684426e-03 18 14 TBL-HOP
## 355 1.926230e-04 18 15 TBL-JER
## 356 4.348361e-03 18 16 TBL-MAL
## 357 5.245902e-04 18 17 TBL-SGI
## 358 1.454918e-03 18 18 TBL-TBL
## 359 0.000000e+00 18 19 TBL-OGD
## 360 0.000000e+00 18 20 TBL-SHE
## 361 2.213115e-04 19 1 OGD-SEL
## 362 2.409836e-03 19 2 OGD-JUA
## 363 2.172131e-04 19 3 OGD-CAL
## 364 2.201230e-02 19 4 OGD-MAZ
## 365 0.000000e+00 19 5 OGD-REN
## 366 4.389344e-03 19 6 OGD-TOL
## 367 4.098361e-06 19 7 OGD-TOF
## 368 2.479508e-03 19 8 OGD-CRA
## 369 0.000000e+00 19 9 OGD-LEG
## 370 1.885246e-03 19 10 OGD-PRI
## 371 8.290984e-03 19 11 OGD-RBY
## 372 5.454918e-03 19 12 OGD-QUA
## 373 8.516393e-03 19 13 OGD-LAS
## 374 6.684426e-03 19 14 OGD-HOP
## 375 9.331967e-03 19 15 OGD-JER
## 376 1.881148e-03 19 16 OGD-MAL
## 377 1.684426e-03 19 17 OGD-SGI
## 378 1.165984e-02 19 18 OGD-TBL
## 379 1.278689e-03 19 19 OGD-OGD
## 380 0.000000e+00 19 20 OGD-SHE
## 381 0.000000e+00 20 1 SHE-SEL
## 382 4.098361e-06 20 2 SHE-JUA
## 383 2.868852e-05 20 3 SHE-CAL
## 384 8.196721e-06 20 4 SHE-MAZ
## 385 0.000000e+00 20 5 SHE-REN
## 386 2.397541e-03 20 6 SHE-TOL
## 387 1.229508e-05 20 7 SHE-TOF
## 388 6.475410e-04 20 8 SHE-CRA
## 389 1.229508e-05 20 9 SHE-LEG
## 390 4.401639e-03 20 10 SHE-PRI
## 391 6.557377e-05 20 11 SHE-RBY
## 392 4.098361e-06 20 12 SHE-QUA
## 393 2.049180e-05 20 13 SHE-LAS
## 394 1.762295e-04 20 14 SHE-HOP
## 395 1.454918e-03 20 15 SHE-JER
## 396 5.491803e-04 20 16 SHE-MAL
## 397 8.196721e-03 20 17 SHE-SGI
## 398 1.278689e-03 20 18 SHE-TBL
## 399 0.000000e+00 20 19 SHE-OGD
## 400 1.758197e-03 20 20 SHE-SHE
Add column names to the resulting dataframe.
colnames(con_mat_ex) <- c("PROB", "SITE1", "SITE2", "PAIR")
It is to be noted that site 0 is not influenced by any edge; if present, this site would add an unnecessary line to the matrix giving no additional information. We then remove rows with only 0 values as no link will be created out of the 0 values.
con.mat.highest.prob.no0 <- filter(con_mat_ex, PROB > 0)
nrow(con.mat.highest.prob.no0)
## [1] 164
head(con.mat.highest.prob.no0)
## PROB SITE1 SITE2 PAIR
## 1 6.557377e-05 1 1 SEL-SEL
## 2 5.200820e-03 2 1 JUA-SEL
## 3 3.508197e-03 2 2 JUA-JUA
## 4 1.639344e-05 3 1 CAL-SEL
## 5 5.327869e-05 3 2 CAL-JUA
## 6 4.053279e-03 3 3 CAL-CAL
To quantify the connexions (edges) - using the vocabulary of graph theory - between the sites and construct site-by-edges matrix E, sites (rows of table E) and edges (columns) are numbered; alternatively, they can be given names. Keep number associated to each site in the highest probabilities matrix.
edges.highest.prob <- con.mat.highest.prob.no0[,c(2,3)]
edges <- edges.highest.prob
edges
## SITE1 SITE2
## 1 1 1
## 2 2 1
## 3 2 2
## 4 3 1
## 5 3 2
## 6 3 3
## 7 4 1
## 8 4 2
## 9 4 3
## 10 4 4
## 11 5 1
## 12 5 2
## 13 5 3
## 14 5 4
## 15 5 5
## 16 6 1
## 17 6 2
## 18 6 3
## 19 6 6
## 20 7 1
## 21 7 2
## 22 7 3
## 23 7 4
## 24 7 6
## 25 7 7
## 26 8 1
## 27 8 3
## 28 8 5
## 29 8 7
## 30 8 8
## 31 9 1
## 32 9 2
## 33 9 3
## 34 9 4
## 35 9 5
## 36 9 6
## 37 9 7
## 38 9 8
## 39 9 9
## 40 10 1
## 41 10 2
## 42 10 3
## 43 10 4
## 44 10 5
## 45 10 6
## 46 10 7
## 47 10 8
## 48 10 9
## 49 10 10
## 50 11 1
## 51 11 2
## 52 11 3
## 53 11 4
## 54 11 5
## 55 11 8
## 56 11 9
## 57 11 11
## 58 12 2
## 59 12 3
## 60 12 6
## 61 12 7
## 62 12 8
## 63 12 9
## 64 12 10
## 65 12 11
## 66 12 12
## 67 13 1
## 68 13 2
## 69 13 4
## 70 13 6
## 71 13 8
## 72 13 10
## 73 13 11
## 74 13 12
## 75 13 13
## 76 14 1
## 77 14 2
## 78 14 3
## 79 14 6
## 80 14 7
## 81 14 8
## 82 14 10
## 83 14 11
## 84 14 12
## 85 14 13
## 86 14 14
## 87 15 1
## 88 15 5
## 89 15 6
## 90 15 7
## 91 15 8
## 92 15 9
## 93 15 10
## 94 15 11
## 95 15 12
## 96 15 13
## 97 15 14
## 98 15 15
## 99 16 3
## 100 16 6
## 101 16 7
## 102 16 8
## 103 16 10
## 104 16 11
## 105 16 12
## 106 16 13
## 107 16 14
## 108 16 16
## 109 17 2
## 110 17 4
## 111 17 6
## 112 17 9
## 113 17 11
## 114 17 13
## 115 17 15
## 116 17 17
## 117 18 2
## 118 18 3
## 119 18 5
## 120 18 6
## 121 18 7
## 122 18 8
## 123 18 11
## 124 18 12
## 125 18 13
## 126 18 14
## 127 18 15
## 128 18 16
## 129 18 17
## 130 18 18
## 131 19 1
## 132 19 2
## 133 19 3
## 134 19 4
## 135 19 6
## 136 19 7
## 137 19 8
## 138 19 10
## 139 19 11
## 140 19 12
## 141 19 13
## 142 19 14
## 143 19 15
## 144 19 16
## 145 19 17
## 146 19 18
## 147 19 19
## 148 20 2
## 149 20 3
## 150 20 4
## 151 20 6
## 152 20 7
## 153 20 8
## 154 20 9
## 155 20 10
## 156 20 11
## 157 20 12
## 158 20 13
## 159 20 14
## 160 20 15
## 161 20 16
## 162 20 17
## 163 20 18
## 164 20 20
This results into 164 pairwise connexions (edges). Remove the connexion from one site to itself as it does not represent edges but rather self recruitment.
edges <- filter(edges, SITE1 != SITE2)
nrow(edges)
## [1] 144
Create the binary site-by-edges matrix E. To impose directionality on the diagram and create asymmetric spatial variables, an imaginary site is added upstream of the sampling area (in blue on the graph).
bin.mat <- aem.build.binary(coords=xy,link=edges, plot.connexions = TRUE)
str(bin.mat)
## List of 2
## $ se.mat: int [1:20, 1:145] 1 1 1 1 1 1 1 1 1 1 ...
## $ edges : num [1:145, 1:2] 0 1 1 2 1 2 3 1 2 5 ...
## ..- attr(*, "dimnames")=List of 2
## .. ..$ : chr [1:145] "1" "1" "2" "3" ...
## .. ..$ : chr [1:2] "from" "to"
bin.mat
## $se.mat
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## [1,] 1 0 0 0 0 0 0 0 0 0 0 0 0
## [2,] 1 1 0 0 0 0 0 0 0 0 0 0 0
## [3,] 1 1 1 1 0 0 0 1 1 1 0 0 0
## [4,] 1 1 1 1 1 1 1 1 1 1 1 0 0
## [5,] 1 1 0 0 0 0 0 1 1 0 0 0 0
## [6,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [7,] 1 1 1 1 1 1 1 1 1 1 1 0 0
## [8,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [9,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [10,] 1 1 1 1 1 1 1 1 1 1 1 0 0
## [11,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [12,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [13,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [14,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [15,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [16,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [17,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [18,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [19,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [20,] 1 1 1 1 1 1 1 1 1 1 1 1 1
## [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25]
## [1,] 0 0 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0 0 0
## [6,] 1 1 1 1 1 1 0 0 0 0 0 0
## [7,] 0 1 1 1 1 0 0 0 0 0 0 0
## [8,] 1 1 1 1 1 1 1 1 1 1 1 1
## [9,] 1 1 1 1 1 1 0 0 0 0 1 1
## [10,] 0 1 1 1 1 0 0 0 0 0 0 0
## [11,] 1 1 1 1 1 1 1 1 1 1 1 1
## [12,] 1 1 1 1 1 1 1 1 1 1 1 1
## [13,] 1 1 1 1 1 1 1 1 1 1 1 1
## [14,] 1 1 1 1 1 1 1 1 1 1 1 1
## [15,] 1 1 1 1 1 1 1 1 1 1 1 1
## [16,] 1 1 1 1 1 1 1 1 1 1 1 1
## [17,] 1 1 1 1 1 1 1 1 1 1 1 1
## [18,] 1 1 1 1 1 1 1 1 1 1 1 1
## [19,] 1 1 1 1 1 1 1 1 1 1 1 1
## [20,] 1 1 1 1 1 1 1 1 1 1 1 1
## [,26] [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37]
## [1,] 0 0 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 1 1 1 1 1 1
## [7,] 0 0 0 0 0 0 0 0 0 0 0 0
## [8,] 1 1 1 1 1 1 1 1 1 1 1 1
## [9,] 1 1 1 1 1 0 1 1 1 1 1 1
## [10,] 0 0 0 0 0 0 1 1 1 1 1 0
## [11,] 1 1 1 1 1 1 1 1 1 1 1 1
## [12,] 1 1 1 1 1 1 1 1 1 1 1 1
## [13,] 1 1 1 1 1 1 1 1 1 1 1 1
## [14,] 1 1 1 1 1 1 1 1 1 1 1 1
## [15,] 1 1 1 1 1 1 1 1 1 1 1 1
## [16,] 1 1 1 1 1 1 1 1 1 1 1 1
## [17,] 1 1 1 1 1 1 1 1 1 1 1 1
## [18,] 1 1 1 1 1 1 1 1 1 1 1 1
## [19,] 1 1 1 1 1 1 1 1 1 1 1 1
## [20,] 1 1 1 1 1 1 1 1 1 1 1 1
## [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48] [,49]
## [1,] 0 0 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0 0 0
## [6,] 1 0 0 0 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0 0 0 0 0
## [8,] 1 1 1 0 0 0 0 0 0 0 0 0
## [9,] 1 0 1 0 0 0 0 0 0 0 0 0
## [10,] 1 0 0 0 0 0 0 0 0 0 0 0
## [11,] 1 1 1 1 1 1 1 1 1 1 0 0
## [12,] 1 1 1 1 1 1 1 1 1 1 1 1
## [13,] 1 1 1 1 1 1 1 1 1 1 1 1
## [14,] 1 1 1 1 1 1 1 1 1 1 1 1
## [15,] 1 1 1 1 1 1 1 1 1 1 1 1
## [16,] 1 1 1 1 1 1 1 1 1 1 1 1
## [17,] 1 1 1 1 1 1 1 1 1 1 1 1
## [18,] 1 1 1 1 1 1 1 1 1 1 1 1
## [19,] 1 1 1 1 1 1 1 1 1 1 1 1
## [20,] 1 1 1 1 1 1 1 1 1 1 1 1
## [,50] [,51] [,52] [,53] [,54] [,55] [,56] [,57] [,58] [,59] [,60] [,61]
## [1,] 0 0 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0 0 0 0 0
## [8,] 0 0 0 0 0 0 0 0 0 0 0 0
## [9,] 0 0 0 0 0 0 0 0 0 0 0 0
## [10,] 0 0 0 0 0 0 0 0 0 0 0 0
## [11,] 0 0 0 0 0 0 0 0 0 0 0 0
## [12,] 1 1 1 1 1 1 0 0 0 0 0 0
## [13,] 1 1 1 1 1 1 1 1 1 1 1 1
## [14,] 1 1 1 1 1 1 1 1 1 1 1 1
## [15,] 1 1 1 1 1 1 1 1 1 1 1 1
## [16,] 1 1 1 1 1 1 1 1 1 1 1 1
## [17,] 1 1 1 1 1 1 1 1 1 1 1 1
## [18,] 1 1 1 1 1 1 1 1 1 1 1 1
## [19,] 1 1 1 1 1 1 1 1 1 1 1 1
## [20,] 1 1 1 1 1 1 1 1 1 1 1 1
## [,62] [,63] [,64] [,65] [,66] [,67] [,68] [,69] [,70] [,71] [,72] [,73]
## [1,] 0 0 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0 0 0 0 0
## [8,] 0 0 0 0 0 0 0 0 0 0 0 0
## [9,] 0 0 0 0 0 0 0 0 0 0 0 0
## [10,] 0 0 0 0 0 0 0 0 0 0 0 0
## [11,] 0 0 0 0 0 0 0 0 0 0 0 0
## [12,] 0 0 0 0 0 0 0 0 0 0 0 0
## [13,] 1 1 0 0 0 0 0 0 0 0 0 0
## [14,] 1 1 1 1 1 1 1 1 1 1 1 1
## [15,] 1 1 1 1 1 1 1 1 1 1 1 1
## [16,] 1 1 1 1 1 1 1 1 1 1 1 1
## [17,] 1 1 0 0 0 0 0 0 0 0 0 0
## [18,] 1 1 1 1 1 1 1 1 1 1 1 1
## [19,] 1 1 1 1 1 1 1 1 1 1 1 1
## [20,] 1 1 1 1 1 1 1 1 1 1 1 1
## [,74] [,75] [,76] [,77] [,78] [,79] [,80] [,81] [,82] [,83] [,84] [,85]
## [1,] 0 0 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0 0 0 0 0
## [8,] 0 0 0 0 0 0 0 0 0 0 0 0
## [9,] 0 0 0 0 0 0 0 0 0 0 0 0
## [10,] 0 0 0 0 0 0 0 0 0 0 0 0
## [11,] 0 0 0 0 0 0 0 0 0 0 0 0
## [12,] 0 0 0 0 0 0 0 0 0 0 0 0
## [13,] 0 0 0 0 0 0 0 0 0 0 0 0
## [14,] 0 0 0 0 0 0 0 0 0 0 0 0
## [15,] 1 1 1 1 1 1 1 1 1 1 1 0
## [16,] 0 0 0 0 0 0 0 0 0 0 0 1
## [17,] 0 0 0 0 0 0 0 0 0 0 0 0
## [18,] 0 0 0 0 0 0 0 0 0 0 0 0
## [19,] 0 0 0 0 0 0 0 0 0 0 0 0
## [20,] 0 0 0 0 0 0 0 0 0 0 0 0
## [,86] [,87] [,88] [,89] [,90] [,91] [,92] [,93] [,94] [,95] [,96] [,97]
## [1,] 0 0 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0 0 0 0 0
## [8,] 0 0 0 0 0 0 0 0 0 0 0 0
## [9,] 0 0 0 0 0 0 0 0 0 0 0 0
## [10,] 0 0 0 0 0 0 0 0 0 0 0 0
## [11,] 0 0 0 0 0 0 0 0 0 0 0 0
## [12,] 0 0 0 0 0 0 0 0 0 0 0 0
## [13,] 0 0 0 0 0 0 0 0 0 0 0 0
## [14,] 0 0 0 0 0 0 0 0 0 0 0 0
## [15,] 0 0 0 0 0 0 0 0 1 1 1 1
## [16,] 1 1 1 1 1 1 1 1 1 1 1 1
## [17,] 0 0 0 0 0 0 0 0 1 1 1 1
## [18,] 0 0 0 0 0 0 0 0 1 1 1 1
## [19,] 0 0 0 0 0 0 0 0 1 1 1 1
## [20,] 0 0 0 0 0 0 0 0 1 1 1 1
## [,98] [,99] [,100] [,101] [,102] [,103] [,104] [,105] [,106] [,107]
## [1,] 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0 0 0
## [8,] 0 0 0 0 0 0 0 0 0 0
## [9,] 0 0 0 0 0 0 0 0 0 0
## [10,] 0 0 0 0 0 0 0 0 0 0
## [11,] 0 0 0 0 0 0 0 0 0 0
## [12,] 0 0 0 0 0 0 0 0 0 0
## [13,] 0 0 0 0 0 0 0 0 0 0
## [14,] 0 0 0 0 0 0 0 0 0 0
## [15,] 1 1 1 1 1 1 1 1 1 1
## [16,] 1 1 0 1 1 1 1 1 1 1
## [17,] 1 1 0 0 0 0 0 0 0 0
## [18,] 1 1 0 1 1 1 1 1 1 1
## [19,] 1 1 0 1 1 1 1 1 1 1
## [20,] 1 1 0 1 1 1 1 1 1 1
## [,108] [,109] [,110] [,111] [,112] [,113] [,114] [,115] [,116] [,117]
## [1,] 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0 0 0
## [8,] 0 0 0 0 0 0 0 0 0 0
## [9,] 0 0 0 0 0 0 0 0 0 0
## [10,] 0 0 0 0 0 0 0 0 0 0
## [11,] 0 0 0 0 0 0 0 0 0 0
## [12,] 0 0 0 0 0 0 0 0 0 0
## [13,] 0 0 0 0 0 0 0 0 0 0
## [14,] 0 0 0 0 0 0 0 0 0 0
## [15,] 1 1 1 1 0 1 1 1 1 1
## [16,] 1 1 1 0 1 1 1 1 1 1
## [17,] 0 0 0 0 0 0 0 0 0 0
## [18,] 1 1 1 0 0 1 0 0 0 0
## [19,] 1 1 1 0 0 1 1 1 1 1
## [20,] 1 1 1 0 0 1 0 0 0 0
## [,118] [,119] [,120] [,121] [,122] [,123] [,124] [,125] [,126] [,127]
## [1,] 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0 0 0
## [8,] 0 0 0 0 0 0 0 0 0 0
## [9,] 0 0 0 0 0 0 0 0 0 0
## [10,] 0 0 0 0 0 0 0 0 0 0
## [11,] 0 0 0 0 0 0 0 0 0 0
## [12,] 0 0 0 0 0 0 0 0 0 0
## [13,] 0 0 0 0 0 0 0 0 0 0
## [14,] 0 0 0 0 0 0 0 0 0 0
## [15,] 1 1 1 1 1 1 1 1 1 0
## [16,] 1 1 1 1 1 1 1 1 0 1
## [17,] 0 0 0 0 0 0 0 0 0 0
## [18,] 0 0 0 0 0 0 0 0 0 0
## [19,] 1 1 1 1 1 1 1 1 0 0
## [20,] 0 0 0 0 0 0 0 0 0 0
## [,128] [,129] [,130] [,131] [,132] [,133] [,134] [,135] [,136] [,137]
## [1,] 0 0 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0 0 0
## [8,] 0 0 0 0 0 0 0 0 0 0
## [9,] 0 0 0 0 0 0 0 0 0 0
## [10,] 0 0 0 0 0 0 0 0 0 0
## [11,] 0 0 0 0 0 0 0 0 0 0
## [12,] 0 0 0 0 0 0 0 0 0 0
## [13,] 0 0 0 0 0 0 0 0 0 0
## [14,] 0 0 0 0 0 0 0 0 0 0
## [15,] 1 1 1 1 1 1 1 1 1 1
## [16,] 1 1 1 1 1 1 1 1 1 1
## [17,] 0 0 0 0 0 0 0 0 0 0
## [18,] 0 0 0 0 0 0 0 0 0 0
## [19,] 1 1 0 0 0 0 0 0 0 0
## [20,] 0 0 1 1 1 1 1 1 1 1
## [,138] [,139] [,140] [,141] [,142] [,143] [,144] [,145]
## [1,] 0 0 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0
## [8,] 0 0 0 0 0 0 0 0
## [9,] 0 0 0 0 0 0 0 0
## [10,] 0 0 0 0 0 0 0 0
## [11,] 0 0 0 0 0 0 0 0
## [12,] 0 0 0 0 0 0 0 0
## [13,] 0 0 0 0 0 0 0 0
## [14,] 0 0 0 0 0 0 0 0
## [15,] 1 1 1 1 1 0 1 1
## [16,] 1 1 1 1 0 1 1 1
## [17,] 0 0 0 0 0 0 0 0
## [18,] 0 0 0 0 0 0 0 0
## [19,] 0 0 0 0 0 0 0 0
## [20,] 1 1 1 1 0 0 1 1
##
## $edges
## from to
## 1 0 1
## 1 1 2
## 2 1 3
## 3 2 3
## 4 1 4
## 5 2 4
## 6 3 4
## 7 1 5
## 8 2 5
## 9 5 3
## 10 5 4
## 11 1 6
## 12 2 6
## 13 3 6
## 14 1 7
## 15 2 7
## 16 3 7
## 17 4 7
## 18 7 6
## 19 1 8
## 20 3 8
## 21 5 8
## 22 7 8
## 23 1 9
## 24 2 9
## 25 3 9
## 26 4 9
## 27 5 9
## 28 6 9
## 29 7 9
## 30 9 8
## 31 1 10
## 32 2 10
## 33 3 10
## 34 4 10
## 35 5 10
## 36 10 6
## 37 7 10
## 38 10 8
## 39 10 9
## 40 1 11
## 41 2 11
## 42 3 11
## 43 4 11
## 44 5 11
## 45 8 11
## 46 9 11
## 47 2 12
## 48 3 12
## 49 6 12
## 50 7 12
## 51 8 12
## 52 9 12
## 53 10 12
## 54 11 12
## 55 1 13
## 56 2 13
## 57 4 13
## 58 6 13
## 59 8 13
## 60 10 13
## 61 11 13
## 62 12 13
## 63 1 14
## 64 2 14
## 65 3 14
## 66 6 14
## 67 7 14
## 68 8 14
## 69 10 14
## 70 11 14
## 71 12 14
## 72 13 14
## 73 1 15
## 74 5 15
## 75 6 15
## 76 7 15
## 77 8 15
## 78 9 15
## 79 10 15
## 80 11 15
## 81 12 15
## 82 13 15
## 83 14 15
## 84 3 16
## 85 6 16
## 86 7 16
## 87 8 16
## 88 10 16
## 89 11 16
## 90 12 16
## 91 13 16
## 92 14 16
## 93 2 17
## 94 4 17
## 95 6 17
## 96 9 17
## 97 11 17
## 98 13 17
## 99 17 15
## 100 2 18
## 101 3 18
## 102 5 18
## 103 6 18
## 104 7 18
## 105 8 18
## 106 11 18
## 107 12 18
## 108 13 18
## 109 14 18
## 110 18 15
## 111 18 16
## 112 17 18
## 113 1 19
## 114 2 19
## 115 3 19
## 116 4 19
## 117 6 19
## 118 7 19
## 119 8 19
## 120 10 19
## 121 11 19
## 122 12 19
## 123 13 19
## 124 14 19
## 125 19 15
## 126 19 16
## 127 17 19
## 128 18 19
## 129 2 20
## 130 3 20
## 131 4 20
## 132 6 20
## 133 7 20
## 134 8 20
## 135 9 20
## 136 10 20
## 137 11 20
## 138 12 20
## 139 13 20
## 140 14 20
## 141 20 15
## 142 20 16
## 143 17 20
## 144 18 20
For each site, the “ocean current links” will receive the code “1” in a sites-by-edges, all other edges receive the code “0” when creating AEM variables non-weighted (see bin.mat$se.mat).
For the AEM variables weighted, weights can be added to the sites-by-edges matrix by multiplying a the dispersal probabilities from connectivity matrix to the sites-by-edges matrix.
Now, we want to add weights to edges by multiplying these edges by the dispersal probabilities contained in the connectivity matrix. To do so, we remove the self-comparison.
weights <- filter(con.mat.highest.prob.no0, SITE1 != SITE2)
weight.vec <- as.vector(weights[,1])
length(weight.vec)
## [1] 144
Calculate AEM variables ysing the function aem from the package adespatial.This function constructs eigenvectors of a site-by-link matrix. Weights can be applied to the links.
cuke.aem.wt <- adespatial::aem(aem.build.binary = bin.mat, weight = weight.vec, rm.link0 = TRUE) # weight
cuke.aem.nowt <- adespatial::aem(aem.build.binary = bin.mat, rm.link0 = TRUE) # no weight
Generate AEM vectors.
AEM.vectors.wt <- as.data.frame(cuke.aem.wt$vectors)
AEM.vectors.nowt <- as.data.frame(cuke.aem.nowt$vectors)
The eigenfunctions created with this method are orthogonal variables, as is the case for the eigenfunctions created by the PCNM and MEM methods. Save the AEM vectors informations for implementing these values in the RDA framework.
write.table(AEM.vectors.wt, file = "AEM_weight_all_vectors.txt", sep = "\t", quote = F, col.names = T, row.names = F)