- Front Matter
- Introduction
- Loading and running simuPOP
- Pythonic issues
from simuPOP import
* v.s.import simuPOP
- References and the
clone()
member function - Zero-based indexes, absolute and relative indexes
- Ranges and iterators
- Empty,
ALL_AVAIL
and dynamic values for parametersloci
,reps
,ancGen
andsubPops
- User-defined functions and class
WithArgs
* - Exception handling *
- Loading simuPOP modules
- Online help system
- Debug-related functions and operators *
- Random number generator *
- Pythonic issues
- Individuals and Populations
- Genotypic structure
- Individual
- Population
- Access and change individual genotype
- Subpopulations
- Virtual subpopulations and virtual splitters *
- Advanced virtual subpopulation splitters **
- Access individuals and their properties
- Attach arbitrary auxillary information using information fields
- Keep track of ancestral generations
- Change genotypic structure of a population
- Remove or extract individuals and subpopulations from a population
- Store arbitrary population information as population variables
- Save and load a population
- Import and export datasets in unsupported formats *
- simuPOP Operators
- Introduction to operators
- Initialization
- Expressions and statements
- Output a Python string (operator
PyOutput
) - Execute Python statements (operator
PyExec
) - Evaluate and output Python expressions (operator
PyEval
) - Expression and statement involving individual information fields (operator
InfoEval
andInfoExec
) * - Using functions in external modules in simuPOP expressions and statements
- Output a Python string (operator
- Demographic changes
- Genotype transmitters
- Generic genotype transmitters (operators
GenoTransmitter
,CloneGenoTransmitter
,MendelianGenoTransmitter
,SelfingGenoTransmitter
,HaplodiploidGenoTransmitter
, andMitochondrialGenoTransmitter
) * - Recombination (Operator
Recombinator
) - Gene conversion (Operator
Recombinator
) * - Tracking all recombination events **
- Generic genotype transmitters (operators
- Mutation
- Mutation models specified by rate matrixes (
MatrixMutator
) - k-allele mutation model (
KAlleleMutator
) - Diallelic mutation models (
SNPMutator
) - Nucleotide mutation models (
AcgtMutator
) - Mutation model for microsatellite markers (
StepwiseMutator
) - Simulating arbitrary mutation models using a hybrid mutator (
PyMutator
)* - Mixed mutation models (
MixedMutator
) ** - Context-dependent mutation models (
ContextMutator
)** - Manually-introduced mutations (
PointMutator
) - Apply mutation to (virtual) subpopulations *
- Allele mapping **
- Mutation rate and transition matrix of a
MatrixMutator
** - Infinite-sites model and other simulation techniques **
- Recording and tracing individual mutants **
- Mutation models specified by rate matrixes (
- Penetrance
- Quantitative trait
- Natural Selection
- Natural selection through the selection of parents
- Natural selection through the selection of offspring *
- Are two selection scenarios equivalent? **
- Map selector (operator
MapSelector
) - Multi-allele selector (operator
MaSelector
) - Multi-locus selection models (operator
MlSelector
) - A hybrid selector (operator
PySelector
) - Multi-locus random fitness effects (operator
PyMlSelector
) - Alternative implementations of natural selection
- Frequency dependent or dynamic selection pressure *
- Support for virtual subpopulations *
- Natural selection in heterogeneous mating schemes **
- Tagging operators
- Inheritance tagger (operator
InheritTagger
) - Summarize parental informatin fields (operator
SummaryTagger)
- Tracking parents (operator
ParentsTagger
) - Tracking index of offspring within families (operator
OffspringTagger
) - Assign unique IDs to individuals (operator
IdTagger
) - Tracking Pedigrees (operator
PedigreeTagger
) - A hybrid tagger (operator
PyTagger
) - Tagging that involves other parental information
- Inheritance tagger (operator
- Statistics calculation (operator
Stat
)- How statistics calculation works
defdict
datatype- Support for virtual subpopulations
- Counting individuals by sex and affection status
- Number of segregating and fixed sites
- Allele count and frequency
- Genotype count and frequency
- Homozygote and heterozygote count and frequency
- Haplotype count and frequency
- Summary statistics of information fields
- Linkage disequilibrium
- Genetic association
- population structure
- Hardy-Weinberg equilibrium test
- Measure of Inbreeding
- Effective population size
- Other statistics
- Support for sex and customized chromosome types
- Conditional operators
- Miscellaneous operators
- Hybrid and Python operators
- Evolving populations
- Mating Schemes
- Control the size of the offspring generation
- Advanced use of demographic functions *
- Determine the number of offspring during mating
- Dynamic population size determined by number of offspring *
- Determine sex of offspring
- Monogamous mating
- Polygamous mating
- Asexual random mating
- Mating in haplodiploid populations
- Self-fertilization
- Heterogeneous mating schemes *
- Conditional mating schemes
- Simulator
- Non-random and customized mating schemes *
- Age structured populations with overlapping generations **
- Tracing allelic lineage *
- Pedigrees
- Evolve a population following a specified pedigree structure **
- Simulation of mitochondrial DNAs (mtDNAs) *
- Mating Schemes
- Utility Modules
- Module
simuOpt
(functionsimuOpt.setOptions
) - Module
simuPOP.utils
- Trajectory simulation (classes
Trajectory
andTrajectorySimulator
) - Graphical or text-based progress bar (class
ProgressBar
) - Display population variables (function
viewVars
) - Import simuPOP population from files in
GENEPOP, PHYLIP
andFSTAT
formats (functionimportPopulation
) - Export simuPOP population to files in
STRUCTURE, GENEPOP
,FSTAT, Phylip, PED, MAP, MS,
andCSV
formats (functionexport
and operatorExporter
) - Export simuPOP population in csv format (function
saveCSV
, deprecated)
- Trajectory simulation (classes
- Module
simuPOP.demography
- Module
simuPOP.sampling
- Introduction
- Sampling individuals randomly (class
RandomSampler
, functionsdrawRandomSample
anddrawRandomSamples
) - Sampling cases and controls (class
CaseControlSampler
, functionsCaseControlSample
andCaseControlSamples
) - Sampling Pedigrees (functions
indexToID
andplotPedigree
) - Sampling affected sibpairs (class
AffectedSibpairSampler
, functionsdrawAffectedSibpairSample(s)
) - Sampling nuclear families (class
NuclearFamilySampler
, functionsdrawNuclearFamilySample
anddrawNuclearFamilySample
s) - Sampling three-generation families (class
ThreeGenFamilySampler
, functionsdrawThreeGenFamilySample and drawThreeGenFamilySamples
) - Sampling different types of samples (class
CombinedSampler
, functionsdrawCombinedSample
anddrawCombinedSamples
) - Sampling from subpopulations and virtual subpopulations *
- Module
simuPOP.gsl
- Module
- A real world example