[adegenet-commits] r883 - in pkg: R inst/doc inst/doc/figs man

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Fri May 27 15:27:31 CEST 2011


Author: jombart
Date: 2011-05-27 15:27:31 +0200 (Fri, 27 May 2011)
New Revision: 883

Added:
   pkg/inst/doc/figs/-011.pdf
   pkg/inst/doc/figs/-012.pdf
   pkg/inst/doc/figs/-013.pdf
   pkg/inst/doc/figs/-014.pdf
   pkg/inst/doc/figs/-015.pdf
   pkg/inst/doc/figs/-016.pdf
   pkg/inst/doc/figs/-018.pdf
   pkg/inst/doc/figs/-019.pdf
   pkg/inst/doc/figs/-020.pdf
   pkg/inst/doc/figs/-021.pdf
   pkg/inst/doc/figs/-022.pdf
   pkg/inst/doc/figs/-024.pdf
   pkg/inst/doc/figs/-026.pdf
   pkg/inst/doc/figs/-028.pdf
   pkg/inst/doc/figs/-031.pdf
   pkg/inst/doc/figs/-033.pdf
   pkg/inst/doc/figs/-034.pdf
   pkg/inst/doc/figs/ascore.pdf
Modified:
   pkg/R/dapc.R
   pkg/inst/doc/adegenet-dapc.Rnw
   pkg/inst/doc/figs/-006.pdf
   pkg/inst/doc/figs/-010.pdf
   pkg/man/dapc.Rd
Log:
Added compoplot function. DAPC vignette nearly done, left supp. ind.


Modified: pkg/R/dapc.R
===================================================================
--- pkg/R/dapc.R	2011-05-26 16:40:08 UTC (rev 882)
+++ pkg/R/dapc.R	2011-05-27 13:27:31 UTC (rev 883)
@@ -617,7 +617,85 @@
 
 
 
+############
+## compoplot
+############
+compoplot <- function(x, only.grp=NULL, subset=NULL, new.pred=NULL, col=NULL, lab=NULL,
+                      legend=TRUE, leg.txt=NULL, ncol=4, posi=NULL, cleg=.8, bg=transp("white"), ...){
+    if(!require(ade4, quiet=TRUE)) stop("ade4 library is required.")
+    if(!inherits(x, "dapc")) stop("x is not a dapc object")
 
+
+    ## HANDLE ARGUMENTS ##
+    ngrp <- length(levels(x$grp))
+
+    ## col
+    if(is.null(col)){
+        col <- rainbow(ngrp)
+    }
+
+    ## lab
+    if(is.null(lab)){
+        lab <- rownames(x$tab)
+    } else {
+        ## recycle labels
+       lab <- rep(lab, le=nrow(x$tab))
+    }
+
+    ## posi
+    if(is.null(posi)){
+        posi <- list(x=0, y=-.01)
+    }
+
+    ## leg.txt
+    if(is.null(leg.txt)){
+        leg.txt <- levels(x$grp)
+    }
+
+    ## HANDLE DATA FROM PREDICT.DAPC ##
+    if(!is.null(new.pred)){
+        n.new <- length(new.pred$assign)
+        x$grp <- c(as.character(x$grp), rep("unknown", n.new))
+        x$assign <- c(as.character(x$assign), as.character(new.pred$assign))
+        x$posterior <- rbind(x$posterior, new.pred$posterior)
+        lab <- c(lab, rownames(new.pred$posterior))
+    }
+
+
+    ## TREAT OTHER ARGUMENTS ##
+    if(!is.null(only.grp)){
+        only.grp <- as.character(only.grp)
+        ori.grp <- as.character(x$grp)
+        x$grp <- x$grp[only.grp==ori.grp]
+        x$assign <- x$assign[only.grp==ori.grp]
+        x$posterior <- x$posterior[only.grp==ori.grp, , drop=FALSE]
+        lab <- lab[only.grp==ori.grp]
+    } else if(!is.null(subset)){
+        x$grp <- x$grp[subset]
+        x$assign <- x$assign[subset]
+        x$posterior <- x$posterior[subset, , drop=FALSE]
+        lab <- lab[subset]
+    }
+
+
+    ## MAKE THE PLOT ##
+    Z <- t(x$posterior)
+    barplot(Z, border=NA, col=col, ylab="membership probability", names=lab, las=3, ...)
+
+    if(legend){
+        oxpd <- par("xpd")
+        par(xpd=TRUE)
+        legend(posi, fill=col, leg=leg.txt, cex=cleg, ncol=ncol, bg=bg)
+        on.exit(par(xpd=oxpd))
+    }
+
+    return(invisible(match.call()))
+} # end compoplot
+
+
+
+
+
 ###############
 ## a.score
 ###############

Modified: pkg/inst/doc/adegenet-dapc.Rnw
===================================================================
--- pkg/inst/doc/adegenet-dapc.Rnw	2011-05-26 16:40:08 UTC (rev 882)
+++ pkg/inst/doc/adegenet-dapc.Rnw	2011-05-27 13:27:31 UTC (rev 883)
@@ -340,15 +340,9 @@
 
 
 
-%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%
-\section{Customizing graphics}
-%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%
 
-
 %%%%%%%%%%%%%%%%
-\subsection{DAPC scatterplots}
+\subsection{Customizing DAPC scatterplots}
 %%%%%%%%%%%%%%%%
 
 DAPC scatterplots are the main result of DAPC. It is therefore essential to ensure that information
@@ -386,17 +380,123 @@
 add.scatter.eig(dapc1$eig, 5,1,2, posi="bottomright", inset=.03, csub=1)
 @
 
