Learn R Programming

dartR (version 2.9.9.5)

Importing and Analysing 'SNP' and 'Silicodart' Data Generated by Genome-Wide Restriction Fragment Analysis

Description

Functions are provided that facilitate the import and analysis of 'SNP' (single nucleotide polymorphism) and 'silicodart' (presence/absence) data. The main focus is on data generated by 'DarT' (Diversity Arrays Technology), however, data from other sequencing platforms can be used once 'SNP' or related fragment presence/absence data from any source is imported. Genetic datasets are stored in a derived 'genlight' format (package 'adegenet'), that allows for a very compact storage of data and metadata. Functions are available for importing and exporting of 'SNP' and 'silicodart' data, for reporting on and filtering on various criteria (e.g. 'CallRate', heterozygosity, reproducibility, maximum allele frequency). Additional functions are available for visualization (e.g. Principle Coordinate Analysis) and creating a spatial representation using maps. 'dartR' supports also the analysis of 3rd party software package such as 'newhybrid', 'structure', 'NeEstimator' and 'blast'. Since version 2.0.3 we also implemented simulation functions, that allow to forward simulate 'SNP' dynamics under different population and evolutionary dynamics. Comprehensive tutorials and support can be found at our 'github' repository: github.com/green-striped-gecko/dartR/. If you want to cite 'dartR', you find the information by typing citation('dartR') in the console.

Copy Link

Version

Install

install.packages('dartR')

Monthly Downloads

2,264

Version

2.9.9.5

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Bernd Gruber

Last Published

March 25th, 2025

Functions in dartR (2.9.9.5)

gl.basic.stats

Calculates basic statistics for each loci (Hs, Ho, Fis etc.)
gl.collapse

Collapses a distance matrix by amalgamating populations with pairwise fixed difference count less that a threshold
gl.assign.mahalanobis

Assign an individual of unknown provenance to population based on Mahalanobis Distance
gl.blast

Aligns nucleotides sequences against those present in a target database using blastn
gl.check.verbosity

Checks the current global verbosity
gl.colors

This is a helper function that supports the creation of color palettes for all plotting functions.
gl.assign.pca

Assign an individual of unknown provenance to population based on PCA
gl.check.wd

Checks the global working directory
gl.assign.pa

Eliminates populations as possible source populations for an individual of unknown provenance, using private alleles
gl.compliance.check

Checks a genlight object to see if it complies with dartR expectations and amends it to comply if necessary
gl.costdistances

Calculates cost distances for a given landscape (resistance matrix)
gl.dist.ind

Calculates a distance matrix for individuals defined in a genlight object
gl.dist.pop

Calculates a distance matrix for populations with SNP genotypes in a genlight object
gl.drop.pop

Removes specified populations from a dartR genlight object
gl.edit.recode.ind

Creates or edits individual (=specimen) names, creates a recode_ind file and applies the changes to a genlight object
gl.drop.loc

Removes specified loci from a dartR genlight object
gl.define.pop

Defines a new population in a genlight object for specified individuals
gl.drop.ind

Removes specified individuals from a dartR genlight object
gl.diagnostics.hwe

Provides descriptive stats and plots to diagnose potential problems with Hardy-Weinberg proportions
gl.diagnostics.sim

Comparing simulations against theoretical expectations
gl.filter.callrate

Filters loci or specimens in a genlight {adegenet} object based on call rate
gl.fdsim

Estimates the rate of false positives in a fixed difference analysis
gl.edit.recode.pop

Creates or edits and applies a population re-assignment table
gl.filter.heterozygosity

Filters individuals with average heterozygosity greater than a specified upper threshold or less than a specified lower threshold
gl.filter.hwe

Filters loci that show significant departure from Hardy-Weinberg Equilibrium
gl.filter.hamming

Filters loci based on pairwise Hamming distance between sequence tags
gl.filter.allna

Filters loci that are all NA across individuals and/or populations with all NA across loci
gl.filter.monomorphs

Filters monomorphic loci, including those with all NAs
gl.filter.taglength

Filters loci in a genlight {adegenet} object based on sequence tag length
gl.filter.secondaries

Filters loci that represent secondary SNPs in a genlight object
gl.fixed.diff

Generates a matrix of fixed differences and associated statistics for populations taken pairwise
gl.evanno

Creates an Evanno plot from a STRUCTURE run object
gl.filter.locmetric

