Abstract: Pacific island taxa have long informed our understanding of speciation and biogeography. However, until genomic data became commonplace, many explosive radiations have remained unresolved. One underappreciated radiation is of the genus Aplonis, a clade of starlings distributed across the Pacific from continental Sundaland to the far-flung Cook Islands. Of note are the high levels of secondary sympatry in Aplonis relative to other geographic radiations in the region. Here, we attempt to resolve relationships in this group by sampling all extant and three extinct taxa. We sequenced ultraconserved elements from 141 ingroup samples (approximately 2 per subspecies), of which 104 were derived from historic toepad samples. We were able to infer a strongly supported phylogeny, which we used to infer the biogeographic history of the genus. Aplonis, which largely followed two one-way colonization routes via a stepping stone pattern from west to east. However, there was evidence for three independent, long-distance colonizations of Micronesia, and two cases of back-colonization from more distant to more nearby islands. Furthermore, based on patterns of sympatry and rules of monophyly, we found evidence for three species-level splits, including two in the widespread and polyphyletic Asian Glossy Starling (Aplonis panayensis). Finally, the subspecies-level sampling we performed allowed us to better understand the diversification dynamics in this group, with a stable accumulation of lineages over time when considering species or secondary contact as our operational units. TechnicalInfo: # Data and code from: Phylogeny of Pacific starlings (genus *Aplonis*) reveals cryptic diversity and diverse biogeographic patterns Repository for scripts and input files used in a subspecies-level phylogeny of the genus Aplonis. This README describes the scripts and data files used for the aforementioned project. Each section corresponds to a zipped directory in the Dryad repository and a folder on GitHub. *** denotes files in the Dryad only (mostly large alignment files or similar). #### Read processing (01_read_processing.zip) Raw reads are housed at NCBI's Sequencing Read Archive (PRJNA1336315). aplonis-illumiprocessor.conf - Configuration file for illumiprocessor, made following standard Phyluce specifications. illumiprocessor.slurm - Slurm script for running illumiprocessor to get cleaned reads. Originally run as part of a longer script that was not used for final analyses, so subset to only the relevant command. read_count.slurm - Script for counting the number of cleaned reads in each sample. sample_list - Simple text list of all samples. #### Tissue pipeline to generate reference (02_tissue_pipeline.zip) Note that this was run for all tissue samples, but only one was used. Toepad samples were too fragmented for timely assemblies, so this naturally led to mostly tissue samples being considered. Only one (A_panayensis_panayensis_KU121758) was used as a reference. velvet_parallel.slurm - Slurm script for running Phyluce's wrapper around velvet per sample in parallel (default runs many at a time, this allowed more flexibility). Note that this was re-run at least once, although better samples finished faster. sample_list_tissue - Simple text list of all tissue samples. A_panayensis_panayensis_KU121758_ref.fasta - Fasta of the best assembly, used for pseudoreference downstream. #### Reference-based pipeline (03_reference_pipeline.zip) This is the stage that actually made input for all analyses, on the basis of the high-quality reference in the de novo assembly step. This section is a bit complicated, so it has a sub-README. In short, reference_pipeline.slurm is run remotely from the main working directory, then 2_trim_ambig.py is run from a directory with consensus sequences (script from [https://datadryad.org/dataset/doi:10.5061/dryad.n5tb2rbsp](https://datadryad.org/dataset/doi:10.5061/dryad.n5tb2rbsp), trims consensus sequence based on ambiguous bases), then further phyluce scripts are run from the main directory. README_toepad - Supplemental README describing how it is run. reference_pipeline.slurm - Pipeline for making consensus sequence, note prior note about trimming with the python script from Smith et al. 2020. Pipeline itself is heavily inspired by Smith et al. 2020, and compensates for the difficulties default phyluce has with toepads, as de novo assemblies are a lot harder. Note that the threshold used for the trimming script is 40%, so it was run like "python 2_trim_ambig.py 0.4". calc_contigs_stats.sh - Script for calculating contig stats, run on the consensus sequence, use the amples list in step 1. phyluce_thresh40_trim.slurm - Script for running phyluce, side-stepping some of it for trimming with trimal. phyluce_aplonis76.slurm - The same as above, but subset for select analyses using one per subspecies-level unit. \*** aplonis_*phylip - Phylip files output by phyluce for scripts noted above. astral.slurm - Slurm script for running ASTRAL. #### Mitogenome pipeline (04_mitogenome.zip) run_mitofinder.slurm - Script used for tissue and toepad mitogenomes. Originally run separately to ease computing. Note that these use a singularity image of mitofinder. Didn't work out how to use Singularity parallelized across nodes. I'm sure there's a way to do it, but this was fast enough, and I had time to spare. Both use NCBI OK542103.1 (Acridotheres tristis) as a reference. sample_list* - Sample lists used for dating subsets or full (goodmito) analyses. gene_list.txt and gene_list_focal.txt - Simple text files of gene names used for dating (_focal) and phylogenetic analyses. split_genes.sh - Shell script used for splitting out gene-specific fastas with all species in them. A "monolith" of all of these is then spit out for Phyluce to use. phyluce_mito*.slurm - Scripts for hijacking phyluce for making concatenated mitochondrial datasets, either for dating (time*) or phylogenetic analyses. aplonis_mito_time*_nexus.nexus - Two nexus files with cytB and ND2 for use in data analyses. aplonis_mito136_concat_75per.phylip - Phylip used for tree building (not divergence times). #### Phylogenetics (05_phylogenies.zip) sed_crcm.sh - Script for fixing some character issues with the CRCM samples. iqtree.slurm - Script for "basic" iqtree runs, all the same command for different alignments. make_genetrees.slurm - Script for making genetrees for Astral/iqtree. iqtree_concordance.slurm - Script for iqtree concordance factor runs, takes in any phylogeny, sequence alignment, and optionally gene tree sets (latter doesn't work well with UCE target capture onto toepads). *.stat - Concordance factor stat output, used for examining in detail manually or with evaluate_concordance_factors.R. *tree, *treefile, and *tre (other than aplonis149_thresh40_trim_genetrees_75.treefile)- Assorted tree file outputs, as described in their name, with cf denoting concordance factors attached to the nodes. \*** aplonis149_thresh40_trim_genetrees_75.treefile - A file of gene trees for the focal dataset, used for concordance factors and astral. evaluate_concordance_factors.R - R script for analyzing concordance factors, inspired by or fully drawing from this post by Rob Lanfear: [https://www.robertlanfear.com/blog/files/concordance_factors.html](https://www.robertlanfear.com/blog/files/concordance_factors.html). \*** aplonis76_concat_75per.nexus - Input nexus file used for SVDQuartets, using the charsets file output by Phyluce to generate partitions. [Analysis credit to Michael Andersen] aplonis76_concat_75per.charsets - Charsets file of subspecies-level dataset. svdq_standardBoot.log - Log file for SVDQuartets run. [Analysis credit to Michael Andersen] #### Divergence dating (06_divergence_dating.zip) Divergence dating using a constraint of the IQtree topology for given datasets and mtDNA for rates. Note that only 75 of 76 subspecies made it to the subspecies-level dataset, but all 34 species-level tips made it. aplonis_mito_time*.xml - XML files for running BEAST, including the mtDNA alignments and constraint tree. [Analysis credit to Michael Andersen] aplonis_mito_time75-tree_logcombined.tre - Time calibrated tree from BEAST used for LTT plots. ltt_plot.R - R script for plotting LTT data across taxonomic scales. #### Biogeography (07_biogeography.zip) BioGeoBear analysis was run for two levels, subspecies (75 tips) and species (34 tips). All analysis credit to Michael Andersen for this section. aplonis_mito_time*-tree.logcombined.newick - Phylogenies used for running BioGeoBEARS, time calibrated based on IQTree topology and mtDNA rates. aplonis_*_BioGeoBear.R - R scripts for running species and subspecies level BioGeoBEARS analyses. time*_geography.txt - Geography files for running BioGeoBEARS. Codings are in order as follows: Continental (C), Wallacean (W), Sahul (S), Near Melanesia (N), Far Melanesia (F), Polynesia (P), and Micronesia (M).
more »
« less
Gene flow complicates phylogenetic inference in an archipelago radiation
Abstract: Allopatric divergence is a fundamental component of most traditional models of biogeography and community assembly. Gene flow between allopatric populations should be influenced by the nature of geographic barriers and can have a profound impact on adaptation, the speciation process, and phylogenetic inference. Superspecies—monophyletic groups of taxa with species-level differences in phenotype or genotype that are found exclusively in allopatry or parapatry—present an opportunity to characterize the effects of gene flow on the divergence process. Here we investigate patterns of gene flow, population structure, and inferred phylogenetic relationships for members of an avian superspecies, the Solomons Monarchs (Aves: Symposiachrus barbatus complex) occupying the Solomon Islands. We found that gene flow among allopatric species matches predictions based on geography, but phylogenetic relationships were not concordant with the most likely colonization history based on a stepping-stone colonization model. Notably, the most isolated island, Makira, has a species that was inferred to be sister to the taxa on all other islands in concatenated phylogenetic analyses, despite Makira being farthest from the presumed original source of immigrants. We use population genetic simulations to demonstrate that such a result could be driven by bias resulting from low levels of gene flow, reflecting a challenge in phylogeographic inference that results when one population is differentially isolated. These simulated findings demonstrate a distinguishability issue in phylogeographic inference, where gene flow and colonization history can be difficult to disentangle. Methods: The dataset is mostly a RAD-seq dataset, generating 1000s of loci across the genome, which were then sequenced on an Illumina sequencer. These were then processed with Stacks, with input generated for downstream analyses using several different scripts outlined in the document. Additionally, we ran two sets of simulations to demonstrate the theorhetical basis of two of our major claims (colonization and the impact of geographically mediated gene flow on phylogenetic inference). Other: There is a README.txt file included which describes the script and datasets included. Datasets are divided by mode of inference, with scripts associated with given input files (e.g., vcf, phylip, or nexus files) in the same .zip files. I did my best to rename input files in a meaningful way, and change my scripts accordingly, but most scripts aren't designed to run everything with the same directory structure/naming format as the zipped directory (i.e., some alteration needed). Scripts are also uploaded individually to Zenodo. Scripts, accessory files, and trees are also located on my GitHub: https://github.com/ethangyllenhaal/SolomonsSymposRad. Most figures were edited in Adobe Illustrator to change, e.g., text and line format, but no data were fundamentally altered. TechnicalInfo: README by: Ethan Gyllenhaal Last updated: 10 Sept 2025 Repository for scripts and input files used in a study investigating gene flow and its impacts on phylogeography in a radiation of Symposiachrus monarch flycatchers in the Solomon islands. Everything is in subfolders within a zipped file. If you use something here, please cite us, or contact EFG on who is best to cite (and remind him if he forgets to update the citation): This README describes the scripts and data files used for the afforementioned project. The data were collected using Illumina sequencing for RAD-seq libraries, largely following the Stacks reference-based pipeline. Scripts and input data file are in the same folder for a given analysis. ## Useage The majority of the data included here is output from a Stacks bioinformatics pipeline, which was run as a Torque script on a high performancce computing center. Individual VCFs were then processed with command line tools (e.g., vcftools) or R scripts for preparing figures, tables, etc for the paper. Data file formats (e.g. vcf, phylip) are standard except when noted. Additionally, there are two sets of simulation scripts and output (SLiM and msprime). Access reccomendations per data type are below. All data types except .xlsx and compressed files can be viewed in any plain text editor, but certain files are large enough that may not be advisable depending on the editor. ### Supplemental Tables out of appendix **TableS1_Sampling_table_SolSym.xlsx:** Table of samples used for RAD-seq dataset. From left to right, columns are species name, subspecies (when relevant), island, country, voucher number, tissue number, sample name used in scripts, sample name used for SRA accession, number of reads, which datasets the sample was included in, and Arctos database links. The numbers in the dataset column correspond to: 1) full dataset, 2) all Solomons samples, 3) all New Georgia samples, 4) all Bukida samples, 5) samples used in DSuite tests for gene flow, and 6) samples used in SNAPP. **TableS2_UCE_sampling.xlsx:** Table of samples used for UCE dataset. From left to right, columns are species name, subspecies (when relevant), island, country, voucher number, tissue number (when relevant), sample name used in scripts, sample name used for SRA accession, and number of recovered loci. ### Data and other files * .xlsx - Excel files, in our case manipulated with microsoft excel, but LibreOffice Calc and similar open source software can be used as well (and formulas transfers for at least LibreOffice). * .vcf - Variant Call Format files of SNP data. These contain a standard set of information including position on the reference, genotype info, and depth. Full specifications can be found here: [https://samtools.github.io/hts-specs/VCFv4.2.pdf](https://samtools.github.io/hts-specs/VCFv4.2.pdf). They can be viewed in any text editor, and I tend to use VCFtools to manipulate/filter them. * .tre and .treefile - Newick format phylogeny. Best viewed with FigTree: [https://tree.bio.ed.ac.uk/software/figtree/](https://tree.bio.ed.ac.uk/software/figtree/) * .stat - File output by IQTree detailing concordance factor statistics, viewed in text editors. * .nex - Nexus format phylogeny. Best viewed with FigTree: [https://tree.bio.ed.ac.uk/software/figtree/](https://tree.bio.ed.ac.uk/software/figtree/). Note that this is technically the same format as .nexus file, but they contain different fields. * .phylip and .nexus - Two allignment file formats used for IQ-TREE and SVDQUarters. These both contain concatenated sequence information, and although they are just text files, they are best used as input for other programs. * .fa - Allignment file format used only for storing per-locus gene trees used for locus-level IQ-TREE analyses. Can be viewed in any text editor, note that only first allele of each set was used. * .nwk - Newick format phylogeny generated in a text editor. Can be viewed in FigTree, but note that it isn't an empirical phylogeny per say (i.e., just made based off of topology from empirical trees). * .XML - Markdown file generated by BEAUti ([https://beast.community/beauti](https://beast.community/beauti)) for use with BEAST ([https://beast.community/index.html](https://beast.community/index.html)). Contains UCE allignments and details for BEAST to run analyses on the file. Can be viewed in a text editor raw or in BEAUti for user-friendly viewing/editing. * .ped and .map - Two plink format files for genotypes and site information, respectively. Formats are outlined here: [https://www.cog-genomics.org/plink/1.9/formats](https://www.cog-genomics.org/plink/1.9/formats). In short, .ped includes population ID, individual ID, four unused columns (value of 0 or -9), and two columns of SNP information per genotype. The other, .map, includes columns for chromosome code, variant ID, an unused column, and coordinator in basepairs. Used as input for admixture. * .trees - Nexus file of trees from the postior of SNAPP runs, used as input for DensiTree and TreeAnnotator. * .conf - File used for configuration of the PHYLUCE pipeline for UCE data. * .tar.gz - Compressed tar archive, can be decompressed with "tar -zxvf". * .gz - Directory compressed with gzip, can be decompressed with "gzip". * .jpeg or .png - Image files, used for photos of specimens, viewable in any image viewing software. * unspecified (no extension) - These are plain text files, visible with text editor of viewer of choice. ### Scripts * .pbs and .slurm - Batch scripts submitted from command line on UNM's cluster. * .R - R script designed to be run interactively in RStudio. * .sh - Shell scripts used for various tasks. Run on command line locally or on the cluster. * .py - Python scripts, run either interactively or as part of a pipeline. * .slim - Eidos scripts for running SLiM simulations, run on the cluster, but with slight modifications can be viewed and run in SLiM's GUI as well. ## Supplemental data These are excel files that act as supplemental tables for the paper either explicitly or to make explicit how I went about correcting tests of gene flow per-category. ## Zipped directories The numbered directories each contain files used for the bioinformatics pipeline and other analyses ### Stacks pipeline (01_stacks.zip) run_stacks_pipeline.pbs - Torque submission script used to run the pipeline. It was very quick, using only a single 8-core node for <10 hours. Made to run on UNM's Center for Advanced Research Computing's Wheeler cluster. popmaps directory - Directory of population maps used to make subset input files. Individual files are below, with the first column denoting sample names and second population assignment: *popmap_NG - New Georgia Group samples *popmap_bukida - Bukida Group samples *popmap_full - All samples *popmap_full_indiv - All samples, but with a dummy population used to output per-individual phylip files *popmap_solo - All Solomon Island samples *snapp_even - SNAPP input with three samples per island group and two samples from an outgroup *snapp_five_island - SNAPP input with up to five islands per island group (two per island if group have more than one) and two samples from an outgroup *snapp_two_island - SNAPP input with up to two islands per island group (two per island if group have more than one) and two samples from an outgroup ### Adegenet (02_adegenet.zip) SoloSympos_PCA.R - R script for the 3 PCAs in the paper (resulting in 4 figures), with the first one walking through the process in detail. The full and Bukida PCAs are in Figure 2. The New Georgia PCAs are in Figure S1. solsym_*_75.vcf - 75% complete VCF files for subsets of the data (all Solomons birds, all Bukida birds, and all New Georgia birds, respectively). ### Admixture (03_admixture.zip) solsym_admixture_plot.R - R script for plotting Admixture results. Output used in Figure 2. run_admixture_NG.sh - Shell script for running Admixture. Assumes a conda environment with Plink and Admixture is loaded (or similar ways of making "plink" and "admixture" call their respective programs). solsym_NG_75.* - Plink input files from Stacks, with 75% completeness for New Georgia Samples. solsym_NG_75_12.* - Plink files from prior line converted to 12 format for use in Admixture. ### Confirming intergrade (04_confirm_intergrade.zip) keep_interspecific - Sample list of individuals to keep for fixed SNP analysis (only one is used, rest are there to confirm we do indeed have fixed SNPs) kolo_etc_samples - Sample list of Kolombangara and connected islands. rano_vella_samples - Sample list of Vella Lavella and Ranongga. solsym_solomons_75.vcf - 75% complete VCF file for Solomons subset of data. run_interspecific_het.sh - Main script, first uses VCFtools and unix commands to find fixed SNPs (between the combined Kolombangara etc and Vella/Ranongga populations), then limits input VCF to those SNPs, then does some unix math so calculate proportion of heterozygotes for the focal individual at those sites. Comparable to what the program introgression calculates. ### Pairwise Fst (05_pairwise_Fst.zip) pairwise_Fst_vcftools.sh - Shell script used for calculating pairwise Fst between all Solomons population using VCFtools. Output used in Table 1. pops directory - Files used to specify populations. solsym_solomons_75.vcf - 75% complete VCF file for Solomons subset of data. ### IQTree and SVDQuartet (06_iqtree_svdq.zip) NOTE: SVDQuartets analyses were run with the PAUP GUI. Output in Figure 3 and Figure S2. iqtree.slurm - SLURM batch script for running IQTree for inference on RAD and UCE data, as well as site concordance factor calculation for RAD data. full_rad_75.phylip - Input for IQTree, generated with Stacks with slight manual modifications. full_rad_75.phylip.treefile - Output from IQtree, without concordance factors. solsym_cf_full_75.cf.tree - Phylogeny for RAD dataset with concordance factors on nodes. solsym_cf_full_75.cf.stat - Full concordance factor data for RAD dataset. solomons_triv_SVDQ_75.tre - SVDQuartets phylogeny for ingroup and S. trvirgatus. Tips are grouped together. solomons_triv_SVDQ_75.nex - SVDQuartets input modified from IQTree phylip without a script. Removed all outgroups other than trvirgatus. ### SNAPP (07_SNAPP.zip) NOTE: Some steps were run with the Beauti GUI. Output in Figure 4. snapp_input_maker.sh - Driver script for converting a VCF to diploid SNAPP input (i.e. Nexus input for processing in Beauti). Converts from VCF to haploid SNAPP using [https://github.com/BEAST2-Dev/SNAPP/tree/master/script](https://github.com/BEAST2-Dev/SNAPP/tree/master/script), then to diploid SNAPP using a custom python script (SNAPP_haploid_to_diploid.py), and finally adding lines for a new nexus file using sed commands. Now takes command line arguments (relative to original version). generate_snapp_input.sh - Simple script with commands for each SNAPP input file. SNAPP_haploid_to_diploid.py - Script for converting a tab-delimited set of haploid nexus SNP data to diploid data. Takes and outputs "middle" lines, header and footer done by "snapp_input_maker.sh". Note that it's "dumb" and needs the input to be named "snapp_dip.txt" and outputs "snapp_out.txt". snapp100_*.vcf - 100% complete VCF for SNAPP samples of a given set: even = 3 samples from 1 island per group; group = up to 4 samples per island group, with 2 islands (2 samples each) for Bukida and New Georgia groups; island = up to 10 samples per island group, with 5 islands (2 samples each) for Bukida and New Georgia groups. snapp100_*.nex - Nexus file used to make Beast XML for SNAPP. snapp100_*.xml - Beast XML input file. Simply run with the line: beast -threads 32 solsym_limit100.xml. (adding --resume if needed) snapp*.trees - The first N trees from a given SNAPP run (resuming continues past limit, to if limit was 10 million we pruned extra trees past that). treeanno_*.tre - TreeAnnotator summary trees. ### UCEs Phylogenies (08_UCEs.zip) NOTE: SVDQuartets analyses were run with the PAUP GUI. Output in Figure 3. IQTREE script is in section 06. run_phyluce_solo_triv.sh - Shell script for running PHYLUCE pipeline. Starts with cleaned reads and outputs Nexus and Phyllip files. solsym_uce.conf - Taxon set .conf file. Used in several phyluce calls. solsym_spades.conf - Spades .conf file, note paths are changed to generic ones up until clean reads folder. Used in phyluce_assembly_assemblo_spades. solsym_uce_contigs.tar.gz - All of the contigs.fa outputs from spades, tarballed and gzipped. sympos_uce_nexus_90.nexus - 90% complete nexus file used for SVDQuartets analysis. sympos_uce_SVDQ_90.tre - Tree produced by SVDQ, combining samples by population. sympos_uce_raxml_90.phylip - 90% complete phylip file used for RAxML analysis. sympos_uce_raxml.tre - Tree produced by RAxML, combining samples by population. ### DSuite (09_DSuite.zip) NOTE: The topologies and popmaps have 6 consistent name corresponding to subfigures in Figure S3. B = main, C = noMal, D = conservative, E = conservative_noMal, F = malbar G = malbar_conservative. run_D.sh - Shell script used for running Dsuite. The first one is used for the main ABBA/BABA results (Figure 5). The first and the rest are used for fbranch (Figure S3). fbranch_topologies/* - Topologies used for fbranch, outlined below: *topo_main.nwk - The main topology. *topo_noMal.nwk - Malaita removed. *topo_conservative.nwk - Certain populations removed to avoid uncertainty within island groups. *topo_conservative_noMal.nwk - As above, but also with Malaita removed. *topo_malbar.nwk - New Georgia samples removed. *topo_malbar_conservative.nwk - New Georgia samples and one uncertain Bukida sample removed. pop_maps/* - Population maps used for the runs. All but two downsampled ones match the above topologies. These downsampled maps match the main topology: *map_downsample3 - Population map with a maximum of 3 samples per population. *map_downsample2 - Population map with a maximum of 2 samples per population. ### Genetrees (10_genetrees.zip) all_genetrees.slurm - Slurm batch script for making locus-specific fastas and running gene trees with given numbers of parsimony informative sites. check_monophyly_all.py - Python script for outputting proportion and branch length stats for gene trees. locus_fastas.fa - Fasta of locus-specific fastas. popmap_genetrees - Population map for gene tree samples (one per island group). *.zip - Zipped directories of locus fastas and IQ-TREE output for fastas with given number of parsimony informative sites, as listed below: *all.zip - At least one PIS *all_PIS2.zip - At least two PIS *all_PIS3.zip - At least three PIS ### Photos of intergrade (11_photos.zip) All of these are photos of the intergrade (center), Ranongga samples (left two), and Kolombangara samples (right two). They show the view over the underparts (Belly_View_Full.jpeg), sides (Side_View_Full.jpeg), and the main one used in Figure 2 (Main_hybrid_comp.png). ### Colonization simulations (12_colonization_sims.zip) solsym_nonWF_carc_loui_v2.slim - Slim script used to run colonization simulations. run_loui_colonize.slurm- Slurm script used to run simulations in parallel. Requires a conda environment with SLiM. drive_summarize.sh - Script used to modify output then run python script. summarize_loui.py - Script used to summarize the output from slim. summarized_*.txt - Text files output by summarize script. Each row is for a given dispersal value. Three files correspond to the proportion of simulations where a given island group met specific conditions (columns 2, 3, 4, and 5 correspond to New Georgia, Malaita, Makira, and Bukida respectively): "first" means which was colonized first, "last" means which was colonized last, and "success" means which islands were successfully colonized **of the simulations where the Solomons were colonzied**. The path file is colonization paths, with columns corresponding to NLKB, NLBK, NKLB, NKBL, NBLK, NBKL, LNKB, LNBK, LKNB, LKBN, LBNK, LBKN, KNLB, KNBL, KLNB, KLBN, KBNL, KBLN, BNLK, BNKL, BLNK, BLKN, BKNL, then BKLN (B=Bukida, N=New Georgia, L=Malaita, K=Makira). slim_sankey.R - R script for plotting colonization paths in a Sankey diagram. Note that paths are converted from proportions to numbers and summed across all simulations, then assigned manually in R (couldn't figure out a smart way to do it). ### Phylogenetic simulations (13_phylo_sims.zip) new_solo_phylo_msp.py - Script for running msprime simulations, made to be run in parallel. run_solomons_msp.slurm - Slurm batch script for running replicates of msprime followed by IQTREE. Requires a conda environment with msprime and IQTREE (plus other python packages). variant_fasta.sh - Script for removing invariant sites to keep alignment files smaller for storage purposes. combined_sumstats.sh - Simple script for combining summary stat files in parallel. summarize_*.txt - Tables summarizing topologies from simulations that started in Bukida (_buk) or Makira (_mak). Columns are the row name (stem name), 15 possible topologies (values are counts), count of non-monophyletic trees, count of poorly resolved trees, the stem name of the simulation set, dispersal distance, effective population size, post-split time, and split interval. summarize_trees_bs.py - Script for parsing and classifying topologies from set of trees. summarize_trees.slurm - Slurm script for running summarize_trees_bs.py. plot_msp_heatmap.R - Script for plotting heatmap of phylogenetic simulation results. output_trees.zip - Zipped directory of trees output by IQTREE. The "d" corresponds to dispersal distance (0.0001 acts as 0), n to total population time, t for post-split time, i for split interval, and r is the replicate number. output_sim.zip - Zipped directory of fastas and summary stats output by msprime. The "d" corresponds to dispersal distance (0.0001 acts as 0), n to total population time, t for post-split time, i for split interval, and r is the replicate number. ### Additional summary simulation files (14_bonus_sim_stats.zip) plot_sumstats.R - Script for plotting a lot of data exploration plots not used in the paper. source_d* - Source population data from SLiM simulations for a range of dispersal values. From left to right, columns are the source population values for the New Georgia Group, Malaita, Makira, and the Bukida Group. sumstat_d* - Summary stat (pi and private alleles) data for SLiM simulations for a range of dispersal values. From left to right, the first four columns are for pi and second four for private allele count, each in the order of: New Georgia Group, Malaita, Makira, Bukida Group. sumstat_combined - Msprime output for all simulations, first with parameters then with population-specific summary stats. The first 6 columns are: dispersal distance, total Ne, post-split divergence time, split interval, simulation start point, and replicate number. Next four are pi (for Bukida, New Georgia, Malaita, Makira) and then number of private alleles (in the same order).
more »
« less
- Award ID(s):
- 2410565
- PAR ID:
- 10694083
- Publisher / Repository:
- Dryad
- Date Published:
- Edition / Version:
- 7
- Subject(s) / Keyword(s):
- FOS: Biological sciences FOS: Biological sciences archipelago Gene flow gene flow allopatric/geographic speciation Monarchidae
- Format(s):
- Medium: X Size: 1921337127 bytes
- Size(s):
- 1921337127 bytes
- Right(s):
- Creative Commons Zero v1.0 Universal
- Sponsoring Org:
- National Science Foundation
More Like this
-
-
{"Abstract":["Human disturbance can have profound effects on biodiversity, including\n increasing hybridization between reproductively isolated species. One\n approach for understanding how human activity affects hybridization\n dynamics is to evaluate correlations between disturbance (e.g.,\n urbanization, temperature change) and hybridization. Because variation in\n hybridization can also arise from historical factors unrelated to recent\n human disturbance, it is essential to account for population structure to\n avoid spurious correlations. Here, we combine environmental and\n high-coverage whole-genome resequencing data to investigate how human\n disturbance and population structure affect hybridization dynamics between\n a pair of pine sawflies adapted to different pines, Neodiprion lecontei\n and Neodiprion pinetum. We find that N. lecontei and N. pinetum exhibit\n strikingly different patterns of population structure, which we\n hypothesize stems from differences in host. We also find that recent\n admixture is both asymmetric and geographically variable. Linear\n regression analyses reveal that admixture proportion is predicted by\n indirect human disturbance (i.e., climate change) and not direct human\n disturbance (e.g., urbanization) in both N. lecontei and N. pinetum.\n Lastly, in N. pinetum, we find evidence of a spurious association between\n admixture and direct human disturbance that disappears when regression\n models account for population structure via inclusion of genetic principal\n component scores as covariates. Together, our data suggest that indirect\n human disturbance and population structure both contribute to geographic\n variation in admixture between N. lecontei and N. pinetum. Our study also\n highlights the importance of adequately controlling for population\n structure when attempting to identify environmental predictors (human\n disturbance-related or not) of hybridization."],"TechnicalInfo":["# Recent climate change and historical population structure predict\n spatial patterns of admixture between two host-specialized pine sawfly\n species Dataset DOI: [10.5061/dryad.kh18932jw](10.5061/dryad.kh18932jw) ##\n Description of the data and file structure To perform all analyses, run\n scripts provided in the order indicated in the folder/script name (i.e.,\n "01*" to "07*"). NOTE: for all bash scripts (*.sh),\n you will have to modify them to run on your cluster. However, the program\n commands should work as long as you are using the same version of the\n program (program versions indicated in the Materials and Method section of\n the manuscript). ### Files and variables #### File:\n Glover_Linnen_dryad.zip **Description:** Input files required to run\n analyses are provided: 1.\n "allsites_LecPineHetr_filtered_ExclIndvs_minQ20_AllImbHom_refilter_bcftools_norm.vcf.gz" - required for ABBA-BABA analysis ("06_ABBA-BABA" folder); vcf file contains variant and invariant sites for all *N. lecontei*, *N. pinetum*, and *N. hetricki* individuals included in analysis 2. "snps_LecPine_filtered_ExclIndvs_MAF05_minQ20_AllImbHom_refilter_pruned_bcftools_norm.vcf.gz" - required for ADMIXTURE ("03_ADMIXTURE" folder) and principal component analysis (PCA) for both species combined ("04_run_pcas.sh" script) analyses; vcf file contains linkage-pruned SNPs for all *N. lecontei* and *N. pinetum* individuals included in analyses (i.e., contaminated/putative haploid male individuals removed) 3. "snps_LecOnly_filtered_ExclIndvs_MAF05_minQ20_AllImbHom_refilter_pruned_bcftools_norm.vcf.gz" - required for PCA for *N. lecontei* only analysis ("04_run_pcas.sh" script"); vcf file contains linkage-pruned SNPs for all *N. lecontei* individuals included in analysis (i.e., contaminated/putative haploid male individuals removed) 4. "snps_PineOnly_noHybrid_filtered_ExclIndvs_MAF05_minQ20_AllImbHom_refilter_pruned_bcftools_norm.vcf.gz" - required for PCA for *N. pinetum *only analysis ("04_run_pcas.sh" script"); vcf file contains linkage-pruned SNPs for all *N. pinetum *individuals included in analysis (i.e., contaminated/putative haploid male individuals and F1 hybrid called *N. pinetum* at time of collection due to being collected on white pine removed) 5. "fulldata_LecPine.csv", "fulldata_LecOnly.csv", "fulldata_PineOnly.csv" - full/compiled data for all *N. lecontei* and *N. pinetum* individuals together, all *N. lecontei* individuals, and all *N. pinetum* individuals included in downstream analyses, respectively. These files are required to run the "05_plot_PCAs_ADMIXTURE.R" and "07_run_models.R" scripts. Description of columns in the *.csv files (#5) above (each row represents an individual sawfly): 1. "ind" = unique individual identifier assigned by the sequencing center (Admera Health) 2. "genPC1_*" = genetic PC1 score from PCA of both species combined ("genPC1_LecPine" in "fulldata_LecPine.csv" file), *N. lecontei* only ("genPC1_LecOnly" in "fulldata_LecOnly.csv" file), or *N. pinetum* only ("genPC1_PineOnly" in "fulldata_PineOnly.csv" file) 3. "genPC2_*" = genetic PC2 score from PCA of both species combined ("genPC2_LecPine" in "fulldata_LecPine.csv" file), *N. lecontei* only ("genPC2_LecOnly" in "fulldata_LecOnly.csv" file), or *N. pinetum* only ("genPC2_PineOnly" in "fulldata_PineOnly.csv" file) 4. "genPC3_*" = genetic PC3 score from PCA of both species combined ("genPC3_LecPine" in "fulldata_LecPine.csv" file), *N. lecontei* only ("genPC3_LecOnly" in "fulldata_LecOnly.csv" file), or *N. pinetum* only ("genPC3_PineOnly" in "fulldata_PineOnly.csv" file) 5. "AG_ID" = unique individual identifier assigned by the Linnen lab 6. "avg_perc_PP_reads_mapped" = percentage of properly paired reads mapped; averaged between the two sequencing batches 7. "MERGED_FINAL_read_count" = total read count across two sequencing batches 8. "species" = species identity 9. "city" = city individual was collected in 10. "state" = state individual was collected in 11. "area" = geographic area ("North" or "Central") that individual was assigned to based on ADMIXTURE ("03_ADMIXTURE" folder) and PCA ("04_run_pcas.sh" script) analyses 12. "latitude" = latitude individual was collected at 13. "longitude" = longitude individual was collected at 14. "host" = pine host individual was collected on 15. "stage" = life stage of individual at time of DNA extraction, either "larva" or adult female ("adultF") 16. "lcPC1" = PC1 score from PCA of land cover proportions (from analyses in "01_LandCover_data" folder) 17. "lcPC2" = PC2 score from PCA of land cover proportions (from analyses in "01_LandCover_data" folder) 18. "change_tmax" = change in average daily maximum temperature from the 1980's to the 2010's in degrees Celsius (from analyses in "02_temperature_data" folder) 19. "site_number" = arbitrary number assigned to sampling site; each unique sampling site (i.e., unique latitude/longitude GPS coordinates) was assigned an arbitrary number (1-189) 20. "grouped_site_number_5km" = grouped site number, where all sampling sites that were within 5km of each other were considered a “grouped site” and were assigned an arbitrary grouped site number 21. "allele_imbalance" = percentage of heterozygote calls displaying allele balance ratios less than 0.3 22. "avg_depth_coverage" = average depth coverage across all linkage-pruned SNPs 23. "missingness" = proportion of sites with a missing genotype 24. "heterozygosity" = proportion of sites with a heterozygous genotype 25. "pop" = population label for making ADMIXTURE plots ("05_plot_PCAs_ADMIXTURE.R" script); [species]_[sampling state] 26. "admix_prop_k2" = admixture proportion for K=2 (i.e., species-level admixture) 27. "lec_blue_k2" = final assignment probability for "blue" genetic group (color assigned by CLUMPAK) that corresponds to *N. lecontei* ancestry across all 100 ADMIXTURE runs for K=2 28. "pine_orange_k2" = final assignment probability for "orange" genetic group (color assigned by CLUMPAK) that corresponds to *N. pinetum* ancestry across all 100 ADMIXTURE runs for K=2 29. "lec_blue_k3" = final assignment probability for "blue" genetic group (color assigned by CLUMPAK) that corresponds to *N. lecontei* ancestry across all 100 ADMIXTURE runs for K=3 30. "pine_orange_k3" = final assignment probability for "orange" genetic group (color assigned by CLUMPAK) that corresponds to *N. pinetum* ancestry across all 100 ADMIXTURE runs for K=3 31. "lec_purple_k3" = final assignment probability for "purple" genetic group (color assigned by CLUMPAK) that corresponds to *N. lecontei* ancestry across all 100 ADMIXTURE runs for K=3 32. "lec_blue_k4" = final assignment probability for "blue" genetic group (color assigned by CLUMPAK) that corresponds to *N. lecontei* ancestry across all 100 ADMIXTURE runs for K=4 33. "pine_orange_k4" = final assignment probability for "orange" genetic group (color assigned by CLUMPAK) that corresponds to *N. pinetum* ancestry across all 100 ADMIXTURE runs for K=4 34. "lec_purple_k4" = final assignment probability for "purple" genetic group (color assigned by CLUMPAK) that corresponds to *N. lecontei* ancestry across all 100 ADMIXTURE runs for K=4 35. "lec_green_k4" = final assignment probability for "green" genetic group (color assigned by CLUMPAK) that corresponds to *N. lecontei* ancestry across all 100 ADMIXTURE runs for K=4 Perform analyses: The first folder ("01_LandCover_data") contains the R script to calculate land cover proportions within a 5km-radius buffer around each site's GPS coordinates ("get_LandCover_props.R"). The required input land cover raster files to run this script are available in the public domain at ([https://www.mrlc.gov/viewer/](https://www.mrlc.gov/viewer/)) for the United States and ([http://www.cec.org/north-american-environmental-atlas/land-cover-30m-2020/](http://www.cec.org/north-american-environmental-atlas/land-cover-30m-2020/)) for Canada. This folder also contains the input files ("for_lcPCA.csv", "latlong.csv") and script ("LandCover_PCA.R") necessary to complete the PCA of land cover proportions for each of the 189 sampling sites. Specifically, the "for_lcPCA.csv" file contains, for each sampling site, the proportions of each land cover class within a 5km radius buffer around the GPS coordinates of the sampling site; the "latlong.csv" file contains the GPS coordinates (latitude and longitude) of each sampling site. The second folder ("02_temperature_data") contains the input file ("LatLong.csv") and script ("get_tmax.R") necessary to extract the average of daily maximum temperature for each month within each year (1980-1989 and 2010-2019) for the latitude/longitude that each individual sawfly was collected at. The required input temperature raster files to run this script are available in the public domain at ([https://daac.ornl.gov/cgi-bin/dsviewer.pl?ds_id=2131](https://daac.ornl.gov/cgi-bin/dsviewer.pl?ds_id=2131)) for the United States and Canada. The third folder ("03_ADMIXTURE") contains the script ("run_admixture.sh") to perform 100 ADMIXTURE runs for each K (1-10). The output file from CLUMPAK for K=2 is also provided ("ClumppIndFile.output"). In this text file, each row represents an individual; the proportion of the individual's ancestry originating from each of the two inferred ancestral populations are provided (last two columns), from which admixture proportions can be extracted. The script to perform the next analysis (PCA) is provided ("04_run_pcas.sh"). Next, the script to plot the results from the ADMIXTURE and PCA analyses above is provided ("05_plot_PCAs_ADMIXTURE.R"). The next folder ("06_ABBA-BABA") contains the scripts (".sh") and input files (".txt" and ".nwk") to perform the ABBA-BABA analysis for the "North" and "Central" geographic regions separately. For each region, the *"*.txt" file indicates which of the four taxa each individual belongs to (i.e., P~1~, P~2~, P~3~, or Outgroup) - individuals that are in the vcf file but excluded from the analysis are indicated with an "xxx". The ".nwk" file is a text file that represents the phylogenetic tree of the four taxa above in the Newick format (i.e., uses parentheses and commas to show the relationships between taxa). Finally, the script to perform the multiple linear regression models and plot the model results is provided ("07_run_models.R"). ## Code/software All scripts to perform analyses are described above. All software and R package versions are described in the Materials and Methods section of the manuscript."]}more » « less
-
Abstract: Invasive species that undergo a founder event may experience a decline in genetic diversity yet still establish successful populations despite the potential loss of adaptive variation and an increase in deleterious variation. This widely observed phenomenon is termed the genetic paradox of invasive species. A possible example is the common wall lizard (Podarcis muralis) in Cincinnati, Ohio, USA a successful invasive reptile founded by the introduction of a small number of individuals from Italy. In this study, we evaluated whether this introduction is an example of the genetic paradox of invasive species. Specifically, we examined the origin, demographic history, population structure and genomic diversity of the invasive common wall lizard using whole genome sequences of 35 individuals from the native and introduced locations across multiple time points. Phylogenetic analyses confirm that the invasive lizards in Ohio are likely derived from a population of Podarcis muralis in Northern Italy. We then show that: 1) Analyses of short-term effective population size (Ne) and measures of inbreeding (FROH) demonstrate that introduced lizards in Cincinnati went through a short-term bottleneck but rapidly increased in population size thus potentially minimizing losses in genetic diversity; 2) Direct comparisons of estimates of neutral genetic diversity (PCA, Hobs, FST, and π) between source and introduced populations show that while populations in Cincinnati represent a subset of native genetic variation they show minimal losses of genetic diversity; 3) Comparisons of deleterious mutation load between native and introduced populations show only small increases in load in introduced populations; 4) Tests for selection based on outlier analyses detect potential positive selection in regions of the genome of introduced individuals that contain protein coding genes that could represent cases of rapid adaptation to a new environment. Overall, we do not find evidence for a genetically depauperate introduced population with high levels of genetic load in Cincinnati, which are key criterion for the genetic paradox of invasive species. Rather we find rapid population growth likely minimized genetic diversity loss, possibly enabling genetic adaptation to novel aspects of the environment in Cincinnati. This demographic resilience likely facilitated the retention of standing genetic variation and minimized the accumulation of genetic load, allowing the population to remain viable and increase in size. These findings highlight how the interplay between demography, genetic variation, and ecological compatibility can facilitate the success of introduced species, even in the face of strong genetic constraints. Further our study underscores the importance of integrating genomic, demographic, and ecological perspectives to fully understand invasion success. TechnicalInfo: # Podarcis genomics README The following scripts & data provide information regarding three datasets Dataset A - Podarcis.filtered.final.SNPs.vcf.gz - GATK called variant call file that has been compressed Dataset B - LD.filtered.SNPs.2.pruned.vcf.gz - LD filtered version of Dataset A, GATK called variant call file that has been compressed Dataset 3 - multisample_filter2.all-sites.vcf.gz - Combined all-sites variant call file that has been compressed - available here: [https://buckeyemailosu-my.sharepoint.com/:u:/g/personal/bode_52_buckeyemail_osu_edu/IQDKq4Qm6Ym9TZ5rQsnyrEo6AUG4MIT5OhogJQMVxUjmXu8?e=p2prQk](https://buckeyemailosu-my.sharepoint.com/:u:/g/personal/bode_52_buckeyemail_osu_edu/IQDKq4Qm6Ym9TZ5rQsnyrEo6AUG4MIT5OhogJQMVxUjmXu8?e=p2prQk) Raw reads available on NCBI's Short Read Archive Database under BioProject Accession No PRJNA1284928 The reference genome used was: GCF_004329235.1_PodMur_1.0_genomic.fna found on NCBI's GenBank Files for analysis and Scripts used are bundled within a single .zip file called "Analysis_Scripts_Data_2.zip". Below is description of the contents of each folder within archive. # Descriptions The below variables can be found in Datasets A, B, and C in the header of each file: * CHROM * Chromosome or scaffold identifier from the reference genome * POS * Genomic position of the variant (1-based coordinate) * ID * Variant identifier (e.g., dbSNP ID) or “.” if not assigned * REF * Reference allele at the given position * ALT * Alternate (variant) allele(s) * QUAL * Phred-scaled quality score of the variant call * FILTER * Indicates whether the variant passed filtering (PASS) or which filter(s) it failed * INFO * Summary statistics and annotations describing the variant across all samples * FORMAT * Defines the format of genotype data for each sample * GT * Genotype (e.g., 0/0 = homozygous reference, 0/1 = heterozygous, 1/1 = homozygous alternate) * AD * Number of reads supporting REF and ALT alleles * DP * Read depth for the individual at this position * GQ * Genotype quality (confidence in genotype call) Samples and Sample Designation/Population Below | Italy 2009 | Cincinnati 2007 | Cincinnati 2022 | Columbus 2021 | | :---------- | :-------------- | :-------------- | :------------ | | Pm8410 | Pm6047 | Pm0001 | Pm203\_Apr1 | | Pm0004 | Pm6048 | Pm8401 | Pm204\_Apr1 | | Pm0006 | Pm6049 | Pm8402 | Pm205\_Feb1 | | Pm005\_Apr1 | Pm6050\_Tor07 | Pm8403 | Pm210 | | Pm8411 | Pm6051\_Tor07 | Pm8404 | Pm0211 | | Pm8417 | Pm6593 | Pm8405 | | | Pm8419 | Pm6594 | Pm8406 | | | PmIta3 | Pm6595 | Pm8407 | | | Pm8418 | Pm6952 | Pm8408 | | | | Pm6982 | Pm8409 | | The above samples can be found in all below files for analysis # Usage Notes Datasets A, B, and C can be viewed directly in a text editor or processed using tools like bcftools or VCFtools found in a computers shell system or by clustering computer system. Common operations include filtering variants by quality or allele frequency, extracting specific fields (e.g., chromosome, position, genotype), or converting to other formats such as TSV or PLINK for downstream analysis. VCF files can also be used as input for population genetics analyses, functional annotation with tools like SnpEff, or variant prioritization workflows. Below scripts use a combination of Linux/Unix commands, python scripts, and R/RStudio. Scripts ending in .slurm or .sh are Linux/Unix scripts and will need to be run on a compatible software (ie. MacOS) or computer cluster. Scripts ending in .py are python scripts and will need python installed to run, use of JupyterNotebook and Anaconda is suggested. Scripts ending in .R are scripts written in R and require R and/or Rstudio to run. All scripts under R Code require RStudio to visualize plots and varying packages for plot customization. # Table of contents (main folders) Data - Scripts - R_Code\_ - ## data/ * **SNeP** - folder of SNeP outputs of Ne. * plain text files (.txt) that are viewable in Notepad, excel, etc. .NeAll is the standard output for the program SNeP. Each row typically represents a distance bin between SNPs and includes the following variables: GenAgo (number of generations ago), Ne (estimated effective population size at that time point), dist (average physical distance between SNP pairs), r2 (mean linkage disequilibrium value for the bin), r2SD (standard deviation of r² values), and items (number of SNP pairs used in the calculation for that bin). * **Het** - folder of VCFTools outputs for Het * plain text files (.Het) or tab-deleminated text (.log) that can be viewed in Notepad, BBEdit, R. Each row corresponds to an individual and includes the following variables: FID (family ID), IID (individual ID), O(HOM) (observed number of homozygous sites), E(HOM) (expected number of homozygous sites under Hardy–Weinberg equilibrium), N(NM) (number of non-missing genotyped sites), and F (inbreeding coefficient, calculated as the deviation of observed from expected homozygosity). * **qc_flagstat.zip** - folder of QC analysis from FastQC (raw) and Fastp (trimmed). * plain text files (.txt) as well as .html and .json files that can be viewed in Notepad, the internet and any image viewer. FastQC reports contain information on sequence quality scores, GC content, duplication levels per individual. Fastp reports contain information on filtering statistics, read quality before/after trimming per individual. * **Lof mutations** - folder of data used to calculate Lof allele frequency * plain text files (.frq) that can be viewed in Notepad or excel. As some files do not include headers, columns are interpreted as follows based on data structure: Column 1 (chromosome or scaffold ID, e.g., NC_041312.1), Column 2 (genomic position in base pairs), Column 3 (reference allele count), Column 4 (alternate allele count), Column 5 (reference allele frequency), and Column 6 (alternate allele frequency). * **ROH** - folder of plink ROH outputs * plain text files (.hom) that are readable in excel or Notepad. Each row represents one ROH segment and includes the following variables: FID (family ID), IID (individual ID), PHE (phenotype, often -9 if missing), CHR (chromosome), SNP1/SNP2 (start and end SNP identifiers), POS1/POS2 (start and end genomic positions in base pairs), KB (segment length in kilobases), NSNP (number of SNPs in the segment), DENSITY (average SNP spacing, kb per SNP), and PHOM/PHET (proportion of homozygous and heterozygous calls within the segment, respectively). * **multisample_filter2_10kb_pi.txt.zip** - compressed file of Nuc Div calc * Compressed txt file (.txt) that can be viewed in excel, Notepad, R, etc. Each row corresponds to a genomic window and includes: pop (population identifier), chromosome (chromosome or scaffold ID), window_pos_1 and window_pos_2 (start and end positions of the window in base pairs), avg_pi (average nucleotide diversity within the window), no_sites (number of sites analyzed in the window), count_diffs (total number of pairwise nucleotide differences observed), count_comparisons (number of pairwise comparisons made), and count_missing (number of missing sites within the window). * **FST_10kb_pairwise_mean.txt** summary of FST calcs for mean per population comparison * Plain text file (.txt) that can be viewable in R, Notepad, etc. Each row represents a pairwise population comparison and includes: pop1 and pop2 (the two populations being compared), comparison (label or identifier for the pairwise comparison), mean_fst (average FST value across all windows), and n_windows (number of genomic windows included in the calculation). * **outliers** - folder of data used in FST outlier analysis * Contains excel and (.tsv) files that can be viewed in excel, R, or Notepad * For the TableS3_outlier functions each row typically represents a genomic window and includes: chromosome/chr (chromosome or scaffold ID), window_pos_1 and window_pos_2 (start and end positions of the window in base pairs), avg_wc_fst (average Weir and Cockerham FST for the window), no_snps (number of SNPs in the window), GeneID (gene identifier overlapping or nearest the window), gene_name (common gene name, if available), GO_ID (Gene Ontology identifier), name (GO term name), namespace (GO category, e.g., biological process, molecular function, cellular component), and gene_start/gene_end (genomic coordinates of the annotated gene). * For TableS4_GO_results each row represents an enriched term and includes: ID (GO term identifier), Description (GO term name), GeneRatio (proportion of input genes associated with the term), BgRatio (proportion of background genes associated with the term), RichFactor (ratio of GeneRatio to BgRatio), FoldEnrichment (degree of overrepresentation relative to background), zScore (standardized enrichment score), pvalue (raw statistical significance), p.adjust (multiple testing–corrected p-value), qvalue (false discovery rate), geneID (list of genes contributing to the enrichment signal), and Count (number of genes associated with the term). ### scripts/ * **01_trimgalore_template.sh** - trimming genome data * **02_alignmnet_template.slurm** - mapping genome data * **03_haplotypecaller_template.slurm** - SNP calling * **04_Podarcis_genotyping.slum** - Genotyping * **05_Podarcis_filtering.slurm** - Filtering * **06_bqrs_template.slurm** - quality score check * **07_haplotypecaller_template.slurm** - SNP calling * **08_Podarcis_genotyping.slurm** - Genotyping * **09_LD.filter.sh** - LD filtering for variant-only vcf file * **10_align_samples_array.sh** - mapping genome data for all-sites vcf * **11_call_allsites.sh** - SNP calling for all-sites VCF and combination of all-sites VCF with variants * **12_filter1.sh** - All-sites filtering for missingness * **13_filter2.script** - All-sites filtering for depth * **busco_step1.sh** - Script to extract Busco scores * **Busco_phylogenomics.py** - Script to run Busco phylogenomics python script * **15_SNeP_script.sh** - Script to calculate ld-based effective population size (Ne) estimates * **Podarcis_PCA_Code.R** - Rscript to run PCA on VCF * **Roh_step1.sh** - Script to calculate ROH using Plink * **Roh_step2.py** - Script to calculate Froh per population * **18_Nuc_Div.sh** - Script to calculate genome wide estimates of Nuc Diversiy using all-sites vcf * **19_Fst_calc.sh** - Script to calculate population estimates of Fst using all-sites vcf * **20_Het.sh** - Script to calculate heterozygosity per population using VCFTools * **21_Genetic_Load_calcs.sh** - SNPeff script to annotate LoF mutations * **outliers.R** - script to find FST outliers #### R_Code_/ * **Plot_SNeP.R** - script to plot Ne outputs from SNeP * **Plot ROH.R** - script that plots FROH mean per population ROH length by genome length * **Hetero.R** - script that plots heterozygosity outputs * **Genetic Load Plots.Rmd** - script that plots Lof frequency * **Plot_Nuc_Div copy.R** - script that plots Nuc Div * **Plot_Config.R** - script that plots manhattan figure of FST outliersmore » « less
-
Abstract: Overall summary This repository primarily hosts files that contain the data necessary for generating the figures in "Bridging the Prandtl number gap: 3D simulations of thermohaline convection in astrophysical regimes," a manuscript accepted for publication in The Astrophysical Journal Letters. The code in this GitHub repository, which also includes the code for generating this data, can then be used to generate the figures from this data. The contents of the GitHub repository are included here for convenience. File formats To preserve the directory structures assumed by scripts that generate figures from data, all data files are in datafiles.tar.gz, which must first be unpacked. Most of the data is in .h5 files (using the HDF5 file format), which contain the outputs of simulations run for the manuscript. As described below, the data behind Figure 1 includes only simulation inputs, i.e., the parameters chosen for each simulation -- these quantities are contained in .cfg files, which can be read as plain text. Each individual simulation/run for this manuscript has a name, with inputs given in config_files/RUN_NAME.cfg (plain text) or config_files/hydro_LPN/RUN_NAME.cfg for the Pr=0 cases, and .h5 (HDF5) outputs given in various subdirectories of runs/RUN_NAME/ or runs/hydro_LPN/RUN_NAME/ for the Pr=0 case. For all .h5 files, the relevant data is found in the tasks/ group, while scales/ contains independent variables (t, x, y, z) and related quantities (e.g., timestep number, timestep size). These .h5 files were generated by Dedalus v2, as described in the Dedalus tutorial here. 1D data (timetraces) for each run is found in .../RUN_NAME/scalars/scalars_s*.h5 (where scalars_s1.h5 contains the first several timesteps of data, scalars_s2.h5 -- if present -- contains the next several timesteps, etc.), while 2D data (snapshots/slices) for a small selection of runs is found in .../RUN_NAME/slices/slices_s*_w_ywall.h5. If you want to work with this data "from scratch", i.e., with your own scripts rather than using/manipulating the scripts provided here, you will need to use a package that can read HDF5 files, such as h5py (link) if you are using python. The .cfg files are all plain text, where input parameters (e.g., domain sizes, resolutions) are specified by INPUT_PARAMETER = VALUE separated by newlines. Note that all data is unitless, having been nondimensionalized as described in Section 3 of the manuscript. Also note that some .cfg files and/or runs/RUN_NAME/ subdirectories exist for runs for which no data is included. These "ghost simulations" were run in earlier stages of this work but ultimately not included in the manuscript. To get a list of the runs that are included, run the script check_BGS13.py, which will print the full list of simulations included in the figure. Users who look closely at the hydro_DDC_... .py Dedalus scripts will notice that more data was generated by these simulations than eventually made it into the manuscript (including 1D profiles and checkpoints). These other data files, being unnecessary for the manuscript, are not being maintained long term and are not included in this repository, but may be procurable upon reasonable request to the author. File descriptions The description below goes through each figure and lists the data/files associated with the figure and the files that are used to create the figure from the data. The files for generating the data are hydro_DDC_IVP.py and hydro_DDC_IVP_LPN.py, whose uses are demonstrated in the corresponding .pbs scripts (which are meant to be run on NASA's Pleiades cluster, or a computing cluster with similar job submission/queueing software). Note that these two hydro_DDC_ ... .py scripts require v2 of the Dedalus python package installed, and all its associated dependencies. You can find the GitHub repo for Dedalus v2 here, and the documentation and installation instructions here. Note that if you want to use the scripts in this repository to regenerate the data, you need to ensure you are installing and using Dedalus v2, not the latest v3. Figure 1 Data for Figure 1 The data necessary for Figure 1 is contained in config_files/RUN_NAME.cfg, where RUN_NAME is the assigned name of the various simulations that were run to generate the data for this manuscript. Files for Figure 1 From these files, Figure 1 can be recreated by running R0_tau_diagram.py, a python script that requires python 3.*, numpy, and matplotlib, in addition to various standard python modules. Note that this script assumes that the data is in the same file structure as in this repository. Figure 2 Data for Figure 2 The data necessary for Figure 2 is contained in the following files: runs/eps0p1_tau5e-7_Pr1e-6_2z/slices/slices_s11_w_ywall.h5 runs/eps10_tau5e-7_Pr1e-6_hres/slices/slices_s4_w_ywall.h5 runs/eps300_tau5e-7_Pr1e-6_vvhresx1p5/slices/slices_s5_w_ywall.h5 Files for Figure 2 From these files, Figure 2 can be recreated by running plot_w_ywall_comparison.py, a python script that requires python 3.*, numpy, matplotlib, and h5py, in addition to standard python modules. Note that this script assumes that the data is in the same file structure as in this repository. Figure 3 Data for Figure 3 The data necessary for Figure 3 is contained in runs/RUN_NAME/scalars/scalars_s*.h5, for Pr > 0 runs, and runs/hydro_LPN/RUN_NAME/scalars/scalars_s*.h5, for Pr = 0 runs Files for Figure 3 From these files, Figure 3 can be recreated by running check_BGS13.py, a python script that requires python 3.*, numpy, matplotlib, and h5py, in addition to standard python modules. Note that this script assumes that the data is in the same file structure as in this repository.more » « less
-
This data set for the manuscript entitled "Computational Design of a Cyclic Peptide that Inhibits the CTLA4 Immune Checkpoint Pathway" includes all files needed to run and analyze the simulations of a designed cyclic peptide (Peptide 16) bound to CTLA4 in the putative most stable binding configuration, which is detailed in Figure 6 of the paper. These files include molecular model structure files (NAMD psf), force field parameter files (in CHARMM format), initial atomic coordinates (pdb format), NAMD configuration files, NAMD output including restart files (in binary NAMD format) and trajectories in dcd format (downsampled to 10 ns per frame). Analysis is controlled by shell scripts (Bash-compatible) that call VMD Tcl scripts. These scripts and their output are also included. Version: 1.0 Conventions Used in These Files =============================== Structure Files ---------------- - ctla4_P16_wat.psf (original NAMD (XPLOR?) format psf file including atom details (type, charge, mass), as well as definitions of bonds, angles, dihedrals, and impropers for each dipeptide.) - ctla4_P16.pdb (initial coordinates before equilibration) - repart_*.psf (same as the above psf files, but the masses of non-water hydrogen atoms have been repartitioned by VMD script repartitionMass.tcl) - rest*.pdb (same as the above pdb files, but atoms have been marked for restraints in NAMD. These files are generated by doPrep.sh, with restraints applied to different atoms.) Force Field Parameters ---------------------- CHARMM format parameter files: - par_all36m_prot.prm (CHARMM36m FF for proteins) - toppar_water_ions_prot.str (CHARMM water and ions with NBFIX parameters needed for protein and others commented out) Template NAMD Configuration Files --------------------------------- These contain the most commonly used simulation parameters. They are called by the other NAMD configuration files (which are in the namd/ subdirectory): - template_min.namd (minimization) - template_rest.namd (NPT equilibration with different parts of the protein restrained) - template_prod.namd (for the long production simulations) Minimization ------------- - namd/min_*.0.namd Restraints ------------- - namd/rest_*.0.namd (both CTLA4 binding site and peptide atoms are restrained) - namd/rest_*.1.namd (CA atoms of CTLA4 and all atoms of the peptide are restrained) - namd/rest_*.2.namd (all atoms of only the peptide are restrained) - namd/rest_*.3.namd (only CA atoms of only the peptide are restrained) - namd/rest_*.4.namd (no atoms are restrained) Production ------------- - namd/pro_*.{D,E,F}.0.namd Analysis ------------- - interaction.sh (Shell script for running analysis with VMD) - calcSeparationNearestAtom.tcl (Calculate the separation between two selections, taking the shortest distance between any pair of atoms spanning the two selections. Accounts for (orthogonal) periodic boundary conditions.) - useful.tcl (VMD Tcl script with a library of useful procs, used by the script above) - sep_*.dat (Output of the above analysis containing rows with two columns: time in nanoseconds and minimum distance in Å) Scripts ------- Files with the .sh extension can be found throughout. These usually provide the highest level control for submission of simulations and analysis. Look to these as a guide to what is happening.more » « less
An official website of the United States government
