Overview
This dataset accompanies a study that benchmarks an assembly-free k-mer workflow for species identification in Populus against a high-confidence SNP-based phylogenetic framework (202 individuals, 34 species). The k-mer method (BinDash) achieves 91 % monophyly and 99 % nearest-neighbor accuracy directly from raw sequencing reads, comparable to the SNP benchmark. Chloroplast genomes, by contrast, achieve only 3 % monophyly and 71 % nearest-neighbor accuracy due to pervasive cytonuclear discordance.
File Descriptions
Data Files
| File |
Description |
ld_filtered_snps_205.vcf.gz |
Curated all-species SNP dataset generated from 202 Populus individuals and 3 Salix outgroups (205 total). This dataset corresponds to the 34-species curated reference benchmark and the all-curated-species ML validation. Filtering criteria included QD < 10, FS > 60, MQ < 40, SOR > 3, MQRankSum < -12.5, ReadPosRankSum < -8, depth filtering, biallelic sites, and no missing data. |
ld_filtered_snps_205.vcf.gz.tbi |
Tabix index for ld_filtered_snps_205.vcf.gz. |
ld_filtered_snps_188.vcf.gz |
Non-hybrid backbone SNP dataset generated from 185 Populus individuals and 3 Salix outgroups (188 total), excluding the three documented hybrid-origin taxa (P. tomentosa, P. wulianensis, and P. ningshanica). This dataset corresponds to the 31-species non-hybrid backbone used for ML backbone validation and D-statistics-related analyses. |
ld_filtered_snps_188.vcf.gz.tbi |
Tabix index for ld_filtered_snps_188.vcf.gz. |
snp_dist.mdist |
Pairwise genetic distance matrix from the SNP dataset, computed with PLINK (--distance). Used as the benchmark for species monophyly assessment. |
snp_dist.mdist.id |
Sample IDs corresponding to rows/columns of snp_dist.mdist. |
snp_species_pair_distance_ranks.csv |
Ranked mean interspecific PLINK distances among species pairs in the curated benchmark. This file supports the summary reported in Table S8. |
kmer_matrix.txt |
Pairwise Mash distance matrix generated by BinDash (k=31, bbits=64, sketchsize=512) from whole-genome sequencing reads. Used to evaluate the assembly-free k-mer identification workflow (Fig. 2, Fig. 3). |
dstat_species_sets.txt |
Species/population set file used for the Dsuite D-statistics analysis of the 31-species non-hybrid backbone. |
dstat_dsuite_tree_quartets.tsv |
Tree-based Dsuite quartet output used as the input for downstream D-statistic filtering. The analysis used the 31-species non-hybrid backbone and the ML topology as a bifurcating reference framework. |
dstat_species_pair_summary.tsv |
Species-pair summary of high-magnitude D-statistic signals, including supporting quartet counts and f4-ratio summaries. This table supports the pair-level interpretation of D-statistic results in the manuscript. |
dstat_filter_summary.tsv |
Summary of D-statistic filtering results, including total tests, significant tests, and high-magnitude threshold. |
dstat_focal_pair_overlap.tsv |
Check of whether the k-mer strict-monophyly failure pairs overlap with significant or high-magnitude excess-sharing species pairs. |
Scripts — SNP Calling Pipeline
Scripts are numbered 1–5 reflecting the sequential workflow from raw reads to the final filtered VCF.
| File |
Description |
snp_1-trim.sh |
Adapter removal and quality trimming of raw paired-end reads using Trimmomatic v0.39 (Phred33, ILLUMINACLIP 2:30:10:1:true, LEADING:20, TRAILING:20, SLIDINGWINDOW:4:15, MINLEN:36). |
snp_2-bwa_align.sh |
Alignment of trimmed reads to the P. trichocarpa v4.1 reference genome using BWA-MEM, followed by SAM-to-BAM conversion and coordinate sorting with SAMtools. |
snp_3-create_rg_and_index.sh |
Addition of read groups (GATK AddOrReplaceReadGroups) and BAM indexing (SAMtools) for each sample. |
snp_4-run_haplotypecaller.sh |
Per-sample variant calling in GVCF mode using GATK HaplotypeCaller. |
snp_5-fastmerge.sh |
Joint genotyping via a scatter-gather workflow (GATK SplitIntervals, GenomicsDBImport, GenotypeGVCFs), followed by SNP selection, hard filtering (QD, FS, MQ, SOR, MQRankSum, ReadPosRankSum), depth-based filtering, and retention of biallelic sites with no missing data. |
snp_ld_admixture.sh |
LD pruning with PLINK (window 100, step 50, r2 < 0.2) and population structure analysis with ADMIXTURE (K = 3–18) for hybrid characterization (Fig. 4, Figs. S5–S7). |
Scripts — K-mer Analysis
| File |
Description |
kmer_batch_analyze.py |
Batch evaluation of BinDash distance matrices using four scoring systems: (1) Nearest-Neighbor, (2) top-3 scoring, (3) Group-Average, and (4) Monophyly based on max intra- vs. min inter-species distances. Used for parameter optimization and sequencing depth tests (Tables S3–S6). |
Scripts — D-statistics / ABBA-BABA Analysis
| File |
Description |
|
|
dstat_1_filter_quartets.py |
Filters Dsuite quartet-level ABBA-BABA results using ` |
Z |
>= 3, BH-FDR-adjusted p <= 0.05`, and the upper 10 % of absolute f4-ratio values among significant quartets. Outputs significant quartets, high-magnitude quartets, and a filtering summary. |
dstat_2_summarize_species_pairs.py |
Aggregates significant D-statistic quartets into unordered species-pair summaries using the sign of D to identify the excess-sharing pair (D > 0: P2--P3; D < 0: P1--P3). Also reports whether focal k-mer failure-associated pairs overlap with significant or high-magnitude D-statistic signals. |
|
|
Scripts — SNP Distance Ranking
| File |
Description |
plink_rank_species_pair_distances.py |
Ranks all interspecific species pairs by mean PLINK 1-IBS distance using the SNP distance matrix and sample-to-species mapping from the manuscript. This script generated snp_species_pair_distance_ranks.csv, which supports Table S8. |
Scripts — Chloroplast Assembly
| File |
Description |
chloroplast_assembly.sh |
De novo chloroplast genome assembly from paired-end reads using GetOrganelle v1.7.7.1 (seed: P. alba plastome NC_008235.1, -F embplant_pt, -R 15, -k 21,45,65,85,105). |
Software and Versions
| Software |
Version |
Purpose |
| Trimmomatic |
0.39 |
Read quality trimming |
| BWA |
0.7.18 |
Read alignment |
| SAMtools |
1.21 |
BAM processing |
| GATK |
4+ |
Variant calling and filtering |
| BCFtools |
— |
VCF manipulation |
| PLINK |
1.9 |
LD pruning, distance matrix |
| ADMIXTURE |
1.3 |
Population structure |
| BinDash |
2.2.0 |
K-mer distance estimation |
| Dsuite |
— |
ABBA-BABA D-statistics |
| GetOrganelle |
1.7.7.1 |
Chloroplast assembly |
| GNU Parallel |
— |
Job parallelization |
| Python |
3 |
Batch analysis |
| R |
4.4.2 |
Tree construction (ape, ggtree) |
Notes
- Shell scripts require editing the variable section at the top to specify input/output paths, reference genome, and thread/job settings before execution.
- The deposited Python scripts use relative/default paths for the accompanying files when possible. If run from another directory, specify input and output paths explicitly with the command-line options.
- The D-statistics deposit includes the original Dsuite quartet output, parsing scripts, and the key summary tables used in the manuscript. Larger intermediate derived tables, such as all significant quartets and all high-magnitude quartets, can be regenerated from
dstat_dsuite_tree_quartets.tsv using the deposited scripts.
- The reference genome used is Populus trichocarpa v4.1 (GCF_000002775.5).
- Individual sequence accession IDs are provided in Supplementary Table S1 of the associated publication.
- "NA" cells are used to indicate missing data or "Not Applicable"