Filters loci on the basis of numeric information stored in other$loc.metrics in a genlight {adegenet} object
gl.filter.rdepth

Filters loci based on counts of sequence tags scored at a locus (read depth)
gl.filter.maf

Filters loci on the basis of minor allele frequency (MAF) in a genlight adegenet object
gl.filter.pa

Filters loci that contain private (and fixed alleles) between two populations
gl.filter.reproducibility

Filters loci in a genlight {adegenet} object based on average repeatability of alleles at a locus
gl.filter.overshoot

Filters loci for which the SNP has been trimmed from the sequence tag along with the adaptor
gl.filter.parent.offspring

Filters putative parent offspring within a population
gl.impute

Imputates missing data
gl.grm

Calculates an identity by descent matrix
gl.grm.network

Represents a genomic relationship matrix (GRM) as a network
gl.install.vanilla.dartR

Installs all required packages for using all functions available in dartR
gl.keep.ind

Removes all but the specified individuals from a dartR genlight object
gl.join

Combines two genlight objects
gl.fst.pop

Calculates a pairwise Fst values for populations in a genlight object
gl.ld.distance

Plots linkage disequilibrium against distance by population disequilibrium patterns
gl.genleastcost

Performs least-cost path analysis based on a friction matrix
gl.list.reports

Prints dartR reports saved in tempdir
gl.load

Loads an object from compressed binary format produced by gl.save()
gl.keep.pop

Removes all but the specified populations from a dartR genlight object
gl.ld.haplotype

Visualize patterns of linkage disequilibrium and identification of haplotypes
gl.keep.loc

Removes all but the specified loci from a genlight object
gl.hwe.pop

Performs Hardy-Weinberg tests over loci and populations
gl.make.recode.pop

Creates a proforma recode_pop_table file for reassigning population names
gl.make.recode.ind

Creates a proforma recode_ind file for reassigning individual (=specimen) names
gl.filter.sexlinked

Filters loci that are sex linked
gl.ibd

Performs isolation by distance analysis
gl.outflank

Identifies loci under selection per population using the outflank method of Whitlock and Lotterhos (2015)
gl.plot.network

Represents a distance or dissimilarity matrix as a network
gl.plot.heatmap

Represents a distance matrix as a heatmap
gl.play.history

Replays the history and applies it to a genlight object
gl.plot.faststructure

Plots fastStructure analysis results (Q-matrix)
gl.pcoa

Ordination applied to genotypes in a genlight object (PCA), in an fd object, or to a distance matrix (PCoA)
gl.percent.freq

Generates percentage allele frequencies by locus and population
gl.map.structure

Maps a STRUCTURE plot using a genlight object
gl.map.interactive

Creates an interactive map (based on latlon) from a genlight object
gl.pcoa.plot

Bivariate or trivariate plot of the results of an ordination generated using gl.pcoa()
gl.read.silicodart

Imports presence/absence data from SilicoDArT to genlight {agegenet} format (ploidy=1)
gl.merge.pop

Merges two or more populations in a genlight object into one population
gl.read.vcf

Converts a vcf file into a genlight object
gl.nhybrids

Creates an input file for the program NewHybrids and runs it if NewHybrids is installed
gl.print.reports

Prints dartR reports saved in tempdir
gl.propShared

Calculates a similarity (distance) matrix for individuals on the proportion of shared alleles
gl.read.dart

Imports DArT data into dartR and converts it into a dartR genlight object
gl.read.fasta

Reads FASTA files and converts them to genlight object
gl.read.csv

Reads SNP data from a csv file into a genlight object
gl.random.snp

Randomly changes the allocation of 0's and 2's in a genlight object
gl.report.bases

Reports summary of base pair frequencies
gl.rename.pop

Renames a population in a genlight object
gl.recode.ind

Recodes individual (=specimen = sample) labels in a genlight object
gl.plot.structure

Plots STRUCTURE analysis results (Q-matrix)
gl.recalc.metrics

Recalculates locus metrics when individuals or populations are deleted from a genlight {adegenet} object
gl.report.hamming

Calculates the pairwise Hamming distance between DArT trimmed DNA sequences
gl.recode.pop

Recodes population assignments in a genlight object
gl.reassign.pop

Assigns an individual metric as pop in a genlight {adegenet} object
gl.report.fstat

Reports various statistics of genetic differentiation between populations with confident intervals
gl.print.history

Prints history of a genlight object
gl.report.callrate

Reports summary of Call Rate for loci or individuals
gl.report.diversity