+We can also add a minimum spanning tree based on the (squared) distances between populations onto
+the DAPC scatterplot. This allows one to bear in mind the proximities between populations, which can
+be misinterpreted when looking at discriminant functions of lesser rank.
+We also add the centre of each group with crosses.
+Lastly, we remove the DAPC eigenvalues, not very useful in this case, and replace them by a graph of
+PCA eigenvalues retained in dimension-reduction step (retained eigenvalues in black).
+<<>>=
+pca.eig <- dudi.pca(scaleGen(x, scale=FALSE), scannf=FALSE,nf=1)$eig
+temp <- 100*cumsum(pca.eig)/sum(pca.eig)
+@
+<<fig=TRUE>>=
+scatter(dapc1, ratio=0, grid=FALSE, bg="white", pch=20,  cell=0, cstar=0, lwd=2, col=transp(myCol), cex=3, clab=0, mstree=TRUE)
+par(xpd=TRUE)
+legend("topright", pch=20, cex=1, col=transp(myCol), legend=paste("Cluster", 1:6), pt.cex=3)
+points(dapc1$grp.coord[,1], dapc1$grp.coord[,2], pch=4, cex=3, lwd=8, col="black")
+points(dapc1$grp.coord[,1], dapc1$grp.coord[,2], pch=4, cex=3, lwd=2, col=myCol)
 
+myInset <- function(){
+    plot(temp, col=rep(c("black","lightgrey"), c(dapc1$n.pca,1000)), ylim=c(0,100),
+         xlab="PCA axis", ylab="Cumulated variance (%)", cex=1, pch=20, type="h", lwd=2)
+}
 
+add.scatter(myInset(), posi="bottomright", inset=c(-0.03,-0.01), ratio=.28, bg=transp("white"))
+@
+
+
+Lastly, note that \texttt{scatter} can also represent a single discriminant function, which is
+especially useful when only one of these has been retained (e.g. in the case $k=2$).
+This is achieved by plotting the densities of individuals on a given discriminant function with
+different colors for different groups:
+<<fig=TRUE>>=
+scatter(dapc1,1,1, col=myCol, bg="white")
+@
+
+
+
+
 %%%%%%%%%%%%%%%%
-\subsection{Group memberships}
+\subsection{Interpreting variable contributions}
 %%%%%%%%%%%%%%%%
 
 
 
 
 
+%%%%%%%%%%%%%%%%
+\subsection{Interpreting group memberships}
+%%%%%%%%%%%%%%%%
+Besides scatterplots of discriminant functions, group memberships of DAPC can be exploited.
+Note that caution should be taken when interpreting group memberships of a DAPC based on many PCs,
+which can be unstable (see section below).
+Despite possible bias due to overfitting, group memberships can be used as indicators of how
+clear-cut genetic clusters are.
+Note that this is most useful for groups defined by an external criteria, i.e. defined biologically, as opposed to identified by $k$-means.
+It is less useful for groups identified using \texttt{find.clusters}, since we expect $k$-means to
+provide optimal groups for DAPC, and therefore both classifications to be mostly consistent.
+\\
 
+Membership probabilities are based on the retained discriminant functions.
+They are stored in \texttt{dapc} objects as the slot \texttt{posterior}:
+<<>>=
+class(dapc1$posterior)
+dim(dapc1$posterior)
+round(head(dapc1$posterior),3)
+@
+Each row corresponds to an individual, each column to a group.
+This information can be summarized using \texttt{summary} on the \texttt{dapc} object:
+<<>>=
+summary(dapc1)
+@
+The slot \texttt{assign.per.pop} indicates the proportions of successful reassignment (based on
+discriminant functions) of individuals to their original clusters. Large values indicate clear-cut
+clusters, while low values suggest admixed groups.
+\\
+
+This information can also be visualized using \texttt{assignplot} (see \texttt{?assignplot} for display
+options); here, we chose to represent only the first 50 individuals to make the figure readable:
+<<fig=TRUE>>=
+assignplot(dapc1, subset=1:50)
+@
+
+\noindent
+This figure is the simple graphical translation of the table above. Heat colors represent probabilities
+(red=1, white=0); blue crosses represent the prior cluster provided to DAPC.
+Here, we observe for most individuals that DAPC classification is consistent with the original
+clusters (blue crosses are on red rectangles), except one discrepancie for individual 21, classified
+in group 1 while DAPC would assign it to group 3.
+
+Such figure is particularly useful when prior biological groups are used, as one may infer admixed
+or misclassified individuals.
+\\
+
+Note that this information can also be plotted in a STRUCTURE-like (!) way using \texttt{compoplot}
+(see \code{?compoplot} for customizing the plot).
+We can plot information of all individuals to have a global picture of the clusters composition.
+<<fig=TRUE>>=
+compoplot(dapc1, posi="bottomright", leg.txt=paste("Cluster", 1:6), lab="", ncol=1, xlab="individuals")
+@
+
+But we can have a closer look to a subset of individuals as easily; for instance, for the first 50 individuals:
+<<fig=TRUE>>=
+compoplot(dapc1, subset=1:50, posi="bottomright", leg.txt=paste("Cluster", 1:6), lab="", ncol=2, xlab="individuals")
+@
+
+Obviously, we can use the power of R to lead our investigation further. For instance, which are the
+most 'admixed' individuals?
+Say admixed individuals are those having no more than 90\% of probability of membership in a single cluster:
+<<fig=TRUE>>=
+temp <- which(apply(dapc1$posterior,1, function(e) all(e<0.9)))
+temp
+compoplot(dapc1, subset=temp, posi="bottomright", leg.txt=paste("Cluster", 1:6), lab="", ncol=2)
+@
+
+
+
+
+
 %%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%
 \section{Ensuring stability of DAPC results}
@@ -405,22 +505,136 @@
 
 
 %%%%%%%%%%%%%%%%
-\subsection{Why DAPC results could vary?}
+\subsection{When and why group memberships can be unreliable}
 %%%%%%%%%%%%%%%%
- Indeed, retaining too many PCs with respect
-to the number of individuals can lead to over-fitting the discriminant functions: these become so
-"flexible" that they could discriminate almost perfectly any cluster. While scatterplots are usually
-essentially unaltered by this process, membership probabilities can become drastically inflated.
 
