<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article
  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="3.0" xml:lang="en">
	<front>
		<journal-meta>
    <journal-id journal-id-type="nlm-ta">PLoS ONE</journal-id>
    <journal-id journal-id-type="publisher-id">plos</journal-id>
    <journal-id journal-id-type="pmc">plosone</journal-id>
    <journal-title-group><journal-title>PLoS ONE</journal-title></journal-title-group>
    <issn pub-type="epub">1932-6203</issn>
    <publisher><publisher-name>Public Library of Science</publisher-name>
    <publisher-loc>San Francisco, USA</publisher-loc></publisher>
    </journal-meta><article-meta>
			<article-id pub-id-type="publisher-id">PONE-D-13-17091</article-id><article-id pub-id-type="doi">10.1371/journal.pone.0070651</article-id><article-categories><subj-group subj-group-type="heading">
    <subject>Research Article</subject></subj-group></article-categories><title-group>
				<article-title>ParallelStructure: A R Package to Distribute Parallel Runs of the Population Genetics Program STRUCTURE on Multi-Core Computers</article-title>
			<alt-title alt-title-type="running-head">A Package to Distribute Parallel STRUCTURE Jobs</alt-title>
      </title-group>
			<contrib-group>
				<contrib xlink:type="simple" contrib-type="author">
					<name name-style="western">
						<surname>Besnier</surname>
						<given-names>Francois</given-names>
					</name>
					<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
					<xref ref-type="corresp" rid="cor1"><sup>*</sup></xref>
				</contrib>
				<contrib xlink:type="simple" contrib-type="author">
					<name name-style="western">
						<surname>Glover</surname>
						<given-names>Kevin A.</given-names>
					</name>
					<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
					
					<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
				</contrib>
			</contrib-group>
			<aff id="aff1"><label>1</label> <addr-line>Department of Population Genetics, Institute of Marine Research, Bergen, Norway</addr-line></aff>
			<aff id="aff2"><label>2</label> <addr-line>Department of Informatics, Faculty of Mathematics and Natural Sciences, University of Bergen, Bergen, Norway</addr-line></aff>
			<contrib-group><contrib contrib-type="editor" xlink:type="simple">
          <name name-style="western">
            <surname>Anisimova</surname>
            <given-names>Maria</given-names>
          </name>
          <role>Editor</role>
          <xref ref-type="aff" rid="edit1"/>
        </contrib>
        </contrib-group><aff id="edit1"><addr-line>Swiss Federal Institute of Technology (ETH Zurich), Switzerland</addr-line></aff><author-notes>
				<corresp id="cor1">* E-mail: <email xlink:type="simple">francois.besnier@imr.no</email></corresp><fn fn-type="conflict"><p>The authors have declared that no competing interests exist.</p></fn><fn fn-type="con"><p>Conceived and designed the experiments: KAG FB. Analyzed the data: FB. Wrote the manuscript: KAG FB. </p></fn></author-notes>
			<pub-date pub-type="collection"><year>2013</year></pub-date><pub-date pub-type="epub">
        <day>29</day>
        <month>7</month>
        <year>2013</year>
      </pub-date>
      <volume>8</volume><issue>7</issue><elocation-id>e70651</elocation-id><history><date date-type="received">
          <day>28</day>
          <month>4</month>
          <year>2013</year>
        </date>
        <date date-type="accepted">
          <day>20</day>
          <month>6</month>
          <year>2013</year>
        </date>
      </history><permissions>
    <copyright-year>2013</copyright-year><copyright-holder>Besnier et al</copyright-holder><license xlink:type="simple"><license-p>This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p></license>
    </permissions><abstract>
				<p>This software package provides an R-based framework to make use of multi-core computers when running analyses in the population genetics program STRUCTURE. It is especially addressed to those users of STRUCTURE dealing with numerous and repeated data analyses, and who could take advantage of an efficient script to automatically distribute STRUCTURE jobs among multiple processors. It also consists of additional functions to divide analyses among combinations of populations within a single data set without the need to manually produce multiple projects, as it is currently the case in STRUCTURE. The package consists of two main functions: <italic>MPI_structure</italic>() and <italic>parallel_structure</italic>() as well as an example data file. We compared the performance in computing time for this example data on two computer architectures and showed that the use of the present functions can result in several-fold improvements in terms of computation time. <italic>ParallelStructure</italic> is freely available at <ext-link ext-link-type="uri" xlink:href="https://r-forge.r-project.org/projects/parallstructure/" xlink:type="simple"><underline>https://r-forge.r-project.org/projects/parallstructure/</underline></ext-link>.</p>
			</abstract>
		<funding-group><funding-statement>This work was funded by the Norwegian research council. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.</funding-statement></funding-group></article-meta>
	</front>
	<body>
		<sec id="s1" sec-type="introduction">
			<title>Introduction</title>
			<p>The software package STRUCTURE was introduced in 2000 by Pritchard et al. [<xref ref-type="bibr" rid="B1">1</xref>], and has become one of the most widely used population genetic programs of the last decade. STRUCTURE has brought outstanding contributions to the fields of population genetics and molecular ecology by providing a user friendly tool for analyzing multi-locus genotype data to address evolutionary questions such as population structure, hybridization, or population admixture e.g., [<xref ref-type="bibr" rid="B2">2</xref>]-[<xref ref-type="bibr" rid="B6">6</xref>].</p>
			<p>STRUCTURE analysis relies on multiple MCMC re-sampling and it is therefore time consuming when it involves data sets with large numbers of individuals, populations, and loci. Adding to the time of analysis is the fact that the program is often run with many iterations for each number of genetic clusters to provide robust data for implementation of post-hoc methods to determine the number of populations in the data set [<xref ref-type="bibr" rid="B7">7</xref>]. In general, one efficient way to speed up computing processes is to distribute tasks on several computing units (core/CPU). This solution is becoming commonplace since shared memory multi-core processors are widely available on the market. Even common laptops are usually equipped with, at least, dual or quad-core processors, and up to 8 cores are becoming the standard.</p>
			<p>Even though STRUCTURE does not support native multi processor tasking, it is possible to manually run STRUCTURE analyses in parallel on multiple CPUs by simply opening several graphic interface windows at the same time. Indeed, the analysis of genetic data with STRUCTURE usually involves multiple independent runs, it is thus straightforward to simply distribute the <italic>N</italic> runs to be performed on <italic>n</italic> available parallel computing cores. However, manual parallel computing in STRUCTURE is a suboptimal solution, as it requires frequent monitoring from the user who needs to distribute the tasks manually among the available processors. Furthermore, when the user wants to analyze different combinations of populations within a data set, separate analyses have to be manually established on separate data files for each combination of populations. A much more effective way to distribute jobs among parallel processors is to use scripts to run STRUCTURE on the command line version.</p>
			<p>Using script programming can make more efficient use of multi-core processors by automatically distributing analyses to all the available cores/CPUs and renewing the task of each core/CPU as soon as a given job is completed. This solution is more efficient but requires specific script and parallel programming skills.</p>
			<p>The present package <italic>ParallelStructure</italic> provides a R [<xref ref-type="bibr" rid="B8">8</xref>] framework to run genetic analysis in STRUCTURE and make an efficient use of multi-core processors. R is an extremely popular support for population genetics tools e.g., [<xref ref-type="bibr" rid="B9">9</xref>]-[<xref ref-type="bibr" rid="B11">11</xref>], and an increasing number of programs have started to incorporate R functions to produce graphic outputs, such as the latest versions of BAYESCAN [<xref ref-type="bibr" rid="B12">12</xref>] or ARLEQUIN [<xref ref-type="bibr" rid="B13">13</xref>]. It is thus likely that many STRUCTURE users are already familiar with the R environment. Here, we introduce the package <italic>ParallelStructure</italic> that is intended for users aiming to run intensive analyses of their data sets (e.g. by making large number of replicates and/or testing many values of K), and willing to use STRUCTURE from a R function instead of the graphic interface in order to efficiently distribute a set of pre-defined jobs on a multi-core / multiprocessor computer. Furthermore, when dealing with large data sets, <italic>ParallelStructure</italic> can make use of one single data file from which the intended populations can be selected, thus avoiding the need of creating multiple smaller data files for each analysis in particular.</p>
			<p><italic>ParallelStructure</italic> consists of a R script that imports STRUCTURE command line options into a R function, and runs several STRUCTURE analyses in parallel by using either Rmpi package [<xref ref-type="bibr" rid="B14">14</xref>] or parallel package [<xref ref-type="bibr" rid="B8">8</xref>].</p>
		</sec>
		<sec id="s2" sec-type="materials|methods">
			<title>Materials and Methods</title>
			<sec id="s2.1">
				<title>Package description</title>
				<p><italic>ParallelStructure</italic> package consists of two main functions, <italic>MPI_structure</italic>() and <italic>parallel_structure</italic>() as well as an example data file, corresponding <italic>joblist</italic> file and a user manual (file S1). The two functions <italic>MPI_structure</italic>() and <italic>parallel_structure</italic>() are equivalent as they perform the same task and work with the same input file and parameter set. The difference between them is the method that the function relies on for distributing jobs among CPUs: <italic>MPI_structure</italic>() relies on the R package <italic>Rmpi</italic> whereas <italic>parallel_structure</italic>() relies on <italic>mclapply</italic> function from <italic>parallel</italic> package. Rmpi is distributed in the CRAN repository for MacOS, but requires manual installation under Windows. <italic>Parallel</italic> package is distributed with R since version 2.14.0 but is still under development. <italic>parallel_structure</italic>() might not be fully functional under Windows architecture, and should not be used in GUI or embedded environments as it may cause crashes. We thus strongly recommend to use <italic>MPI_structure</italic>() by default.</p>
				<p>A list of tasks to be performed is stored in a <italic>joblist</italic> file in which each line corresponds to an individual job. While STRUCTURE input format requires a different data file for each set of populations, <italic>ParallelStructure</italic> offers the possibility to work from a large input file containing all the populations one might need to analyze. This avoids making a different input file for each set of populations to be analyzed. Instead, the user defines, in each job, the set of populations to be included as well as parameter <italic>K</italic>, burnin and number of iterations. If all the populations in the data set are to be analyzed pairwise (<italic>all vs. all</italic>), the list of populations for the given job can be replaced by ”pairwise. matrix”, e.g. job T11 in example <italic>joblist</italic>.</p>
			</sec>
			<sec id="s2.2">
				<title>Example data set</title>
				<p>The example file provided with the package contains microsatelite data on nine loci for 987 individuals divided in 8 populations. The <italic>joblist</italic> given with the example consists of 20 jobs for which a variable set of populations from the eight present in the dataset are included. With the exception of job T11, the list of populations to be included is given as a comma-separated list of the population’s id as they appear in the input data file. For job T11, the list of populations was replaced by the character string “pairwise. matrix”. In this case, all populations are analyzed against each other producing a total of <italic>n</italic>(<italic>n</italic>-1)/2 jobs, where <italic>n</italic> is the total number of populations in the dataset. Output files can be stored in a dedicated directory specified by the user. After executing a list of jobs, ParallelStructure writes a. csv formatted summary file in the working directory. This file contains for each job, the job ID, main parameters, and the following summary statistics: log-likelihood of the data, mean and variance of the likelihood as well as mean value of alpha. The function argument “printqhat=1” and “plot_output=1” also give the possibility to generate graphic output as. pdf files. In such a case, one graphic file is generated for each job.</p>
			</sec>
			<sec id="s2.3">
				<title>Time of execution</title>
				<p>The execution time was compared for the example data set, i.e., microsatelite genotypes for nine loci for 987 individuals divided in 8 populations. The set of jobs consisted of 19 STRUCTURE runs with various number of population sub-sets, with 1000 burnin and 10000 iterations. One full pair-wise matrix job (Job T11) that runs STRUCTURE for each pair of populations in the dataset was also included in the list of jobs. Execution time was computed on: (a) a Windows 7 laptop PC equipped with a Core i7 2.2GHz quad core processor with 8Gb of RAM, (b) an Apple workstation equipped with an Intel Xeon 2.26GHz double quad core processor with 16GB of RAM. Both computer architecture were running on their respective operating system: Windows 7 and MAC OS X respectively, as well as on one common operating system for both architecture: Linux Ubuntu 12.04. To assess the gain of computation time obtained by parallelization, we computed the speed up as S<sub>p</sub>=T<sub>1</sub>/T<sub>p</sub>, where S<sub>p</sub> is the speed-up obtained by distributing a task on p processors, <italic>T</italic><sub><italic>1</italic></sub> is the execution time on one processor (sequential algorithm), and <italic>T</italic><sub><italic>p</italic></sub> the execution time of the task on <italic>p</italic> processors.</p>
			</sec>
		</sec>
		<sec id="s3" sec-type="results">
			<title>Results and Discussion</title>
			<p>For the performance comparison, as much as twice the number of physical processor cores in each respective architecture were used (i.e., 8 cores for the Intel i7 architecture, and 16 cores for the Intel Xeon architecture). This was to make use of hyperthreading technology (duplicating physical processor cores into two virtual cores) that is available on both architectures.</p>
			<p>Execution time of the sequential tasks (on only one processor) on the Intel i7 architecture required respectively 640 sec and 462 sec running on Windows 7 and Linux Ubuntu. On the Intel Xeon architecture, execution time was 630 sec and 613 sec running on Mac OS X or Linux Ubuntu respectively. When comparing the two architectures on the same operating system, the newer i7 processor was approximately 25% faster than the older Intel Xeon.</p>
			<p>When using all available cores/CPUs of multiple-core processors, the execution time was up to 7 times quicker than the sequential task on the 8-cores Intel Xeon architecture, and 4 times quicker on the 4-cores Intel i7 architecture (<xref ref-type="fig" rid="pone-0070651-g001">Figure 1)</xref>. With equal number of CPUs, the gain in computation time (speed-up) was lower on the 4 cores i7 processor (<xref ref-type="fig" rid="pone-0070651-g001">Figure 1)</xref>.</p>
			<fig id="pone-0070651-g001" position="float">
				<object-id pub-id-type="doi">10.1371/journal.pone.0070651.g001</object-id><label>Figure 1</label>
				<caption>
					<title>Gains in job execution time (speed-up) for the example data when running on variable number of processors on two computer architectures.</title>
					<p>(a) a Windows 7 laptop PC equipped with a Core i7 2.2GHz quad core processor with 8Gb of RAM and (b) an Apple workstation equipped with an Intel Xeon 2.26GHz double quad core processor with 16GB of RAM. Maximum speed-up is represented by the dashed line (y = x).</p>
				</caption>
				<graphic xlink:type="simple" position="float" xlink:href="info:doi/10.1371/journal.pone.0070651.g001"/>
			</fig>
			<p>In an ideal case, the speed-up brought by parallelization is linear with the number cores/CPUs allocated for the parallel task. Here, while the sequential inclusion of more cores/CPUs speeded up analysis time, speed-up did not increase linearly with the number of cores/CPUs allocated (<xref ref-type="fig" rid="pone-0070651-g001">Figure 1)</xref>. The curve of speed-up vs. number of cores/CPUs reveals an inflexion point when all the available physical CPUs are used, i.e., 8 or 4 cores/CPUs on the Intel Xeon architecture or i7 architecture respectively. Even though in theory, the performance would increase linearly with the number of allocated cores/CPUs, this is not the case here. A possible reason for this is that the execution of a given individual job was slower when running along with other jobs than when running alone on the machine. This was noticeable on our example computer architecture, especially when using the hyperthreading. In the most extreme case, an individual STRUCTURE job took about 35% longer to execute when running along with 14 other jobs in parallel cores/CPUs, than when running alone. This was observed not only within the framework of <italic>ParallelStructure</italic>, but also when running manually several STRUCTURE jobs in command line. We thus conclude that this phenomenon is not caused by the implementation of <italic>MPI_structure</italic>() but it is rather inherent to the way the processor deals with distribution of execution resources, especially when hyperthreading.</p>
			<p>The reduction in performance gain for each processor that is sequentially included in the analyses is not caused by excessive use of the available memory (RAM), as when the maximum numbers of cores/CPUs were allocated to the STRUCTURE jobs, the available RAM was never fully used on either computer. This is consistent with the fact that STRUCTURE is not known to be a memory-demanding program and thus extra performance gains would not be achieved through the addition of extra memory beyond the test specifications detailed here.</p>
			<p>In addition to parallelization of structure runs, ParallelStructure offers the possibility to analyze large datasets, and divide analyses among combinations of populations without the need to manually produce multiple projects, as it is currently the case in STRUCTURE. However, because it relies on the command line version of STRUCTURE, ParallelStructure does not offer the possibility to set up repeated iterations for various values of parameter K, as it would be possible to do with the front-end version of STRUCTURE. In ParallelStructure, each iteration for each value of K has to be specified as a separated job on the ‘joblist’ input file. This issue was addressed by another freely available program: StrAuto (<ext-link ext-link-type="uri" xlink:href="http://www.crypticlineage.net/pages/software.html" xlink:type="simple"><underline>www.crypticlineage.net/pages/software.html</underline></ext-link>) that streamlines command line analyses in STRUCTURE. This program makes it possible to set up multiple iterations for various values of parameter K from STRUCTURE command line version, however StrAuto is not parallelized yet, and does not seem to work on Windows operating system.</p>
			<p>In conclusion, <italic>ParallelStructure</italic> provides population geneticists and molecular ecologists with an effective tool that is able to command STRCUTURE to run jobs in parallel in order to speed up computation time several-fold. It also provides a set of commands that enables large data sets to be analyzed in multiple ways without having to divide up populations into smaller data files. Based on the analysis of the example data, we conclude that the use of <italic>MPI_structure</italic>() or <italic>parallel_structure</italic>() can speed up computation time of genetic analysis in STRUCTURE, however, hyperthreading brings little improvement, and significant performance gain should not be expected when calling more processors than physically available on the machine.</p>
			<sec id="s3.1">
				<title>Software Availability</title>
				<p>Software is hosted on R-forge (<ext-link ext-link-type="uri" xlink:href="https://r-forge.r-project.org" xlink:type="simple"><underline>https://r-forge.r-project.org</underline></ext-link>), and can be downloaded from: <ext-link ext-link-type="uri" xlink:href="https://r-forge.r-project.org/r/?group_id=1636" xlink:type="simple"><underline>https://r-forge.r-project.org/R/?group_id=1636</underline></ext-link> or installed in R directly by typing: install.packages("ParallelStructure", repos="http://R-Forge.R-project.org")</p>
					
						<p>Information document with installation instruction and example run can be downloaded from: <ext-link ext-link-type="uri" xlink:href="http://parallstructure.r-forge.r-project.org/parallelstructure.pdf" xlink:type="simple"><underline>http://parallstructure.r-forge.r-project.org/ParallelStructure.pdf</underline></ext-link></p>
			</sec>
		</sec>
		<sec sec-type="supplementary-material">
			<title>Supporting Information</title>
			<supplementary-material xlink:type="simple" position="float" id="pone.0070651.s001" xlink:href="info:doi/10.1371/journal.pone.0070651.s001" mimetype="application/pdf">
				<label>File S1</label>
				<caption>
					<p><bold>User manual and installation instruction for R package ParallelStructure.</bold></p>
				<p>(PDF)</p></caption>
				</supplementary-material>
		</sec>
	</body>
	<back>
		<ack>
			<p>Monica F. Solberg and Geir Dahle are acknowledged for testing the program and providing insightful comments on the user manual. Dr Hubisz, Dr Chhatre and a third anonymous reviewer are acknowledged for their valuable suggestions.</p>
		</ack>
		<ref-list>
			<title>References</title>
			<ref id="B1">
				<label>1</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Pritchard</surname><given-names>JK</given-names></name>, <name name-style="western"><surname>Stephens</surname><given-names>M</given-names></name>, <name name-style="western"><surname>Donnelly</surname><given-names>P</given-names></name> (<year>2000</year>) <article-title>Inference of population structure using multilocus genotype data</article-title>. <source>Genetics</source> <volume>155</volume>: <fpage>945</fpage>-<lpage>959</lpage>. PubMed: <ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/10835412" xlink:type="simple">10835412</ext-link>.</mixed-citation>
			</ref>
			<ref id="B2">
				<label>2</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Rosenberg</surname><given-names>NA</given-names></name>, <name name-style="western"><surname>Burke</surname><given-names>T</given-names></name>, <name name-style="western"><surname>Elo</surname><given-names>K</given-names></name>, <name name-style="western"><surname>Feldman</surname><given-names>MW</given-names></name>, <name name-style="western"><surname>Freidlin</surname><given-names>PJ</given-names></name> <etal>et al.</etal> (<year>2001</year>) <article-title>Empirical evaluation of genetic clustering methods using multilocus genotypes from 20 chicken breeds</article-title>. <source>Genetics</source> <volume>159</volume>: <fpage>699</fpage>-<lpage>713</lpage>. PubMed: <ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/11606545" xlink:type="simple">11606545</ext-link>.</mixed-citation>
			</ref>
			<ref id="B3">
				<label>3</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Rosenberg</surname><given-names>NA</given-names></name>, <name name-style="western"><surname>Pritchard</surname><given-names>JK</given-names></name>, <name name-style="western"><surname>Weber</surname><given-names>JL</given-names></name>, <name name-style="western"><surname>Cann</surname><given-names>HM</given-names></name>, <name name-style="western"><surname>Kidd</surname><given-names>KK</given-names></name> <etal>et al.</etal> (<year>2002</year>) <article-title>Genetic structure of human populations</article-title>. <source>Science</source> <volume>298</volume>: <fpage>2381</fpage>-<lpage>2385</lpage>. doi:<ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.1126/science.1078311" xlink:type="simple">10.1126/science.1078311</ext-link>. PubMed: <ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/12493913" xlink:type="simple">12493913</ext-link>.</mixed-citation>
			</ref>
			<ref id="B4">
				<label>4</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Falush</surname><given-names>D</given-names></name>, <name name-style="western"><surname>Wirth</surname><given-names>T</given-names></name>, <name name-style="western"><surname>Linz</surname><given-names>B</given-names></name>, <name name-style="western"><surname>Pritchard</surname><given-names>JK</given-names></name>, <name name-style="western"><surname>Stephens</surname><given-names>M</given-names></name> <etal>et al.</etal> (<year>2003</year>) <article-title>Traces of human migrations in <italic>Helicobacter pylori</italic> populations</article-title>. <source>Science</source> <volume>299</volume>: <fpage>1582</fpage>-<lpage>1585</lpage>. PubMed: <ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/12624269" xlink:type="simple">12624269</ext-link>.</mixed-citation>
			</ref>
			<ref id="B5">
				<label>5</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Harter</surname><given-names>AV</given-names></name>, <name name-style="western"><surname>Gardner</surname><given-names>KA</given-names></name>, <name name-style="western"><surname>Lentz</surname></name> Falush D, Bye RA et al. (<year>2004</year>) <article-title>Origin of extant domesticated sunflowers in eastern North America</article-title>. <source>Nature</source> <volume>430</volume>: <fpage>201</fpage>-<lpage>205</lpage>. doi:<ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.1038/nature02710" xlink:type="simple">10.1038/nature02710</ext-link>. PubMed: <ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/15241413" xlink:type="simple">15241413</ext-link>.</mixed-citation>
			</ref>
			<ref id="B6">
				<label>6</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Backström</surname><given-names>N</given-names></name>, <name name-style="western"><surname>Saetre</surname><given-names>G-P</given-names></name>, <name name-style="western"><surname>Ellegren</surname><given-names>H</given-names></name> (<year>2013</year>) <article-title>Inferring the demographic history of European <italic>Ficedula</italic> flycatcher populations</article-title>. <source>BMC Evol Biol</source> <volume>13</volume>: <fpage>2</fpage>. doi:<ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.1186/1471-2148-13-2" xlink:type="simple">10.1186/1471-2148-13-2</ext-link>. PubMed: <ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/23282063" xlink:type="simple">23282063</ext-link>.</mixed-citation>
			</ref>
			<ref id="B7">
				<label>7</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Evanno</surname><given-names>G</given-names></name>, <name name-style="western"><surname>Regnaut</surname><given-names>S</given-names></name>, <name name-style="western"><surname>Goudet</surname><given-names>J</given-names></name> (<year>2005</year>) <article-title>Detecting the number of clusters of individuals using the software STRUCTURE: a simulation study</article-title>. <source>Mol Ecol</source> <volume>14</volume>: <fpage>2611</fpage>-<lpage>2620</lpage>. doi:<ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.1111/j.1365-294X.2005.02553.x" xlink:type="simple">10.1111/j.1365-294X.2005.02553.x</ext-link>. PubMed: <ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/15969739" xlink:type="simple">15969739</ext-link>.</mixed-citation>
			</ref>
			<ref id="B8">
				<label>8</label>
				<mixed-citation publication-type="book" xlink:type="simple"><collab xlink:type="simple">Team RDC</collab> (<year>2013</year>) <source>R: A language and environment for statistical computing</source>. <publisher-loc>Vienna</publisher-loc>: <publisher-name>R Foundation for Statistical Computing</publisher-name>.</mixed-citation>
			</ref>
			<ref id="B9">
				<label>9</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Goudet</surname><given-names>J</given-names></name> (<year>2005</year>) <article-title>hierfstat, a package for R to compute and test hierarchical F-statistics</article-title>. <source>Mol Ecol Notes</source> <volume>5</volume>: <fpage>184</fpage>-<lpage>186</lpage>. doi:<ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.1111/j.1471-8286.2004.00828.x" xlink:type="simple">10.1111/j.1471-8286.2004.00828.x</ext-link>.</mixed-citation>
			</ref>
			<ref id="B10">
				<label>10</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Guillot</surname><given-names>G</given-names></name>, <name name-style="western"><surname>Mortier</surname><given-names>F</given-names></name>, <name name-style="western"><surname>Estoup</surname><given-names>A</given-names></name> (<year>2005</year>) <article-title>Geneland: A computer package for landscape genetics</article-title>. <source>Mol Ecol Notes</source> <volume>5</volume>: <fpage>712</fpage>-<lpage>715</lpage>. doi:<ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.1111/j.1471-8286.2005.01031.x" xlink:type="simple">10.1111/j.1471-8286.2005.01031.x</ext-link>.</mixed-citation>
			</ref>
			<ref id="B11">
				<label>11</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Jombart</surname><given-names>T</given-names></name> (<year>2008</year>) <article-title>adegenet: a R package for the multivariate analysis of genetic markers</article-title>. <source>Bioinformatics</source> <volume>24</volume>: <fpage>1403</fpage>-<lpage>1405</lpage>. doi:<ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.1093/bioinformatics/btn129" xlink:type="simple">10.1093/bioinformatics/btn129</ext-link>. PubMed: <ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/18397895" xlink:type="simple">18397895</ext-link>.</mixed-citation>
			</ref>
			<ref id="B12">
				<label>12</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Foll</surname><given-names>M</given-names></name>, <name name-style="western"><surname>Gaggiotti</surname><given-names>O</given-names></name> (<year>2008</year>) <article-title>A genome-scan method to identify selected loci appropriate for both dominant and codominant markers: A Bayesian perspective</article-title>. <source>Genetics</source> <volume>180</volume>: <fpage>977</fpage>-<lpage>993</lpage>. doi:<ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.1534/genetics.108.092221" xlink:type="simple">10.1534/genetics.108.092221</ext-link>. PubMed: <ext-link ext-link-type="uri" xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/18780740" xlink:type="simple">18780740</ext-link>.</mixed-citation>
			</ref>
			<ref id="B13">
				<label>13</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Excoffier</surname><given-names>L</given-names></name>, <name name-style="western"><surname>Laval</surname><given-names>G</given-names></name>, <name name-style="western"><surname>Schneider</surname><given-names>S</given-names></name> (<year>2005</year>) <article-title>Arlequin ver. 3.0: An integrated software package for population genetics data analysis</article-title>. <source>Evol Bioinform Online</source> <volume>1</volume>: <fpage>47</fpage>-<lpage>50</lpage>.</mixed-citation>
			</ref>
			<ref id="B14">
				<label>14</label>
				<mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Yu</surname><given-names>H</given-names></name> (<year>2002</year>) <article-title>Rmpi: Parallel Statistical Computing in R</article-title>. <source>R NEWS</source> <volume>2</volume>: <fpage>10</fpage>-<lpage>14</lpage>.</mixed-citation>
			</ref>
		</ref-list>
	</back>
</article>