Calculates diversity indexes for SNPs
gl.report.locmetric

Reports summary of the slot $other$loc.metrics
gl.report.ld.map

Calculates pairwise linkage disequilibrium by population
gl.report.heterozygosity

Reports observed, expected and unbiased heterozygosities and FIS (inbreeding coefficient) by population or by individual from SNP data
gl.report.overshoot

Reports loci for which the SNP has been trimmed from the sequence tag along with the adaptor
gl.report.pa

Reports private alleles (and fixed alleles) per pair of populations
gl.report.maf

Reports minor allele frequency (MAF) for each locus in a SNP dataset
gl.report.monomorphs

Reports monomorphic loci
gl.report.parent.offspring

Identifies putative parent offspring within a population
gl.report.rdepth

Reports summary of Read Depth for each locus
gl.report.hwe

Reports departure from Hardy-Weinberg proportions
gl.report.secondaries

Reports loci containing secondary SNPs in sequence tags and calculates number of invariant sites
gl.report.taglength

Reports summary of sequence tag length across loci
gl.report.sexlinked

Identifies loci that are sex linked
gl.run.faststructure

Runs a faststructure analysis using a genlight object
gl.save

Saves an object in compressed binary format for later rapid retrieval
gl.select.colors

Selects colors from one of several palettes and output as a vector
gl.report.replicates

Identify replicated individuals
gl.run.structure

Runs a STRUCTURE analysis using a genlight object
gl.sample

Samples individuals from populations
gl.report.reproducibility

Reports summary of RepAvg (repeatability averaged over both alleles for each locus) or reproducibility (repeatability of the scores for fragment presence/absence)
gl.sim.WF.table

Creates the reference table for running gl.sim.WF.run
gl.sfs

Creates a site frequency spectrum based on a dartR or genlight object
gl.sim.emigration

Simulates emigration between populations
gl.sim.WF.run

Runs Wright-Fisher simulations
gl.sim.ind

Simulates individuals based on the allele frequencies provided via a genlight object.
gl.select.shapes

Selects shapes from the base R shape palette and outputs as a vector
gl.sim.mutate

Simulates mutations within a genlight object
gl.sim.offspring

Simulates a specified number of offspring based on alleles provided by potential father(s) and mother(s)
gl.set.verbosity

Sets the default verbosity level
gl.sim.create_dispersal

Creates a dispersal file as input for the function gl.sim.WF.run
gl.write.csv

Writes out data from a genlight object to csv file
gl.smearplot

Smear plot of SNP or presence/absence (SilicoDArT) data
gl2bpp

Converts a genlight object into a format suitable for input to the BPP program
gl.test.heterozygosity

Tests the difference in heterozygosity between populations taken pairwise
gl2dartR

Convert a genlight object to a dartR object
gl.sort

re-sorts genlight objects
gl.spatial.autoCorr

Spatial autocorrelation following Smouse and Peakall 1999
gl.subsample.loci

Subsamples n loci from a genlight object and return it as a genlight object
gl.tree.nj

Outputs an nj tree to summarize genetic similarity among populations
gl2genalex

Converts a genlight object into a format suitable for input to genalex
gl2fasta

Concatenates DArT trimmed sequences and outputs a FASTA file
gl2gds

Converts a genlight object into gds format
gl2faststructure

Converts a genlight object into faststructure format (to run faststructure elsewhere)
gl2bayescan

Converts a genlight object into a format suitable for input to Bayescan
gl2demerelate

Creates a dataframe suitable for input to package {Demerelate} from a genlight {adegenet} object
gl2eigenstrat

Converts a genlight object into eigenstrat format
gl2svdquartets

Converts a genlight object to nexus format PAUP SVDquartets
gl2treemix

Converts a genlight object to a treemix input file
gl2snapp

Converts a genlight object to nexus format suitable for phylogenetic analysis by SNAPP (via BEAUti)
gl2geno

Converts a genlight object to geno format from package LEA
gl2genepop

Converts a genlight object into genepop format (and file)
gl2structure

Converts a genlight object to STRUCTURE formatted files
gl2hiphop

Converts a genlight objects into hiphop format
gl2gi

Converts a genlight object to genind object
gl2plink

Converts a genlight object into PLINK format
gl2phylip

Creates a Phylip input distance matrix from a genlight (SNP) {adegenet} object
gl2vcf

Converts a genlight object into vcf format
interactive_reference