+In DAPC, discriminant functions are linear combinations of variables (principal components of PCA) which
+optimize the separation of individuals into pre-defined groups. Based on the retained discriminant
+functions, it is possible to derive group membership probabilities, which can be interpreted in
+order to assess how clear-cut or admixed the clusters are.
+Unfortunately, retaining too many PCs with respect to the number of individuals can lead to over-fitting the discriminant functions.
+In such case, discriminant function become so "flexible" that they could discriminate almost perfectly any cluster.
+While the main scatterplots are usually unaltered by this process, membership probabilities can become drastically inflated.
+\\
 
+
+This point can be illustrated using the \texttt{microbov} dataset (704 cattles of 15 breeds typed
+for 30 microsatellite markers).
+We first examine the  \% of successful reassignment (i.e., quality of discrimination) for different numbers of retained PCs.
+First, retaining 3 PCs during the dimension-reduction step, and all discriminant functions:
+<<>>=
+data(microbov)
+microbov
+temp <- summary(dapc(microbov, n.da=100, n.pca=3))$assign.per.pop*100
+@
+<<fig=TRUE>>=
+par(mar=c(4.5,7.5,1,1))
+barplot(temp, xlab="% of reassignment to actual breed", horiz=TRUE, las=1)
+@
+
+\noindent
+We can see that some breeds are well discriminated (e.g. Zebu, Lagunaire,  > 90\%) while others are
+entirely overlooked by the analysis (e.g. Bretone Pie Noire, Limousin, <10\%).
+This is because too much genetic information is lost when retaining only 3 PCs.
+We repeat the analysis, this time keeping 300 PCs:
+<<>>=
+temp <- summary(dapc(microbov, n.da=100, n.pca=300))$assign.per.pop*100
+@
+<<fig=TRUE>>=
+par(mar=c(4.5,7.5,1,1))
+barplot(temp, xlab="% of reassignment to actual breed", horiz=TRUE, las=1)
+@
+
+\noindent We now obtain almost 100\% of discrimination for all groups.
+Is this result satisfying? Actually not.
+The number retained PCs is so large that discriminant functions could model any structure and
+virtually any set of clusters would be well discriminated.
+This can be illustrated by running the analysis using randomized groups:
+<<>>=
+x <- microbov
+pop(x) <- sample(pop(x))
+temp <- summary(dapc(x, n.da=100, n.pca=300))$assign.per.pop*100
+@
+<<fig=TRUE>>=
+par(mar=c(4.5,7.5,1,1))
+barplot(temp, xlab="% of reassignment to actual breed", horiz=TRUE, las=1)
+@
+
+\noindent
+Groups have been randomised, and yet we still get very good discrimination.
+There is therefore a trade-off between finding a space with a good power of discrimination using
+DAPC, and retaining too many dimensions and cause over-fitting.
+
+
+
+
 %%%%%%%%%%%%%%%%
 \subsection{Using the $a$-score}
 %%%%%%%%%%%%%%%%
+The trade-off between power of discrimination and over-fitting can be measured by the $a$-score, which is simply the difference between the \% of
+successful reassignment of the analysis (observed discrimination) and values obtained using random
+groups (random discrimination).
+It can be seen as the \% of successful reassignment corrected for the number of retained PCs.
+It is implemented by \texttt{a.score}, which relies on repeating the DAPC analysis using randomized
+groups, and computing $a$-scores for each group, and well as the average $a$-score:
+<<>>=
+dapc2 <- dapc(microbov, n.da=100, n.pca=10)
+temp <- a.score(dapc2)
+names(temp)
+temp$tab[1:5,1:5]
+temp$pop.score
+temp$mean
+@
 
+The number of retained PCs can be chosen so as to optimize the $a$-score; this is achived by \texttt{optim.a.score}:
+<<>>=
+dapc2 <- dapc(microbov, n.da=100, n.pca=50)
+@
+<<eval=FALSE>>=
+temp <- optim.a.score(dapc2)
+@
+\begin{center}
+  \includegraphics[width=.7\textwidth]{figs/ascore.pdf}
+\end{center}
 
 
+\noindent Since evaluating solutions for 1, 2, ... 100 retained PCs, as a first approximation the
+method evaluates a few numbers of retained PCs in this range, and uses spline interpolation to
+approximate the optimal number of PCs to retain. Then, one can evaluate all solutions within a
+restrained range using the argument \texttt{n.pca}.
+For the \texttt{microbov} dataset, we should probably retained between 10 and 30 PCs during the
+dimension-reduction step.
+\\
 
+We perform the analysis with 20 PCs retained, and then map the membership probabilities as before:
+<<>>=
+dapc3 <- dapc(microbov, n.da=100, n.pca=20)
+myCol <- rainbow(15)
+@
+<<fig=TRUE>>=
+par(mar=c(5.1,4.1,1.1,1.1), xpd=TRUE)
+compoplot(dapc3, lab="", posi=list(x=12,y=-.01), cleg=.7)
+@
 
+And as before, we can investigate further admixed individuals, which we arbitrarily define as those
+having no more than 0.5 probability of membership to any group:
+<<fig=TRUE>>=
+temp <- which(apply(dapc3$posterior,1, function(e) all(e<0.5)))
+temp
+lab <- pop(microbov)[temp]
+par(mar=c(8,4,5,1), xpd=TRUE)
+compoplot(dapc3, subset=temp, cleg=.6, posi=list(x=0,y=1.2))
+@
+
+\noindent Admixture seems strongest between a few breeds (Blonde d'Aquitaine, Bretonne Pie-Noire,
+Limousine and Gascone). Some features are fairly surprising; for instance, the last individual is
+fairly distant from its cluster, but almost 50\% chances to be assigned to two other breeds.
+
+
+
+
+
+
 %%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%
 \section{Using supplementary individuals}

Modified: pkg/inst/doc/figs/-006.pdf
===================================================================
--- pkg/inst/doc/figs/-006.pdf	2011-05-26 16:40:08 UTC (rev 882)
+++ pkg/inst/doc/figs/-006.pdf	2011-05-27 13:27:31 UTC (rev 883)
@@ -2,8 +2,8 @@
 %âãÏÓ\r
 1 0 obj
 <<
-/CreationDate (D:20110526171611)
-/ModDate (D:20110526171611)
+/CreationDate (D:20110527152608)
+/ModDate (D:20110527152608)
 /Title (R Graphics Output)
 /Producer (R 2.13.0)
 /Creator (R)

Modified: pkg/inst/doc/figs/-010.pdf
===================================================================
--- pkg/inst/doc/figs/-010.pdf	2011-05-26 16:40:08 UTC (rev 882)
+++ pkg/inst/doc/figs/-010.pdf	2011-05-27 13:27:31 UTC (rev 883)
@@ -2,8 +2,8 @@
 %âãÏÓ\r
 1 0 obj
 <<
-/CreationDate (D:20110526171611)
-/ModDate (D:20110526171611)
+/CreationDate (D:20110527152609)
+/ModDate (D:20110527152609)
 /Title (R Graphics Output)
 /Producer (R 2.13.0)
 /Creator (R)

Added: pkg/inst/doc/figs/-011.pdf
===================================================================
--- pkg/inst/doc/figs/-011.pdf	                        (rev 0)
+++ pkg/inst/doc/figs/-011.pdf	2011-05-27 13:27:31 UTC (rev 883)
@@ -0,0 +1,4942 @@
+%PDF-1.4
+%âãÏÓ\r
+1 0 obj
+<<
+/CreationDate (D:20110527152609)
+/ModDate (D:20110527152609)
+/Title (R Graphics Output)
+/Producer (R 2.13.0)
+/Creator (R)
+>>
+endobj
+2 0 obj
+<<
+/Type /Catalog
+/Pages 3 0 R
+>>
+endobj
+7 0 obj
+<<
+/Type /Page
+/Parent 3 0 R
+/Contents 8 0 R
+/Resources 4 0 R
+>>
+endobj
+8 0 obj
+<<
+/Length 9 0 R
+>>
+stream
+1 J 1 j q
+/sRGB cs 1.000 1.000 1.000 scn
+0 0 432.00 432.00 re f
+Q q
+Q q 1.44 1.44 429.12 429.12 re W n
+/sRGB CS 0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+1.44 255.77 m 430.56 255.77 l S
+173.23 1.44 m 173.23 430.56 l S
+/sRGB CS 1.000 0.000 0.000 SCN
+141.65 321.74 m 122.55 299.14 l S
+141.65 321.74 m 149.71 274.39 l S
+141.65 321.74 m 202.70 304.14 l S
+141.65 321.74 m 157.30 246.92 l S
+141.65 321.74 m 130.27 335.67 l S
+141.65 321.74 m 117.36 350.52 l S
+141.65 321.74 m 161.32 344.50 l S
+141.65 321.74 m 113.42 275.38 l S
+141.65 321.74 m 132.75 333.33 l S
+141.65 321.74 m 121.82 349.17 l S
+141.65 321.74 m 117.40 296.72 l S
+141.65 321.74 m 164.21 322.25 l S
+141.65 321.74 m 162.76 302.78 l S
+141.65 321.74 m 142.39 337.54 l S
+141.65 321.74 m 155.72 336.07 l S
+141.65 321.74 m 154.10 331.29 l S
+141.65 321.74 m 130.57 318.02 l S
+141.65 321.74 m 170.10 312.73 l S
+141.65 321.74 m 131.05 272.89 l S
+141.65 321.74 m 145.44 314.85 l S
+141.65 321.74 m 121.28 339.42 l S
+141.65 321.74 m 132.85 310.06 l S
+141.65 321.74 m 104.02 320.16 l S
+141.65 321.74 m 103.49 305.91 l S
+141.65 321.74 m 170.25 311.87 l S
+141.65 321.74 m 157.35 290.92 l S
+141.65 321.74 m 150.88 335.92 l S
+141.65 321.74 m 145.76 334.93 l S
+141.65 321.74 m 152.11 309.21 l S
+141.65 321.74 m 158.10 336.00 l S
+141.65 321.74 m 83.95 320.63 l S
+141.65 321.74 m 161.16 303.88 l S
+141.65 321.74 m 139.14 343.44 l S
+141.65 321.74 m 128.35 307.14 l S
+141.65 321.74 m 117.64 326.30 l S
+141.65 321.74 m 112.13 319.33 l S
+141.65 321.74 m 157.67 304.18 l S
+141.65 321.74 m 150.01 290.00 l S
+141.65 321.74 m 156.34 360.65 l S
+141.65 321.74 m 116.41 322.40 l S
+141.65 321.74 m 136.64 355.54 l S
+141.65 321.74 m 163.74 356.74 l S
+141.65 321.74 m 143.91 337.53 l S
+141.65 321.74 m 146.34 345.48 l S
+141.65 321.74 m 159.75 338.97 l S
+141.65 321.74 m 134.54 331.68 l S
+141.65 321.74 m 115.10 332.16 l S
+141.65 321.74 m 152.36 323.22 l S
+141.65 321.74 m 130.94 329.21 l S
+141.65 321.74 m 124.17 317.43 l S
+141.65 321.74 m 106.72 324.76 l S
+141.65 321.74 m 156.62 286.94 l S
+141.65 321.74 m 164.44 282.65 l S
+141.65 321.74 m 171.35 313.65 l S
+141.65 321.74 m 190.76 333.35 l S
+141.65 321.74 m 177.14 337.67 l S
+141.65 321.74 m 108.23 305.06 l S
+141.65 321.74 m 146.28 334.29 l S
+141.65 321.74 m 158.04 317.56 l S
+141.65 321.74 m 135.77 308.08 l S
+141.65 321.74 m 158.33 322.08 l S
+141.65 321.74 m 147.34 365.24 l S
+141.65 321.74 m 156.39 323.72 l S
+141.65 321.74 m 143.51 314.87 l S
+141.65 321.74 m 143.08 324.47 l S
+141.65 321.74 m 105.36 342.21 l S
+141.65 321.74 m 135.07 359.75 l S
+141.65 321.74 m 122.66 349.36 l S
+141.65 321.74 m 142.75 319.58 l S
+141.65 321.74 m 126.27 312.06 l S
+141.65 321.74 m 123.39 324.26 l S
+141.65 321.74 m 131.81 321.50 l S
+141.65 321.74 m 118.65 314.18 l S
+141.65 321.74 m 136.40 282.55 l S
+141.65 321.74 m 114.57 321.44 l S
+141.65 321.74 m 144.21 345.47 l S
+141.65 321.74 m 118.65 318.80 l S
+141.65 321.74 m 113.71 353.23 l S
+141.65 321.74 m 170.87 327.24 l S
+141.65 321.74 m 154.58 300.22 l S
+141.65 321.74 m 146.00 333.92 l S
+141.65 321.74 m 130.51 332.60 l S
+141.65 321.74 m 186.16 311.13 l S
+141.65 321.74 m 129.23 306.78 l S
+141.65 321.74 m 178.14 336.67 l S
+141.65 321.74 m 190.34 341.88 l S
+141.65 321.74 m 138.70 307.62 l S
+141.65 321.74 m 129.22 341.74 l S
+141.65 321.74 m 139.71 313.70 l S
+141.65 321.74 m 148.32 302.35 l S
+141.65 321.74 m 137.53 311.36 l S
+141.65 321.74 m 158.27 304.70 l S
+141.65 321.74 m 134.09 279.69 l S
+141.65 321.74 m 144.98 313.29 l S
+141.65 321.74 m 192.58 357.97 l S
+141.65 321.74 m 104.24 338.48 l S
+141.65 321.74 m 151.13 333.09 l S
+141.65 321.74 m 131.71 338.46 l S
+141.65 321.74 m 143.38 320.43 l S
+141.65 321.74 m 147.46 360.29 l S
+141.65 321.74 m 143.52 325.81 l S
+141.65 321.74 m 121.58 317.96 l S
+141.65 321.74 m 136.98 282.04 l S
+141.65 321.74 m 125.04 325.67 l S
+141.65 321.74 m 152.57 340.55 l S
+/sRGB CS 1.000 1.000 0.000 SCN
+92.11 231.90 m 116.45 273.55 l S
+92.11 231.90 m 52.47 247.72 l S
+92.11 231.90 m 90.97 257.24 l S
+92.11 231.90 m 93.10 232.68 l S
+92.11 231.90 m 89.97 246.17 l S
+92.11 231.90 m 113.25 235.02 l S
+92.11 231.90 m 84.09 247.97 l S
+92.11 231.90 m 106.80 204.39 l S
+92.11 231.90 m 92.95 240.19 l S
+92.11 231.90 m 104.64 211.75 l S
+92.11 231.90 m 87.38 227.54 l S
+92.11 231.90 m 64.48 240.97 l S
+92.11 231.90 m 88.98 211.73 l S
+92.11 231.90 m 145.00 270.28 l S
+92.11 231.90 m 85.86 236.39 l S
+92.11 231.90 m 97.09 203.29 l S
+92.11 231.90 m 55.01 220.33 l S
+92.11 231.90 m 95.85 289.80 l S
+92.11 231.90 m 99.96 210.31 l S
+92.11 231.90 m 126.26 254.29 l S
+92.11 231.90 m 74.90 234.37 l S
+92.11 231.90 m 77.81 208.70 l S
+92.11 231.90 m 88.64 243.02 l S
+92.11 231.90 m 82.43 241.88 l S
+92.11 231.90 m 79.51 262.63 l S
+92.11 231.90 m 137.95 196.60 l S
+92.11 231.90 m 60.25 224.84 l S
+92.11 231.90 m 96.58 257.30 l S
+92.11 231.90 m 86.93 214.58 l S
+92.11 231.90 m 101.63 229.16 l S
+92.11 231.90 m 93.67 209.31 l S
+92.11 231.90 m 100.92 250.83 l S
+92.11 231.90 m 109.90 237.70 l S
+92.11 231.90 m 116.06 232.76 l S
+92.11 231.90 m 76.94 230.06 l S
+92.11 231.90 m 37.20 246.28 l S
+92.11 231.90 m 90.18 215.66 l S
+92.11 231.90 m 103.97 195.00 l S
+92.11 231.90 m 102.58 269.52 l S
+92.11 231.90 m 120.45 196.12 l S
+92.11 231.90 m 43.87 199.15 l S
+92.11 231.90 m 102.06 227.39 l S
+92.11 231.90 m 73.86 281.85 l S
+92.11 231.90 m 67.52 190.70 l S
+92.11 231.90 m 116.08 148.92 l S
+92.11 231.90 m 100.55 263.82 l S
+92.11 231.90 m 106.67 177.99 l S
+92.11 231.90 m 64.07 233.69 l S
+92.11 231.90 m 88.38 250.54 l S
+92.11 231.90 m 74.39 222.99 l S
+92.11 231.90 m 115.76 228.58 l S
+92.11 231.90 m 61.07 205.00 l S
+92.11 231.90 m 69.67 235.96 l S
+92.11 231.90 m 91.90 271.70 l S
+92.11 231.90 m 108.07 288.14 l S
+92.11 231.90 m 60.96 236.56 l S
+92.11 231.90 m 105.44 250.92 l S
+92.11 231.90 m 137.65 174.83 l S
+92.11 231.90 m 67.53 154.99 l S
+92.11 231.90 m 69.12 160.77 l S
+92.11 231.90 m 81.73 283.58 l S
+92.11 231.90 m 124.34 237.00 l S
+92.11 231.90 m 136.94 241.76 l S
+92.11 231.90 m 102.52 295.60 l S
+92.11 231.90 m 102.96 189.61 l S
+92.11 231.90 m 55.13 200.70 l S
+92.11 231.90 m 76.41 260.47 l S
+92.11 231.90 m 80.93 259.70 l S
+92.11 231.90 m 75.74 167.47 l S
+92.11 231.90 m 74.56 234.67 l S
+92.11 231.90 m 102.46 221.24 l S
+92.11 231.90 m 144.24 237.27 l S
+92.11 231.90 m 52.28 216.95 l S
+92.11 231.90 m 90.84 249.41 l S
+92.11 231.90 m 82.25 230.88 l S
+92.11 231.90 m 136.54 280.56 l S
+92.11 231.90 m 98.04 273.90 l S
+92.11 231.90 m 151.95 249.61 l S
+92.11 231.90 m 90.99 268.52 l S
+92.11 231.90 m 95.24 238.85 l S
+92.11 231.90 m 135.66 263.18 l S
+92.11 231.90 m 76.70 276.49 l S
+92.11 231.90 m 106.89 206.32 l S
+92.11 231.90 m 130.09 215.66 l S
+92.11 231.90 m 93.91 216.33 l S
+92.11 231.90 m 106.24 212.26 l S
+92.11 231.90 m 41.26 211.89 l S
+92.11 231.90 m 91.29 235.07 l S
+92.11 231.90 m 68.95 230.32 l S
+92.11 231.90 m 76.52 237.39 l S
+92.11 231.90 m 71.48 204.85 l S
+92.11 231.90 m 70.24 186.52 l S
+92.11 231.90 m 88.25 219.07 l S
+92.11 231.90 m 95.44 264.19 l S
+92.11 231.90 m 103.53 228.90 l S
+92.11 231.90 m 70.88 231.13 l S
+92.11 231.90 m 108.71 236.72 l S
+92.11 231.90 m 47.88 230.62 l S
+92.11 231.90 m 124.76 250.91 l S
+/sRGB CS 0.000 1.000 0.000 SCN
+135.13 279.52 m 130.20 240.83 l S
+135.13 279.52 m 149.09 269.35 l S
+135.13 279.52 m 137.29 270.90 l S
+135.13 279.52 m 158.81 289.29 l S
+135.13 279.52 m 153.31 303.18 l S
+135.13 279.52 m 139.58 269.04 l S
+135.13 279.52 m 152.54 274.80 l S
+135.13 279.52 m 154.77 339.17 l S
+135.13 279.52 m 148.93 269.72 l S
+135.13 279.52 m 141.85 245.30 l S
+135.13 279.52 m 101.67 267.01 l S
+135.13 279.52 m 161.22 282.11 l S
+135.13 279.52 m 154.90 320.82 l S
+135.13 279.52 m 138.12 280.63 l S
+135.13 279.52 m 167.68 234.06 l S
+135.13 279.52 m 123.64 281.08 l S
+135.13 279.52 m 164.92 268.27 l S
+135.13 279.52 m 144.86 287.44 l S
+135.13 279.52 m 140.65 279.35 l S
+135.13 279.52 m 125.39 242.79 l S
+135.13 279.52 m 121.69 275.60 l S
+135.13 279.52 m 126.06 262.21 l S
+135.13 279.52 m 148.21 296.96 l S
+135.13 279.52 m 123.51 260.34 l S
+135.13 279.52 m 120.16 258.52 l S
+135.13 279.52 m 154.22 289.20 l S
+135.13 279.52 m 103.20 298.61 l S
+135.13 279.52 m 153.48 259.21 l S
+135.13 279.52 m 111.08 283.86 l S
+135.13 279.52 m 132.13 292.99 l S
+135.13 279.52 m 152.42 291.18 l S
+135.13 279.52 m 157.49 311.24 l S
+135.13 279.52 m 133.46 251.61 l S
+135.13 279.52 m 95.63 307.90 l S
+135.13 279.52 m 129.86 257.21 l S
+135.13 279.52 m 167.48 274.16 l S
+135.13 279.52 m 159.18 277.72 l S
+135.13 279.52 m 130.63 281.24 l S
+135.13 279.52 m 167.97 319.37 l S
+135.13 279.52 m 138.95 282.73 l S
+135.13 279.52 m 115.42 261.81 l S
+135.13 279.52 m 105.66 263.48 l S
+135.13 279.52 m 128.94 307.38 l S
+135.13 279.52 m 118.21 295.64 l S
+135.13 279.52 m 109.96 293.10 l S
+135.13 279.52 m 107.46 292.28 l S
+135.13 279.52 m 125.85 289.74 l S
+135.13 279.52 m 156.80 284.86 l S
+135.13 279.52 m 119.39 281.64 l S
+135.13 279.52 m 123.59 319.68 l S
+135.13 279.52 m 116.82 236.62 l S
+135.13 279.52 m 102.72 250.76 l S
+135.13 279.52 m 123.36 298.00 l S
+135.13 279.52 m 143.96 296.04 l S
+135.13 279.52 m 189.00 218.77 l S
+135.13 279.52 m 145.51 321.46 l S
+135.13 279.52 m 96.23 228.30 l S
+135.13 279.52 m 179.88 295.92 l S
+135.13 279.52 m 159.08 323.77 l S
+135.13 279.52 m 146.32 262.78 l S
+135.13 279.52 m 149.69 298.99 l S
+135.13 279.52 m 114.97 284.15 l S
+135.13 279.52 m 153.38 265.22 l S
+135.13 279.52 m 113.42 291.38 l S
+135.13 279.52 m 136.41 306.44 l S
+135.13 279.52 m 138.35 290.09 l S
+135.13 279.52 m 133.59 251.21 l S
+135.13 279.52 m 166.64 271.96 l S
+135.13 279.52 m 138.63 327.97 l S
+135.13 279.52 m 123.67 247.86 l S
+135.13 279.52 m 114.23 260.59 l S
+135.13 279.52 m 190.99 283.33 l S
+135.13 279.52 m 116.70 294.15 l S
+135.13 279.52 m 95.48 277.06 l S
+135.13 279.52 m 148.22 269.84 l S
+135.13 279.52 m 126.06 297.07 l S
+135.13 279.52 m 128.11 255.26 l S
+135.13 279.52 m 145.45 283.22 l S
+135.13 279.52 m 113.76 245.39 l S
+135.13 279.52 m 107.98 293.51 l S
+135.13 279.52 m 146.56 250.79 l S
+135.13 279.52 m 97.15 247.69 l S
+135.13 279.52 m 130.77 302.41 l S
+135.13 279.52 m 146.27 282.30 l S
+135.13 279.52 m 141.42 316.35 l S
+135.13 279.52 m 107.84 265.04 l S
+135.13 279.52 m 119.41 287.48 l S
+135.13 279.52 m 143.56 324.30 l S
+135.13 279.52 m 126.08 277.13 l S
+135.13 279.52 m 132.40 286.29 l S
+135.13 279.52 m 105.91 279.08 l S
+135.13 279.52 m 158.38 307.42 l S
+135.13 279.52 m 128.80 256.98 l S
+135.13 279.52 m 127.10 238.13 l S
+135.13 279.52 m 81.12 278.60 l S
+135.13 279.52 m 159.04 286.31 l S
+135.13 279.52 m 103.94 249.45 l S
+135.13 279.52 m 200.58 293.63 l S
+/sRGB CS 0.000 1.000 1.000 SCN
+179.08 310.32 m 159.25 304.67 l S
+179.08 310.32 m 133.23 264.05 l S
+179.08 310.32 m 179.74 298.13 l S
+179.08 310.32 m 149.65 319.52 l S
+179.08 310.32 m 199.60 315.80 l S
+179.08 310.32 m 164.57 303.84 l S
+179.08 310.32 m 198.88 326.72 l S
+179.08 310.32 m 157.51 268.47 l S
+179.08 310.32 m 187.60 316.08 l S
+179.08 310.32 m 172.96 370.92 l S
+179.08 310.32 m 196.72 287.36 l S
+179.08 310.32 m 168.40 354.65 l S
+179.08 310.32 m 201.19 268.53 l S
+179.08 310.32 m 190.00 256.53 l S
+179.08 310.32 m 258.23 292.63 l S
+179.08 310.32 m 241.62 350.60 l S
+179.08 310.32 m 162.43 295.62 l S
+179.08 310.32 m 191.33 284.58 l S
+179.08 310.32 m 175.48 332.80 l S
+179.08 310.32 m 234.71 300.19 l S
+179.08 310.32 m 217.11 302.42 l S
+179.08 310.32 m 133.79 299.54 l S
+179.08 310.32 m 167.87 342.10 l S
+179.08 310.32 m 203.63 276.29 l S
+179.08 310.32 m 182.51 298.98 l S
+179.08 310.32 m 170.50 317.39 l S
+179.08 310.32 m 185.54 320.59 l S
+179.08 310.32 m 161.82 308.00 l S
+179.08 310.32 m 178.87 308.44 l S
+179.08 310.32 m 136.44 276.94 l S
+179.08 310.32 m 153.47 321.74 l S
+179.08 310.32 m 161.75 316.06 l S
+179.08 310.32 m 231.53 305.59 l S
+179.08 310.32 m 216.90 308.46 l S
+179.08 310.32 m 173.70 324.87 l S
+179.08 310.32 m 182.21 312.60 l S
+179.08 310.32 m 181.50 308.12 l S
+179.08 310.32 m 165.80 346.52 l S
+179.08 310.32 m 179.50 304.99 l S
+179.08 310.32 m 216.07 321.66 l S
+179.08 310.32 m 156.61 277.68 l S
+179.08 310.32 m 190.85 313.13 l S
+179.08 310.32 m 139.73 311.89 l S
+179.08 310.32 m 153.78 356.00 l S
+179.08 310.32 m 207.63 306.61 l S
+179.08 310.32 m 203.24 291.55 l S
+179.08 310.32 m 160.86 336.42 l S
+179.08 310.32 m 196.72 334.83 l S
+179.08 310.32 m 144.13 283.17 l S
+179.08 310.32 m 192.22 336.95 l S
+179.08 310.32 m 225.99 257.57 l S
+179.08 310.32 m 171.72 300.35 l S
+179.08 310.32 m 186.27 266.64 l S
+179.08 310.32 m 157.66 326.96 l S
+179.08 310.32 m 212.16 326.16 l S
+179.08 310.32 m 157.52 298.93 l S
+179.08 310.32 m 181.48 254.26 l S
+179.08 310.32 m 144.69 306.56 l S
+179.08 310.32 m 151.32 287.55 l S
+179.08 310.32 m 192.26 323.90 l S
+179.08 310.32 m 160.60 274.99 l S
+179.08 310.32 m 170.61 300.41 l S
+179.08 310.32 m 223.76 320.17 l S
+179.08 310.32 m 147.36 313.32 l S
+179.08 310.32 m 174.53 306.53 l S
+179.08 310.32 m 193.65 332.90 l S
+179.08 310.32 m 180.30 294.22 l S
+179.08 310.32 m 168.37 313.52 l S
+179.08 310.32 m 141.16 357.74 l S
+179.08 310.32 m 180.82 324.02 l S
+179.08 310.32 m 176.78 266.63 l S
+179.08 310.32 m 158.42 313.10 l S
+179.08 310.32 m 193.74 294.34 l S
+179.08 310.32 m 176.23 315.21 l S
+179.08 310.32 m 165.98 330.18 l S
+179.08 310.32 m 210.55 296.26 l S
+179.08 310.32 m 164.59 338.11 l S
+179.08 310.32 m 159.02 336.63 l S
+179.08 310.32 m 176.32 315.94 l S
+179.08 310.32 m 181.46 361.60 l S
+179.08 310.32 m 166.08 307.67 l S
+179.08 310.32 m 198.06 335.76 l S
+179.08 310.32 m 173.12 330.08 l S
+179.08 310.32 m 162.92 300.37 l S
+179.08 310.32 m 237.61 311.83 l S
+179.08 310.32 m 157.47 371.32 l S
+179.08 310.32 m 163.69 296.67 l S
+179.08 310.32 m 172.73 322.62 l S
+179.08 310.32 m 204.59 310.92 l S
+179.08 310.32 m 158.02 299.04 l S
+179.08 310.32 m 174.14 337.63 l S
+179.08 310.32 m 144.32 303.42 l S
+179.08 310.32 m 196.09 341.60 l S
+179.08 310.32 m 159.39 353.72 l S
+179.08 310.32 m 210.76 281.12 l S
+179.08 310.32 m 209.07 283.21 l S
+179.08 310.32 m 127.98 277.89 l S
+/sRGB CS 0.000 0.000 1.000 SCN
+318.05 259.30 m 299.69 278.54 l S
+318.05 259.30 m 304.43 277.31 l S
+318.05 259.30 m 284.15 245.07 l S
+318.05 259.30 m 347.37 286.66 l S
+318.05 259.30 m 331.55 272.03 l S
+318.05 259.30 m 333.11 253.60 l S
+318.05 259.30 m 338.42 229.34 l S
+318.05 259.30 m 302.25 257.13 l S
+318.05 259.30 m 325.57 248.88 l S
+318.05 259.30 m 300.70 264.12 l S
+318.05 259.30 m 292.40 279.00 l S
+318.05 259.30 m 348.36 253.39 l S
+318.05 259.30 m 263.34 286.08 l S
+318.05 259.30 m 319.38 278.73 l S
+318.05 259.30 m 347.08 261.84 l S
+318.05 259.30 m 353.99 228.30 l S
+318.05 259.30 m 281.04 278.87 l S
+318.05 259.30 m 365.19 245.85 l S
+318.05 259.30 m 309.14 238.60 l S
+318.05 259.30 m 321.25 251.60 l S
+318.05 259.30 m 360.17 260.96 l S
+318.05 259.30 m 303.55 285.05 l S
+318.05 259.30 m 340.51 245.84 l S
+318.05 259.30 m 358.64 265.89 l S
+318.05 259.30 m 268.97 252.88 l S
+318.05 259.30 m 338.97 292.50 l S
+318.05 259.30 m 240.23 253.75 l S
+318.05 259.30 m 333.97 270.66 l S
+318.05 259.30 m 309.15 297.14 l S
+318.05 259.30 m 350.45 261.64 l S
+318.05 259.30 m 352.43 272.77 l S
+318.05 259.30 m 381.07 252.06 l S
+318.05 259.30 m 314.90 227.94 l S
+318.05 259.30 m 339.74 284.27 l S
+318.05 259.30 m 365.38 238.47 l S
+318.05 259.30 m 336.03 258.98 l S
+318.05 259.30 m 309.83 256.96 l S
+318.05 259.30 m 343.97 274.98 l S
+318.05 259.30 m 311.02 240.67 l S
+318.05 259.30 m 348.76 241.06 l S
+318.05 259.30 m 291.22 254.99 l S
+318.05 259.30 m 385.09 257.04 l S
+318.05 259.30 m 336.95 235.45 l S
+318.05 259.30 m 288.43 289.02 l S
+318.05 259.30 m 308.53 265.87 l S
+318.05 259.30 m 288.37 222.36 l S
+318.05 259.30 m 385.44 252.68 l S
+318.05 259.30 m 394.80 256.34 l S
+318.05 259.30 m 308.24 239.63 l S
+318.05 259.30 m 336.02 286.25 l S
+318.05 259.30 m 228.63 323.05 l S
+318.05 259.30 m 328.78 252.91 l S
+318.05 259.30 m 265.82 230.50 l S
+318.05 259.30 m 281.43 255.05 l S
+318.05 259.30 m 331.61 281.36 l S
+318.05 259.30 m 308.54 259.83 l S
+318.05 259.30 m 275.06 266.48 l S
+318.05 259.30 m 246.97 286.65 l S
+318.05 259.30 m 316.65 267.85 l S
+318.05 259.30 m 304.54 269.56 l S
+318.05 259.30 m 273.59 262.68 l S
+318.05 259.30 m 304.78 249.01 l S
+318.05 259.30 m 320.15 262.84 l S
+318.05 259.30 m 328.52 281.19 l S
+318.05 259.30 m 340.62 251.53 l S
+318.05 259.30 m 352.29 274.89 l S
+318.05 259.30 m 283.17 262.93 l S
+318.05 259.30 m 327.86 301.14 l S
+318.05 259.30 m 305.68 294.60 l S
+318.05 259.30 m 365.01 197.18 l S
+318.05 259.30 m 323.11 261.67 l S
+318.05 259.30 m 296.18 240.72 l S
+318.05 259.30 m 307.85 290.24 l S
+318.05 259.30 m 335.01 244.53 l S
+318.05 259.30 m 275.64 276.47 l S
+318.05 259.30 m 279.08 284.14 l S
+318.05 259.30 m 291.10 289.54 l S
+318.05 259.30 m 294.38 218.35 l S
+318.05 259.30 m 268.46 251.90 l S
+318.05 259.30 m 312.58 300.83 l S
+318.05 259.30 m 338.36 287.51 l S
+318.05 259.30 m 245.58 269.88 l S
+318.05 259.30 m 369.07 266.26 l S
+318.05 259.30 m 311.22 248.05 l S
+318.05 259.30 m 353.88 266.15 l S
+318.05 259.30 m 327.32 191.12 l S
+318.05 259.30 m 273.18 177.26 l S
+318.05 259.30 m 352.38 255.03 l S
+318.05 259.30 m 326.64 250.35 l S
+318.05 259.30 m 274.33 240.57 l S
+318.05 259.30 m 357.43 253.89 l S
+318.05 259.30 m 358.59 283.72 l S
+318.05 259.30 m 371.79 225.74 l S
+318.05 259.30 m 274.50 236.98 l S
+318.05 259.30 m 340.75 201.26 l S
+318.05 259.30 m 306.01 203.22 l S
+318.05 259.30 m 356.17 252.12 l S
+318.05 259.30 m 330.61 279.29 l S
+318.05 259.30 m 297.28 281.94 l S
+318.05 259.30 m 302.29 253.35 l S
+318.05 259.30 m 286.78 264.24 l S
+318.05 259.30 m 314.97 262.33 l S
+/sRGB CS 1.000 0.000 1.000 SCN
+170.63 129.10 m 170.94 131.54 l S
+170.63 129.10 m 169.61 113.65 l S
+170.63 129.10 m 177.10 180.80 l S
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/adegenet -r 883


More information about the adegenet-commits mailing list