Shiny app for the input of the reference table for the simulations
gl2shp

Converts a genlight object to ESRI shapefiles or kml files
gl2sfs

Converts a genlight object into a sfs input file
rbind.dartR

adjust rbind for dartR
gl2sa

Converts genlight objects to the format used in the SNPassoc package
possums.gl

A simulated genlight object created to run a landscape genetic example
utils.basic.stats

Calculates mean observed heterozygosity, mean expected heterozygosity and Fis per locus, per population and various population differentiation measures
gl2related

Converts a genlight object to format suitable to be run with Coancestry
platy

Example data set as text file to be imported into a genlight object
testset.gl

A genlight object created via the gl.read.dart function
testset_SNPs_2Row

Testfile in DArT format (as provided by DArT)
testset_metadata

Metadata file. Can be integrated via the dart2genlight function.
utils.dist.binary

Calculates a distance matrix for individuals defined in a dartR genlight object using binary P/A data (SilicoDArT)
testset.gs

A genlight object created via the gl.read.silicodart function
utils.assignment_3

Population assignment probabilities
utils.assignment_4

Population assignment probabilities
[,dartR,ANY,ANY,ANY-method

indexing dartR objects correctly...
utils.assignment

Population assignment probabilities
interactive_sim_run

Shiny app for the input of the simulations variables
testset_pop_recode

Recode file to be used with the function.
is.fixed

Tests if two populations are fixed at a given locus
utils.assignment_2

Population assignment probabilities
utils.dart2genlight

Converts DarT to genlight.
theme_dartR

dartR theme
utils.clumpp

Functions from package starmie for merging Q matrices from Structure runs using the CLUMPP algorithms.
utils.dist.ind.snp

Calculates a distance matrix for individuals defined in a dartR genlight object using SNP data (DArTseq)
utils.flag.start

A utility script to flag the start of a script
utils.hamming

Calculates the Hamming distance between two DArT trimmed DNA sequences
utils.outflank

OutFLANK: An Fst outlier approach by Mike Whitlock and Katie Lotterhos, University of British Columbia.
utils.plot.save

An internal function to save a ggplot object to disk in RDS binary format
utils.read.dart

utility function to read in DArT data
utils.outflank.plotter

Plotting functions for Fst distributions after OutFLANK
utils.check.datatype

Utility function to check the class of an object passed to a function
utils.het.pop

Calculates expected mean expected heterozygosity per population
utils.recalc.callrate

A utility script to recalculate the callrate by locus after some populations have been deleted
utils.recalc.freqhets

A utility script to recalculate the frequency of the heterozygous SNPs by locus after some populations have been deleted
utils.recalc.freqhomref

A utility script to recalculate the frequency of the homozygous reference SNP by locus after some populations have been deleted
utils.structure.evanno

Util function for evanno plots
utils.recalc.freqhomsnp

A utility script to recalculate the frequency of the homozygous alternate SNP by locus after some populations have been deleted
utils.recalc.maf

A utility script to recalculate the minor allele frequency by locus, typically after some populations have been deleted
utils.jackknife

Conducts jackknife resampling using a genlight object
utils.recalc.avgpic

A utility script to recalculate the OneRatioRef, OneRatioSnp, PICRef, PICSnp, and AvgPIC by locus after some individuals or populations have been deleted.
utils.structure.genind2gtypes

structure util functions
utils.structure.run

Utility function to run Structure
utils.n.var.invariant

A utility script to calculate the number of variant and invariant sites by locus
utils.outflank.MakeDiploidFSTMat

Creates OutFLANK input file from individual genotype info.
utils.spautocor

Spatial autocorrelation coefficient calculations
zzz

Setting up the package
utils.reset.flags

A utility script to reset to FALSE (or TRUE) the locus metric flags after some individuals or populations have been deleted.
bandicoot.gl

A genlight object created via the read.dart functions
gl.allele.freq

Generates percentage allele frequencies by locus and population
gi2gl

Converts a genind object into a genlight object
gl.Ho

Estimates observed Heterozygosity
gl.assign.grm

Population assignment using grm
gl.amova

Performs AMOVA using genlight data
cbind.dartR

adjust cbind for dartR
gl.He

Estimates expected Heterozygosity
gl.alf

Calculates allele frequency of the first and second allele for each loci A very simple function to report allele frequencies
gl.LDNe

Estimates effective population size using the Linkage Disequilibrium method based on NeEstimator (V2)