
This page lists Change logs of all official simuPOP releases. If you would like to see what has been changed since the last official release, you can check the ChangeLog of the development version of simuPOP.
On this page... (show)
- 1. version 0.9.8 - Rev 3074 (Oct 28, 2009)
- 2. version 0.9.7 - Rev 2983 (Sep 26, 2009)
- 3. version 0.9.6 - Rev 2849 (Aug 6, 2009)
- 4. version 0.9.5 - Revision 2740 (Jun 22, 2009)
- 5. version 0.9.4 - (Rev 2674) May 20, 2009
- 6. version 0.9.3 - (Rev 2601) Apr 3, 2009
- 7. version 0.9.2 - (Rev 2472) Feb 20, 2009
- 8. Version 0.9.1 - (Rev 2330) Jan 13, 2009
- 9. Version 0.9.0 - (Rev 2130) Dec 15, 2008 (tagged, but not publically released)
- 10. Version 0.8.9 - (Rev 1948) Nov 18, 2008 (tagged, but not publically released)
- 11. Version 0.8.8 - (Rev 1787) Oct 24, 2008
- 12. Version 0.8.7 - (Rev 1755) Aug 29, 2008
- 13. Version 0.8.6 - (Rev 1666) Jun 20, 2008
- 14. Version 0.8.5 - (Rev 1488) Apr 3, 2008
- 15. Version 0.8.4 - (Rev 1456) Mar 8, 2008
- 16. Version 0.8.3 - (Rev 1412) Jan 17, 2008
- 17. Version 0.8.2 - (Rev 1370) Nov 19, 2007
- 18. Version 0.8.1 - (Rev 1254) Oct 05, 2007
- 19. Version 0.8.0 - (Rev 1215) Aug 14, 2007
- 20. Version 0.7.11 - (Rev 1133) July 26, 2007
- 21. Version 0.7.10 - (Rev 987) May 20, 2007
- 22. Version 0.7.9 - (Rev 885) Apr 3, 2007
- 23. Version 0.7.8 - (Rev 833) Mar 2, 2007
- 24. Version 0.7.7 - (Rev 786) Feb 1, 2007
- 25. Version 0.7.6 - (Rev 674) Dec 25, 2006
- 26. Version 0.7.5 - (Rev 576) Dec 8, 2006
- 27. Version 0.7.4 - (Rev 518) Nov 5, 2006
- 28. Version 0.7.3 - (Rev 470) Oct 2, 2006
- 29. Version 0.7.2 - (Rev 412) - Not publically released
- 30. Version 0.7.1 - (Rev 378) - Aug 20, 2006
- 31. Version 0.7.0 - (Release 0.6.15, July, 2006)
- 32. Version 0.6.14 - (Rev 341) - June 06, 2006
- 33. Version 0.6.13 - (Rev 278) - Apr. 20, 2006
- 34. Version 0.6.12 - (Rev 186) - Feb 18, 2006
- 35. Version 0.6.11 - (Rev 119) - Jan 19, 2006
- 36. Version 0.6.10 (Rev90) - Dec, 20th, 2005
- 37. Version 0.6.9 (Rev71) - Nov, 19th, 2005
- 38. Version 0.6.8 - Sep 21st, 2005
- 39. Version 0.6.7 - Aug, 1st, 2005
- 40. Version 0.6.6 - various GUI / wxPython improvements. Not released.
- 41. Version 0.6.5 - userfriendliness (simuPOP scripts). May 1st, 2005
- 42. Version 0.6.4 - efficiency and usability. Not released
- 43. Version 0.6.3 - Ancestral populations Apr. 5, 2005
- 44. Version 0.6.2 - better usage of vars Mar, 23, 2005
- 45. Version 0.6.1 * usability and real applications Feb, 12, 2005
- 46. Version 0.6.0 - validation and distribution, Jan, 1st, 2005
- 47. Version 0.5.9 - performance boost, dynamic population size Dec. 12th, 2004
- 48. Version 0.5.8 - selection Dec. 5nd, 2004
- 49. Version 0.5.7 - serialization Nov. 24, 2004
- 50. Version 0.5.6 - expression. Nov. 19, 2004
- 51. Version 0.5.5, - more clean up, more examples. Nov. 10, 2004
- 52. Version 0.5.4, Nov. 7, 2004 - clean the code. still working on the code base
- 53. Version 0.5.3 Oct 10, 2004 -- some interesting new features
- 54. Version 0.5.2 -- windows port, smaller distribution, better help()
- 55. Version 0.5.1
- 56. Version 0.5
- 57. Version 0.1 Friday 18, June 2004
1. version 0.9.8 - Rev 3074 (Oct 28, 2009)
- BUG: Fix a memory leak bug in
pyParentsChooser. - CHG:
mapSelectornow accepts a dictionary of tuples, instead of strings. - CHG:
mapPenetrancenow accepts a dictionary of tuples, instead of strings. - CHG: Remove function
individual.intInfo. - CHG:
cloneGenoTransmitteraccepts a list of information fields to be copied from parents to offspring. Default to all information fields. - CHG: Remove the stage feature of operators. Instead, operators should be passed explicitly to parameters preOps, duringOps, postOps of the evolve function. The existing preOps and postOps parameters are renamed to initOps and finalOps.
- CHG: The second parameter of a demographic function is now the parental population itself, instead of parental population sizes.
- CHG: Treat
ancGeninpopulation.indByIDas suggested generation and will continue to check other generations if an individual with specified ID is not found in the suggested generation. - CHG: separate additional fields from
infoFieldstoparamFieldsin operatorpySelector. - CHG: Change parameter
selectorstoopsin operatorpySelector. - CHG: Add support for virtual subpopulations to all penetrance
operators. - CHG: Change parameter subPop to subPops in mating schemes.
- CHG: Remove all quantitative trait opeartors except pyQuanTrait. Mofidy the interface of
pyQuanTraitso that it can handle multiple trait fields and be applied during mating. - CHG: More sampling operators and functions to submodule sampling.
- NEW: during-mating operators used in a mating scheme now supports parameters begin, step, end, at and reps.
- NEW: add parameter
vspMaptocombinedSplitterthat can define VSPs by union of VSPs. - NEW: add parameter ranges to
infoSplitter. - NEW: add
productSplitterthat define VSPs by intersections of VSPs. - NEW: allow access individual information fields as attributes.
- NEW: Add Chi-Squared distribution to the
RNG()class. Remove some rarely used memeber functions of this class. - NEW: Allow selectors to be applied during mating to allow for natural selection through the selection of offspring.
- NEW: Allow the specification of VSP names in splitters.
- NEW: Add parameter freq to operator initByValue.
- NEW: Add parameter
malePropto operator initSex. - NEW: Add support for haplodiploid population and sex chromosomes to mapSelector.
- NEW: Add support of haploid population to maSelector.
2. version 0.9.7 - Rev 2983 (Sep 26, 2009)
- CHG: Rename module simuUtil to simuPOP.utils, simuRPy to simuPOP.plotter.
- CHG: Rename class simuOpt.simuOpt to simuOpt.simuParam to avoid name conflict.
- CHG: Merge functions AlleleType(), Optimized(), simuVer(), simuRev() to ModuleInfo().
- CHG: move initSex() out of initByFreq and initByValue so initByFreq and initByValue no longer initialize sex by default.
- CHG: Change long allele module to 32 bits to simulate infinite-sites models.
- CHG: TurnOnDebug/turnOnDebug and TurnOffDebug/turnOffDebug now accept string instead of constants as input.
- CHG: Change how during mating operators are handled. Briefly, the rules have been simplifed to a): during mating operators in mating schemes are applied first. b): during mating operators in simulator.evolve are applied after. There is no difference between a regular operator and a genotype transmitter.
- CHG: Remove tagger. Expand and document inheritTagger.
- CHG: Remove parentTagger and tidy up parentsTagger.
- CHG: Revise trajectory simulation classes and functions. Adjust how controlledOffspringGenerator takes input.
- NEW: Add population.recodeAlleles to recode alleles.
- NEW: Allow the specification of locus-specific allele names. This affects functions population, population.addChrom, population.addChromFrom, population.recodeAlleles, population.addLoci, population.addLociFrom, and genotructure trait functions alleleName and alleleNames.
- NEW: Use AllAvail as default parameters for parameters loci, reps and subPops and use [] for its intended meaning: nothing.
- NEW: Add pedigreeTagger.
- NEW: Add operator initInfo and its function form InitInfo.
- NEW: Add operator summaryTagger.
- NEW: Add function population.indByID to identify individuals, even ancestors, by individual ID.
- NEW: Add support for VSP to pointMutator.
- BUG: Fix a population.extract() bug with the copy of existing information fields when parameter pedFields is specified.
- BUG: Install to dist-packages instead of built-in site-packages under ubuntu/python2.6.
- BUG: Fix a bug in Dumper() when ancestral generations have different numbers of subpopulations than the current generation.
- BUG: Fix a bug for the calculation of Armitage trend tests.
- BUG: Fix the save/load of default dictionaries.
3. version 0.9.6 - Rev 2849 (Aug 6, 2009)
- NEW: Add a global function closeOutput to close '>>' or '>>>' output files used in the function form of an operator.
- BUG: Fix a memory leak of LoadPopulation.
- CHG: Rename function rng() to GetRNG() for consistent naming of functions.
- NEW: Merge overloaded functions of population::setIndInfo, population::indInfo, population::individual, population::individuals, population::vars, simulator::vars, individual::setGenotype, individual::genotype, individual::allele, individual::setAllele, individual::alleleChar, individual::info, individual::setInfo to one function with more complex input type and default parameter. This change allows keyword arguments for all these functions.
- CHG: the parameter order of function population::ancestor has been changed!
- CHG: stat(popSize=True) accepts subPops parameter. It now output 'popSize' (a number), 'subPopSize' (a list) and subPop[vsp]['popSize'] (a number). By default, it does not calculate population size for (virtual) subpopulations.
- CHG: Introduce parameter vars to operator stator. It will be used to replace all blah_param parameters.
- CHG: Remove numOfAllele parameter of stat() operator.
- CHG: Parameter subPops now treats [] as no subpopulation, and accept AllSubPops as its usual default parameter.
- CHG: Rename parameter rep to reps in all operators. This parameter now treats input [] as no replicate and use AllReps as its default input.
- CHG: Remove expHetero statistics. Remove allele-level heterozygosity variable. Rename heterozygosity variables.
- CHG: statGenoFreq now uses tuple (instead of string) as genotype indexes. Parameter phase has been removed.
- CHG: statHaploFreq now uses tuple (instead of string) as loci and haplotype indexes.
- NEW: Add statInfo to calculate sum, mean, var, max and min of information fields.
- CHG: rewrite statLD and change how primary alleles are handled. Please refer to user's guide for details.
- NEW: add relationship SpouseAndOffspring to pedigree::locateRelatives.
- NEW: add parameter pedFields to population::extract.
- NEW: Introduce new type defdict for allele, genotype and haplotype counts and frequencies.
- CHG: Disallow the use of nested list for parameter lociPos of population().
- NEW: Allow single-form parameter for parameters of function population().
- CHG: Rename paramter Fst of operator stat to structure, change associated variable names. This leaves room for the implementation of other structure related statistics.
- NEW: Add Nei's 1973 Gst statistics.
- NEW: Add parameter suffix to operator stator.
4. version 0.9.5 - Revision 2740 (Jun 22, 2009)
- NEW: Supports SWIG 1.3.39.
- BUG: Fix a bug when using simuRPy for R version <= 0.9.0 under windows.
- CHG: Do not set default loci name to "locX-Y". Empty string will be returned if lociNames are not set. This also changes the behavior of functions locusByName and lociByNames.
- CHG: Do not set default subpopulation name to "Unnamed". Empty string will be returned if lociNames are not set. population::subPopName() is changed accordingly.
- NEW: Add matrixMutator and an early form of actgMutator.
- NEW: Add mapIn and mapOut feature to all mutators.
- NEW: Add parameter name to population::mergeSubPops and operator mergeSubPops
- NEW: Add parameter names to population::splitSubPop and operator splitSubPops.
- NEW: Allow parameter infoFields to take single form values. Remove population::addInfoField() because addInfoFields() now accepts single input.
- BUG: Fix a bug with persistent dirty signature.
- CHG: Replace parameter maxAllele in operator kamMutator with k (= maxAllele + 1), and rename parameter rate to rates.
- CHG: Merge operator gsmMutator to smmMutator and pyMutator.
- CHG: Rename parameter rate to rates for operator recombinator.
- NEW: Mutators now supports virtual subpopulations (parameter VSP).
- NEW: ifElse operator now accepts lists of ifOps and elseOps.
- NEW: Allow single form input for operator lists.
- CHG: Operators are now copied to simulator::evolve. This makes counting functions such as recombinator::recCount useless so they are removed.
- NEW: Add a hierarchical island migration model to simuUtil.py.
- NEW: Add a mixedMutator to simulated mixed mutation models.
- NEW: Move trajectory simulation functions out of the simuPOP core. They will be reimplemented in simuUtil.
- NEW: Add a context-dependent mutator contextMutator and context support for pyMutator.
- NEW: Allow mitochondrialGenoTransmitter to be used in haploid populations.
- NEW: Add links to download examples to the online user's guide.
5. version 0.9.4 - (Rev 2674) May 20, 2009
- BUG: Fix the handling of proportions in splitSubPops.
- BUG: Fix randomParentChooser when there is subpopulation structure.
- BUG: Fix a bug that concerns mutation at invalid (unused) locations.
- NEW: Allow Python parent choosers to return individual(s) directly.
- CHG: Remove image plottype from varPlotter, with simplified code and enhanced functions.
- NEW: Add scatterPlotter that plots information fields.
- NEW: Add infoPlotter and two special cases histPlotter and qqPlotter.
- NEW: Add boxPlotter to plot boxplots of information fields.
- NEW: Introducing derivedArgs with expression values.
6. version 0.9.3 - (Rev 2601) Apr 3, 2009
- BUG: Fix a bug with population::removeLoci when given keep loci are not in order.
- NEW: Prevent the use of greater than one probabilities in Bernulli trails.
- NEW: Add a Tkinter implementation for simuProgress.
- BUG: Fix a bug where subpopulation names of merged population are not properly merged.
- NEW: Allow specifying non-string values in 'chooseFrom' and 'chooseOneOf' in simuOpt parameter specification.
- NEW: Allow operators to output to a Python function.
- NEW: Allow the use of double-click to open a browse dialog for file and directory input in simuOpt.
- BUG: Fix a memory leak bug related to infoEval and infoExec. Optimize infoExec for some simple statements.
- CHG: change parameter formOffGenotype of pyOperator to isTransmitter as a result of merging concepts 'primary during mating operator' and 'genotype transmitter'.
- CHG: Move all scripts under the scripts directory to online cookbook.
- CHG: Change relatedness calculations in operator stat.
- NEW: Add calculation of HWE p-value to the stat operator.
- NEW: Test individual index in population::removeIndividuals
- BUG: Fix a bug when no subpopulation is given in splitSubPops.
- CHG: Merge stat(association) to stat(LD), in preparation for case-control association tests.
- NEW: (experimental) Add case/control association chisq test to stat.
- NEW: (experimental) Add Tajima's pi statistics (mean pairwise difference) to the stat() operator.
7. version 0.9.2 - (Rev 2472) Feb 20, 2009
- NEW: Allow populations in a simulator to have different genotype structure.
- CHG: A simulator can no longer access genotypic structure information.
- NEW: Add simulator::add to add new populations to a simulator.
- CHG: Remove simulator::addInfoField and other functions because they can be applied to individual populations.
- NEW: Allow the use of single form parameter in population::removeSubPops, removeIndividuals, addLoci, removeLoci and resize.
- BUG: Fix a bug in adding locus to a population without any locus.
- NEW: Alow the use of single form parameter in controlledOffspringGenerator. Handle single return value of allele frequency trajectory function.
- NEW: Rename parameter fromSubPop to subPops and toSubPop to toSubPops for migrator, for naming consistency.
- NEW: Add mode = ByIndInfo to migrator so that users can explicitly set migrate_to informatin field and migrate.
- NEW: Remove pyMigrator from the core. The varying migration rate migrator can be easily implemented in a Python operator. The indFunc mode is not at all useful because it can be done by a Python operator plus mode=ByIndInfo.
- NEW: Allow unordered lociPos specification in population(), lociNames will be rearranged accordingly.
- NEW: Allow single parameter to parameters loci, ploidy in initByValue and initByFreq.
- NEW: Remove parameter chrom from dumper(), allow single parameter input for parameter loci in this operator.
- NEW: Add pause operator to accept specified keys.
- CHG: Remove rarely used parameters preStmts and postStmts from operators pyEval and pyExec.
- CHG: Polish operator infoEval and infoExec (they now supports virtual subpopulations). Document them in detail in user's guide and reference manual.
- CHG: Remove hapMapUtil from the core. These functions belong more to the simuPOP cookbook than the core.
- CHG: Move scripts/loadHapMap to simuPOP online cookbook.
- CHG: Polish and document simuOpt. getParam function now belongs to the simuOpt class.
- CHG: Remove jump and jumpIfFalse from parameter specification.
- CHG: Replace --noDialog with --gui=False (and allow for values such as Tkinter).
- CHG: Polish operator splitSubPop, replace which to subPops, and add the feature to split subpopulations by information field. Rename this operator to splitSubPops.
- CHG: population::splitSubPop can no longer split by proportion. Please use operator splitSubPops and its function form SplitSubPops instead.
8. Version 0.9.1 - (Rev 2330) Jan 13, 2009
- NEW: Improve allele iterator so that
stat(alleleFreq)can handle chromosome x and y. - CHG: Raise an error when there is no male or female in a diploid parents chooser.
- CHG: Remove parameter
newSubPopSizeExprand renamenewSubPopSizetosubPopSize, andnewSubPopSizeFunctosubPopSizeFunc. - CHG: Merge parameters
subPopSizeandsubPopSizeFunc. This parameter can now take both a list and a function. - BUG: Fix population load/save under windows, add simulator equality test (
__cmp__). - CHG: Merge parameters
numOffspringFunc,numOffspringParamandmodetonumOffspringinoffspringGenerator. - CHG: Merge parameter
sexParamtosexModeinoffspringGenerator. - CHG: Rename mating scheme
binomialSelectiontorandomSelection. - CHG: Merge parameters
convProb,convModeandconvParamtoconvModeinrecombinator. - BUG: Fix option
shuffleOffspringinheteroMating(). - CHG: Change the default output of parentsTagger when only one parent is passed.
- CHG: Remove parameter
numParentsfromoffspringGeneratorand parent choosers. - CHG: Rename pyMating to homoMating. Remove unused parameters subPop and weight from heteroMating.
- NEW: Allow a demographic function to return a number if there is only one subpopulation.
- NEW: Allow pedigreeMating to set sex, affection status and some information fields from the pedigree object.
- NEW: Allow random parent(s) choosers to set name of information field fitness.
- CHG: Change interface for
pedigree::locateRelatives. RenamesetIndexOfRelativestotraceRelatives. - NEW: Allow replicate numbers in a simulator to refer to the last several active populations.
- CHG: Merge parameter output and outputExpr and use
'!expr'for the expression case. - NEW: Allow parameter
baseOperator::atto take a single number in addition to a list. - NEW: Disallow parameter alias
locusto parameter loci in penetrance, selection and quantitative trait operators. Allow loci to accept a number. - NEW: Support other device types in
varPlotter::saveAs. - NEW: dumper now supports virtual subpopulations.
9. Version 0.9.0 - (Rev 2130) Dec 15, 2008 (tagged, but not publically released)
- CHG: add population::setSubPopByIndInfo to allow flexible migration.
- CHG: migrator now uses an information field "migrate_to".
- CHG: Add function population::extract.
- CHG: Remove parameter ancGen from population::clone().
- NEW: Dump() also display information fields.
- NEW: Expose population::pushAndDiscard(pop) as population::push().
- NEW: Add parameter subPops to all operators.
- CHG: Move operators pySubset(), randomSample(), caseControlSample() and affectedSibpairSample from simuPOP core to simuUtil.py. Remove src/sampler.*.
- CHG: Remove infoTagger, sexTagger and affectionTagger and will replace them by pedigreeTagger.
- CHG: Remove population::removeEmptySubPops().
- NEW: Add support for subpopulation names.
- CHG: Remove intializer, spread and pyInit operators.
- CHG: Add parameter initSex to initByFreq and initByValue.
- NEW: Initializers now support virtual subpopulations.
- CHG: Recombiantor no longer supports recombination by sex, and haplodiploid chromosomes.
- CHG: Recombinator now supports different types of chromosomes.
- NEW: Add ops parameter to mating schemes.
- NEW: add mitochondrialGenoTransmitter.
- NEW: add population::updateInfoFieldsFrom.
- NEW: Add two examples in doc/cookbook, demonstrating the use of customized genotype transmitters and mitochondrialGenoTransmitter.
10. Version 0.8.9 - (Rev 1948) Nov 18, 2008 (tagged, but not publically released)
- DOC: Adjust reference output for simuPOP classes.
- CHG: Rename genoStruTrait::haplodiploid to isHaplodiploid.
- CHG: Rename genoStruTrait::sexChrom to hasSexChrom.
- CHG: Remove the maxAllele parameter of population.
- CHG: Remove outputHelper operator, which has been replaced by pyOutput.
- CHG: Remove read support for XML and Binary formats.
- CHG: Completely change the way sex chromosomes are handled, and add initial support for customized chromosome.
- CHG: Rename class vsp to vspID.
- CHG: Merge population::subPopSize and population::virtualSubPopSize.
- CHG: Change parameter of population::virtualSubPopName().
- CHG: Merge population::individuals(sp) and population::individuals(sp, vsp).
- CHG: Remove genoStruTrait::maxAllele(). Use MaxAllele() instead.
- CHG: Make pedigree a subclass of population and move population::locateRelatives and population::setRelativeIndex to this class.
- CHG: Temporarily disable all pedigree related features such as pedigree parent chooser, pedigree mating scheme, and all samplers.
- CHG: Rename population::useAncestralPop to population::useAncestralGen.
- CHG: Replace population::mergePopulation by population::addIndFromPop.
- CHG: Replace population::mergePopulationByLoci by population::addChromFromPop and population::addLociFromPop.
- CHG: Remove removeEmptySubPops parameter from population::mergeSubPops.
- CHG: Adjust interface to population::removeLoci.
- CHG: Adjust interface to population::removeSubPops.
- NEW: Allow indInfo, setInfo etc to access virtual subpopulation.
- CHG: Merge parameter virtualSubPop with subPop in mating schemes.
- NEW: Add simuProgress class to simuUtl.
- CHG: Remove simulator::applyOpToStoppedReps and simulator::stopIfOneRepStops
- NEW: Add StopEvolution exception and add simulator::stopIfOneRepStops to terminators.
- CHG: Remove operator terminator and continueIf.
- CHG: Reset file format number. No longer support previous file formats.
- NEW: add simulator::populations().
- NEW: Allow the use of multiple replicates for an operator. Remove REP_ALL (now []), and REP_LAST (now -1).
- CHG: Replace simulator::getPopulation by simulator::population and simulator::extract.
11. Version 0.8.8 - (Rev 1787) Oct 24, 2008
- CHG: Remove the replicate group feature.
- NEW: Allow mapSelector to work for all ploidy.
- DOC: Add keyword applicability to indicate applicability of operators.
- DOC: Document applicability of mating schemes.
- DOC: Fix bibtex references of user's guide and reference manual.
- CHG: indiviudal::arrGenotype, individual::arrInfo are marked obsolete and will be removed later.
- NEW: add individual::genotype (previously called arrGenotype) and individual::arrGenotype.
- CHG: genoStruTrait::arrLociPos is marked obsolete and will be removed later.
- CHG: population arrGenotype are marked obsolete and will be removed later.
- NEW: add population::genotype and population::setGenoytpe.
- BUG: Fix a bug in simuRPy.py that prevents varPlotter from plotting images.
- NEW: Support Python 2.6.
12. Version 0.8.7 - (Rev 1755) Aug 29, 2008
- NEW: allow the use of a list to specify a virtual subpopulation.
- NEW: change the return type of allele() so that no boolean value (True or False) will be returned from the binary modules.
- DOC: Correct documentation about variables related to genotype and heterozygote frequency.
- BUG: Fix a bug when a zero-sized virtual subpopulation has weight -1.
- BUG: Fix a bug when calculating expected heterozygosity with increased number of subpopulations.
- BUG: Fix a bug in controlled random mating where number of affected alleles are calculated from current instead of offspring populations.
- CHG: Only write (compressed if possible) in text format. simuPOP can still read binary and xml formats.
- BUG: Fix a bug that is related to the calculation of Fst in populations with unordered individuals.
- BUG: Fix activation and deactivation of combinedVirtualSplitter.
- BUG: Fix a bug that prevents simuPOP from compressing population files.
- NEW: Make boost 1.36.0 the default built-in boost version.
- BUG: Fix a carray genotype slice assignment bug under windows and python2.5.
- NEW: Stop distributing zlib1.dll by building zlib from source under windows.
13. Version 0.8.6 - (Rev 1666) Jun 20, 2008
- NEW: Polish command line arguments output in a configuration file.
- NEW: add a function ForwardFreqTrajetory to simulate trajectory of varying population size and selection pressure.
- BUG: Fix a minor simuOpt::saveConfigFile bug
- BUG: reveal RNG::randMultinomial and RNG::randMultinomialVar
- BUG: fix a bug that is related to reference count of loaded lists.
- CHG: allow sample size > population size (give a warning rather than error)
- CHG: allow recombination rate > 0.5 (adjust to 0.5 and issue a warning)
- NEW: allow longarg names in option jump and jumpIfFalse in simuOpt.py
- NEW: load fine-scale recombinate rate and set variable genDist in loaded HapMap populations. (loadHapMap.py)
- CHG: polish tkInter and wxPython parameter input dialog.
- CHG: Remove parameter order from information field related functions.
- BUG: Fix a information field + migration bug.
- NEW: add operation resizeSubPops.
- BUG: Fix a NuclearfamilySample bug regarding parameter minAffected.
- NEW: separate sex initialization from initByFreq, initByValue and pyInit and add a new operator initSex.
- BUG: Fix a iterator bug that affects populations with ancestralDepth > 1 during evolution.
- CHG: Remove subpopulation specific virtual subpopulation. This is no longer needed with combined virtual splitter.
- NEW: Add population::ancestor(ind, gen) and population::ancestor(ind, subPop, gen) to access an individual in an ancestory generation directly.
- NEW: support virtual subpopulation in fromSubPop parameter of a migrator. This allows sex-specific migraton and more complicated migration schemes.
- NEW: add functions population::locateRelatives and population::setIndexesOfRelatives
- NEW: add functions individual::indInfo(idx) and individual::indInfo(name)
- NEW: add a new parent chooser infoParentsChooser and a new mating scheme consanguineousMating, along with an example doc/cookbook/Mating_consanguineous.py.
14. Version 0.8.5 - (Rev 1488) Apr 3, 2008
- BUG: fix a bug that prevents a cloned simulator from evolving again.
- NEW: add parameter numMale and sexMode to all offspring generator and mating schemes, to control the sex of offspring exactly.
- NEW: add gene conversion to recombinator, using parameter convMode, convProb and convParam.
- NEW: add convenience functions GenoStruTrait::distLeft and GenoStruTrait::lociLeft.
- NEW: add random parent chooser without replacement and/or with alpha individuals, haplodiploidOffspringGenerator, monogamousMating, polygamousMating, alphaMating, and haplodiploidMating mating schemes.
- NEW: add haplodiploid option to GenoStructure. Recombinator now handles such populations correctly.
- CHG: make the subPop parameter of population() function obsolete.
- CHG: add parameter gen, and make parameter end in simulator::evolve obsolete.
15. Version 0.8.4 - (Rev 1456) Mar 8, 2008
- NEW: add support for other posix systems like HP-UX
- NEW: automatically download HapMap data in loadHapMap.py and simuAdmixture.py.
- NEW: add two operators infoEval and infoExec that can be used to manipulate
information fields during evolution.
- NEW: operator stator popSize=True also calculates virtual subpop size using variable virtualPopSize.
- BUG: fix a bug in the re-initialization of pyParentsChooser.
- CHG: inheritTagger will inherit the first, instead of the second, information field from mother in TAG_Maternal mode.
- CHG: population::numVirtualSubPop() returns 0 instead 1 when there is no virtual subpopulation.
- NEW: allow multiple genotype in the same virtual subpopulation split by genotypeSplitter
- NEW: add combinedSplitter
16. Version 0.8.3 - (Rev 1412) Jan 17, 2008
- NEW: allow taggers to write pedigree files
- NEW: introduce pedigreeParentsChooser to choose parents according to a given pedigree
- NEW: introduce pedigreeMating to mate according to a given pedigree
- NEW: add infoTagger, sexTagger, affectionTagger
- NEW: add pedigree information handling functions
- CHG: add more options to functions in hapMapUtil.py
- CHG: remove MPI related setup, build and source code (revert to r1393 to retrieve the MPI related code).
- BUG: Fix a bug of setting individual visibility of populations loaded from disk file.
- NEW: improve the efficiency of MergePopulations and MergePopulationsByLoci when a lot of populaitons are involved.
17. Version 0.8.2 - (Rev 1370) Nov 19, 2007
- BUG: Fix saveFstat in simuUtil.py
- NEW/CHG: rewrite pyMating, which now accepts a parents chooser, and an offspring generator.
- NEW: add heteroMating to allow allow different mating scheme used for different subpopulations, or proportions of individuals
- NEW: add selfMating mating scheme.
- NEW: add various parent choosers.
- NEW: add various offspring generators.
- NEW: add null, duplicate, info, genotype, proportion splitters
- NEW: add splitter interface to populations.
18. Version 0.8.1 - (Rev 1254) Oct 05, 2007
- NEW: Allow len(pops) == 1 in MergePopulationsByLoci(pops) and
MergePopulations(pops)
- BUG: Use /dev/urandom for unix users. os.path.isfile('/dev/urandom') returns false even if this file does exist.
- BUG: Fix the handling of binary option in command line, and handling of short arguments.
- NEW: Use a checkbox for binary options in the parameter dialogs.
- NEW: make use of second to last inforFields passed to pyPenetrance and pySelector to pass specified information fields to user-defined functions.
- BUG: Fix a few functions in hapMapUtil.py
- BUG: stop displaying full path name in the title of the parameter dialog.
- NEW: add chromName(), chromNames(), chromByName() to genotypic structure, and chromNames parameter to population constructor.
- NEW: Some documentation improvement.
19. Version 0.8.0 - (Rev 1215) Aug 14, 2007
- Reference manual overhaul
- Rename outputHelper to pyOutput, and alleleType to AlleleType for consistency.
- NEW: Respect environmental variable GSL_RNG_TYPE for the choice of RNG
20. Version 0.7.11 - (Rev 1133) July 26, 2007
- NEW: add subPop(s) parameters to selectors, allowing different selection pressure in different subpopulations
- NEW: add subPops parameter to intializers, working the same as subPop
- NEW: extending pyIndOperator with handling of loci and infoFields
- BUG: fix a crash of postOps in dryrun mode by applying operator in the order given.
- BUG: fix scripts/simuViewPop.py
- NEW: add optional option destructive=False to simulator::getPopulation, as a way to retrieve a population more efficiently.
- NEW: rewrite pyMigrator to allow for changing migration rates, and more subtle control of migration using individual genotype.
- NEW: rename parameter atLoci to loci for all mutators (atLoci becomes obsolete, but is still usable)
- BUG: fix a mutator crash when locus index difference exceeds the range of integer, for cases, for example, with 10k loci and 100k individuals.
- NEW: add src/hapMapUtil.py to add some utility functions to handle HapMap data
- NEW: add parameter byChromosome to population::mergePopulationByLoci and MergePopulationsByLoci to allow chromosome to chromosome merge.
21. Version 0.7.10 - (Rev 987) May 20, 2007
- BUG: fix a memory leak bug with LoadPopulation
- BUG: fix a newPopByIndID bug where keepAncestralPops is not respected.
- NEW: nuclearFamilySampler operator and function
- NEW: add MATE_UniformDistribution number of offspring type
- BUG: fix a useAncestralGen bug in largePedigreeSample (Does not affect output).
- BUG: fix a typo in function SaveLinkage, I really need to test these functions as well.
- BUG: fix a SWIG option bug that prevents help messages of member functions to display.
- BUG: fix a memory leak bug with stat operator during allele frequency calculation
- NEW: make sure alleleFreq[x][0] and alleleFreq[x][1] exist, even if there is no allele 1. This is avoid trouble in binary form. (maybe not a good idea).
- NEW: throw an exception when multiple selectors are applied at the same time.
- NEW: add population::mergePopulation, population::mergePopulationByLoci, MergePopulations, MergePopulationsByLoci, population::resize
- NEW: add population::insertLoci, population::insertLocus, population::appendLoci, population::appendLocus
- NEW: add genoStruTrait::locusByName, genoStruTrait::lociByName
- NEW: swig 1.3.32 compatibility
- NEW: add scripts/loadHapMap.py
- NEW: add pyTagger operator, which can be used to trace trait values.
- NEW: update comments, in preparation for the 0.8.0 release
- NEW: disallow change of genotypic structure of populations in a simulator.
- NEW: add simulator::addInfoField, simulator::addInfoFields, simulator::setAncestralDepth and related tests and documents.
- BUG: fix a bug when stat() tries to remove non-existings variables caused by population split.
22. Version 0.7.9 - (Rev 885) Apr 3, 2007
- BUG (build): add solaris support. This OS does not have stdint.h.
- BUG (build): add support for python 2.5 on 64 bit machines (new Py_ssize_t type for python2.5)
- NEW: add SaveSolarFrqFile in simuUtil.py
- NEW: separate SaveQTDT in SaveMerlinDatFile, SaveMerlinMapFile and SaveMerlinPedFile SaveQTDT now calls these three functions.
- NEW: rewrite newPopByIndID and speed up sample generation considerably.
- NEW: add scripts/simuHWE.py that demonstrate the temorary deviation from HWE in a population with unequal male and female allele frequencies, from Yaji Xu.
- BUG: fix a bug in the calculation of D'
- NEW: add LD measurement delta^2
- NEW: add LD_param parameter to have finer control over how LD is calculated
- NEW: add exphetero_param, Fst_param, alleleFreq_param etc to have better control over the calculation of these statistics.
- CHG: midValues of LD is replaced by LD_param={'midValues':True}
- NEW: add association statistics (ChiSq, UC_U, CramerV)
- BUG: fix passing of relMethod parameter of stat operator
- CHG: NO_CONVERSION is no longer the default for rpy
23. Version 0.7.8 - (Rev 833) Mar 2, 2007
- BUG: fix broken user interactive input
- BUG: fix help feature of tkinter dialog
- NEW: bundle boost 1.33.1 with source package
- BUG (build): fix a SConstruct bug with MSVC environment variables
- NEW: add other LD measurements to simuLDDecay.py
- NEW: optionally add header to QTDT ped file
- BUG: fix the combine parameter of SaveQTDT
24. Version 0.7.7 - (Rev 786) Feb 1, 2007
- NEW (build): bring scons build system on par with python setup.py
- NEW (build): scons build now accepts options prefix, include-dirs and library-dirs
- NEW (build): try really hard to search proper boost libraries. One usually does not have to specify boost inc and lib paths to build simuPOP.
- NEW (build): prune files from source package
- NEW: add ancestralGen to penetrance and qtrait operators
- NEW: change pySelector and allow a second parameter gen for the fitness function This allows varying selection pressure.
- CHG: individual comparison does not compare information fields
- CHG: adjust individual representation (actually output genotype)
- BUG: fix a bug in loading some files saved in binary module from standard modules
- BUG: fix an affected sibpair sampler bug introduced in 0.7.5 MPI modules
- NEW: add hasInfoField() function
- NEW: MPI module pass 00, 01, 06 test scripts
- NEW: Only head node can print to cout
25. Version 0.7.6 - (Rev 674) Dec 25, 2006
- NEW: change file format for binary modules, resulting much faster save/load.
- NEW: fix adjustGenotype (efficiency)
- BUG: fix simulator::clone(), introduced in 0.7.5
- NEW: disable compression under windows due to a boost bug.
- BUG: make simuRPy works with the latest R and rpy.
- NEW: several new chapters in the user's guide.
26. Version 0.7.5 - (Rev 576) Dec 8, 2006
- NEW: experimental MPI modules.
- BUG: None is treated as False now in Py_Object_As_Bool.
- NEW: (internal) Optimize binary allele handling. Copying of alleles are now faster than regular alleles.
- NEW (internal): Optimize BernulliTrials and recombination. Recombination under certain conditions is 1/3 faster now.
- NEW (internal): Using vector<bool> instead of dynamic_bitset for BernulliTrials cache internal point for performance purposes. This also fixes a windows dynamic_bitset related bug (never figure out what was wrong).
- NEW: add the missing simulator.clone() function
- CHG: stop embedding zlib since the source does not work under windows. The installation process is changed as well.
27. Version 0.7.4 - (Rev 518) Nov 5, 2006
- BUG: fix simulator.population() function
- NEW/CHG: add order parameter to population arr function series. Changed functions are:
C++ level: population::genoBegin(true), genoBegin(sp, true) population::infoBegin(idx, order), infoBegin(idx, subPop, order) Python level: population::arrGenotype(True), arrGenotype(sp, True) population::indInfo(idx, order), indInfo(idx, subPop, order) population::arrIndInfo(order), arrIndInfo(subPop, order)
- NEW: test/test_21_performance is added to keep track of performance
improvements.
- NEW: (minor) performance improvement of randomMating and maSelector.
- NEW: significant performance improvement of mating schemes.
controlled randomMating: typically 150s => 90s
- NEW: add instruction for using intel c++ compiler, which usually improve performance by 20% to 30%.
- BUG: recombinator set sex in a wrong way.
- NEW: experimental large pedigree sampling largePedigreeSample
- NEW: experimental support for merlin/vc and merlin regression
- CHG (internal): overhaul of ascertainment operators and file save stuff.
- NEW: add 'useDefault' option to simuOpt paramter specification.
28. Version 0.7.3 - (Rev 470) Oct 2, 2006
- CHG: change the allele type of long module to unsigned short, since 2^16 seems to be enough even for long allele cases.
- NEW: add -c option to simuCluster.py to allow it to se command instead of the default qaub
- NEW: add reference count debugging in simulator.evolve (require specially built python.)
- BUG: fix memory leaks in stator, util.cpp (pyExec) and simuPOP_common.i
- NEW: add pyMating operator
- NEW: add population::individuals() function that can be used to iterate through all individuals (or in a subpopulation).
- NEW: add pyIndOperator
29. Version 0.7.2 - (Rev 412) - Not publically released
- CHG: remove demo and support for scipy's gplt package.
- NEW: add infoFields parameter to population and operators
- CHG: all populations must now explicitly state the information fields for each individual.
- CHG: all qtrait and penetrance oeprators now use info fields of individuals (they use variable before). penetrance field is optional.
- CHG: (Internal) selectors now use info field (fitness) rather than using its own population variable.
- NEW: add --useDefault parameter to use default parameters instead of reading from stdin, if they can not be obtained from other methods.
- NEW: simuCluster.py now subst environmental variables, and stops if there is remaining $ in the script.
- CHG: make 'configName' and 'prompt' of simuOpt options obsolete, use 'label' instead.
- BUG: fix starting allele problem in simuCDCV.py
30. Version 0.7.1 - (Rev 378) - Aug 20, 2006
- BUG: Fix a bug in backward trajectory simulation
- CHG: change the release/snapsot generating process
- NEW: add script/simuCluster.py which assists submission of jobs on cluster machines.
- BUG: fix a random number generator bug on 64 bit machines.
- NEW: random number seed is generated in a much better way, and is retrievable.
- NEW: fix analComplexDisease.py which was not up to date with simuComplexDisease.py
31. Version 0.7.0 - (Release 0.6.15, July, 2006)
- Check all scripts and test cases
- Check document
- release
32. Version 0.6.14 - (Rev 341) - June 06, 2006
- CHG: user's guide and reference manual revision
- NEW: add a local scons build system for developers
- BUG: fix the variable update bug.
- BUG: fix setRNG(seed) bug.
- CHG: rename setRNG() to SetRNG(), and listAllRNG() to ListAllRNG()
33. Version 0.6.13 - (Rev 278) - Apr. 20, 2006
- NEW: Add trajectory simulation functions follows those from selSim and geneArtisan.
- NEW: Add controlledMating that accept an generation only if allele frequency at specified locus/loci fail in specified range.
- NEW: add test case for controlledMating. (No doc is avaiable yet.)
- NEW: implement trajectory simulation follows Slatkin 2001. This works better than methods from both selSim and geneArtisan.
- CHG: (internal change) abort the original template design. This will make the source less flexible but can dramatically improve development time.
- CHG: add separator to simuOpt's parameter specification.
- NEW: add controlledRandomMating and controlledBinomialSelection which implement a quicker alternative to controlledMating.
- CHG: simuComplexDisease.py has been re-written.
- NEW: add TurnOnDebugWithName(name) and the ability to set SIMUDEBUG to turn on certain debug mode.
- BUG: fixed a bug about s_shallowCopied flag of population.
- CHG: Remove starting allele and let all allele start from 0. tests and scripts have been modified. These changes can make binary and other modules behave the same.
- CHG: (internal change) upgrade to boost 1.33.1. This allows me to use boost::iostream for instant file compression.
- NEW: File format change that compress population genotype before it is saved. This will greatly reduce the file size of saved populations.
- NEW: add compress=True option to savePopulation(). For a large file:
Before: txt: 496M, 58s load, 24s write xml: 169M, 19s load, ? write Now: txt: 66M, 25s load, 125s save bin: 51M, 10s load, 70s write Since load operation tends to happen more often than save, this increased write time seems to be acceptable. - NEW: let simuPOP handles file.txt.gz extensions directly. Using .gz will be equilivalent to compress=True (although compress=True does not add .gz extension to the filename supplied. )
34. Version 0.6.12 - (Rev 186) - Feb 18, 2006
- CHG: 'not enough case/control' in caseControlSample now generates a warning message, rather than exception.
- CHG: set the default sample saveAs format to 'auto', instead of 'bin' 'bin' was used before 'auto' was introduced
- NEW: the format parameter of loadPopulation, loadSimulator are obsolete. File type will be automatically determined.
- NEW: the wrap files will be automatically generated if any of the source files is modified. This is useful mostly for svn users.
- NEW: simuUtil/SaveLinkage is improved in efficiency
- CHG: simuUtil/SaveLinkage: if pre is True, the output is filename.pre instead of filename.ped, which will be used when pre is False.
- CHG: (internal cleaning) fitness is implemented differently.
- CHG: (internal cleaning) randomMating sex determination no longer use bt.
- CHG: (internal cleaning) isMale class is replaced by a less fancier solution.
- CHG: (internal) change the use of pointer to iterator, in preparation for compact presentation of binary alleles.
- NEW: add a compilable (imcomplete) binary library. All alleles are 0 or 1 and are stored internally as bits to save spaces.
- CHG: carray can now read/write binary allele. However, it can no longer be a standalone type. It should always be only a reference to a piece of memory. This simplifies the design since we do not have to
worry about extending, slicing etc.
- NEW: (important) addition of ba, baop modules for binary allele. Extensive tests are needed but it is in working status now, including the arrGenotype
function series.
- NEW: you can now directly compare individuals and populations in python.
- CHG: carray is no longer a standalone type. (You can not create it in python)
- NEW: under DBG_MATING, size of each family is outputed as pop.dvars().famSizes
- NEW: initByFreq now recognize binary library and set 0,1 instead of 1,2,...
- NEW: Complete test cases for all operators.
- CHG: remove sep parameter of operators. Users need separator between output of operators can use a output() operator manually. (sep is originally a bad idea.)
- NEW: (internal) Adapt the interface file and swig commands to SWIG 1.3.28.
- CHG: simuComplexDisease.py uses binary modules for SNP markers.
35. Version 0.6.11 - (Rev 119) - Jan 19, 2006
- DOC: add examples of penetrance operators to the reference manual.
- DOC: document using pyOperator to build pure-python operators
- NEW: check return value of pyPenetrance function to be within [0,1]
- NEW: add operator continueIf, in addition to terminateIf
- NEW: add 's' behavior to operator pause, which will invoke an interactive python shell. Current population is by default exposed to the main dictionary as variable 'pop. This can be controled by parameter
exposePop and popName.
- NEW: add test case test_opPause.py
- NEW: add name parameter to population::exposeInfo and population::exposeAffectedness
- NEW: add subPop parameter to population::removeIndividual
- DOC: add full member function of population object list to reference manual
- DOC: add genotypic structure function list to reference manual
- DOC: add individual function list to refernce manual
- CHG: rename basicPentrance, basicSelector and basicQuanTrait to
mapPenetrance etc
- NEW: add multi-locus support to mapPenetrance, maPenetrance (and selector, quantrait) except for locus, you can specify loci, and a longer map or array of values.
- NEW: pyOperator can now be a during-mating operator. Pass a python function func(pop, offspring, dad, mom, param) and set stage=DuringMating will do.
- BUG: fix another memory leak problem when an internal population is exposed
- NEW: improve the efficiency of dynamic type finding of population and individual Decent performance boost for pyOperator, especially to the DuringMating mode.
- NEW: use the new swig -external-runtime feature to generate swigpyrun.h, this allows me to relocate some utility functions from the interface file to utility.h
- NEW: let simuCDCV.py also trace and display the change of total allele frequency.
- NEW: add passOffspringOnly to pyOperator to speed up duringMating pyOperator.
- DOC: add simuPOP coding convension to simuPOP reference manual
- NEW: add simuOpt.valueOr, valueNot and valueAnd to simuOpt.py
- NEW: give correct prompt for pause operator regarding exported population name
- BUG: fix a bug in affectedSibpairSample, which will generate the wrong sample if an operator is used a second time (So AffectedSibpairSample is not affected).
36. Version 0.6.10 (Rev90) - Dec, 20th, 2005
- NEW: add recCount(loc) and recCount() to recombinator to track the number of recombination event.
- NEW: add mutationCount(loc) and mutationCounts() to muators to track the number of mutation event.
- NEW: add atPloidy=[0] to pointMutator.
- CHG: replace lociDist and locusDist by lociPos and locusPos. This kind of term change should be done as soon as possible.
- NEW: add simuRecHotSpot.py which is used to generate SNP sample that can be used to estimate recombination rate between markers.
- NEW: convert test_mutator.py to unittest framework.
- NEW: add DBG_DEVEL for developer-level debug information.
- CHG: Make adjustment to how genotype structure is accessed from individual and limit the number of subpopulations to 2^31. Save 8 bytes (24->16) for each individual without noticable performance penalty.
- BUG: fix a tiny bug about optimization mode reporting
- NEW: test_population is better now, but still way to go.
- CHG: separate simuComplexDisease.py into simuComplexDisease.py and analComplexDisease.py. The first script will run simulation and generate a population saved in binary format. The second script will run the old analyses (apply penetrance function, plot figures, apply genehunter etc.)
- NEW: add more info to saved config file. (Add a command line script)
- CHG: simuOpt does not load wx automatically when --noDialog is used.
- BUG: fix a memory leak problem with genotype structure introduced in 0.6.9.
- BUG: fix a memory leak problem with PyObject->double conversion.
- CHG: change listVars to ListVars for naming consistency. (Captal for standalone function)
37. Version 0.6.9 (Rev71) - Nov, 19th, 2005
- add pyOperator, the ultimate hybrid operator, this will considerably simplify many coomplicated tasks
- start to convert all test cases to PyUnit. This means better test cases and more thorough testing. I expect that code 0.7.0 is a version with much less bugs due to this change.
- fix a bug in initializer (parameter proportion)
- fix a bug in recombinator concerning direct chrom copy.
- remove autoconf, Makefile.icc stuff to avoid confusion.
- fix a bug in migrator/MigrByCounts, which is introduced in 0.6.8
- add subversion revision number to doc and binary releases for better tracking of changes.
- fix windows binary import problem caused by mingw/msvcrt. Details please see INSTALL.
- fix a bug in AffectedSibpairSample with countOnly parameter. (Not able to handle None return.)
- add parameter --resampleOnly and --reAnalyzeOnly
- remove --optimzied --optimized etc from sys.argv after processing in simuOpt.py
- add simuViewPop.py (module and command) that can load and view popularion property, calculate statistics etc.
38. Version 0.6.8 - Sep 21st, 2005
- fix a reporting bug in simuCDCV.py
- support sex chromosome and sex chromosome related mating, recombination issues.
- sexChrom() in population::population(),
- stop recombination between XY of male individual
- determine sex in random mating by sex chromosome
- add parameters atPloidy, sex to initializers. Now, you can initialize individuals at ploidy level and control assignment of sex. Now, with so many options, these initializers are overly complicated.
- add support for sex-specific recombination rate. (parameter maleIntensity, maleRate, and maleAfterLoci.)
- modify some features of simuComplexDisease.py
- release 0.6.8 and set up daily snapshots
39. Version 0.6.7 - Aug, 1st, 2005
- Add help() infor for the function version of operators and member functions.
- use Walker's alias algorithm for weighted sampling. Random mating with selection should be only slightly slower than without selection. The performance of simuCDCV.py increased by 15% using this algorithm. This method will use a lot of RAM when population size is large (8*N bytes).
- add compiler info to Welcome message. (to see if it matches that of Python.)
- change the use of logfile in simuCDCV.py
- fix a bug in operator InitByFreq.
40. Version 0.6.6 - various GUI / wxPython improvements. Not released.
- add wxGetParam. Will be used when wxPython is available.
- add wxPython version of listVars. Much better than the text version when wxPython is available.
- add some demographic functions in simuUtil.py
- use grid for tkinter box
- add migrIslandRates() and migrStepstoneRates() in simuUtil.py
- find an uncaptured out of memory exception.
- simuCDCV.py is better, with log file.
- stop using global variable gen. Add gen() function to individual population and "gen" to local variable space. (Avoid using modular level global variable) If this breaks anything, please let me know.
- Change penetrance from 1,1-s,1-2s to 1,1-s/2,1-s in simuComplexDisease.py and simuCDCV.py. This is more natural.
- Add tooltip to the wxPython version of getParam.
41. Version 0.6.5 - userfriendliness (simuPOP scripts). May 1st, 2005
- separate user's guide and reference manual
- streamline getParam, usage, help etc.
- add scripts folder for common simupop templates
- add quiet option to simuPOP to suppress initial input
- add tk support for easy inputing of variables. This is a major enhancement for userfriendliness. A first glimpse of a GUI
- fix a bug in saving shared variables. Exam saved format. Full backward compatibility should start from here.
- simuComplexDisease.py. It uses almost all features of simuPOP
- remove headers support for object. They are not very useful and hard to use.
42. Version 0.6.4 - efficiency and usability. Not released
- savePopulation saves local variables as well. This is used to save special info like disease susceptibility loci.
- Label save population with max allowed allele number.
- merge some parameters through python code. Now, parameters like rate can be either a number or an array. Same is true for value, indRange.
- caseControlSample can takes array cases/controls parameters.
- optimized genoStructure access, fix a bug about transferring the structure
- add LoadRandFam ( not easy :-)
- add parameters loci, chrom, indRange, subPop to dumper() and Dump() Dump() is finally useful now.
- more efficient handling of ancestral pops
43. Version 0.6.3 - Ancestral populations Apr. 5, 2005
- add simulator::getPopulation get a copy of population
- add simuOpt to control simuPOP behavior, hide other modules
- add pointMutator
- change the meaning of rate in recombinator, add parameter intensity
- IMPORTANT: population can contain multiple generations. add: population.pushAndDiscard (CPPONLY), Lots of work. parameter ancestry for population.__init__ parameter ancestry for dumper
- add SavePopulations and LoadPopulations function.
- add stat(homoFreq and expHetero)
- fix a small bug with end < 0 and step > 1
- add splitSubPop(ByProportion), mergeSubPops member functions, operators and functions.
- make duringMating oeprators re-order automatically
- add numOffspringsFunc, mode=MATE_NumOffsprings, MATE_GeometricDistribution etc
- add affected sibpair sampling scheme
- export to linkage format (affected sibpair samples)
- export to randfam format
- test parentsTagger, successfully track pedigree info
44. Version 0.6.2 - better usage of vars Mar, 23, 2005
- variables are now population associated. (pop.evaluate(...)
- add quantitative trait and penetrance support
- add dryrun parameter to apply and evolve
- dvars() function. (Automatic dictionary wrapper class)
- add more flexibility to initializers. (indRanges, subPop, atLoci etc)
- varPlotter becomes an operator.
- add D, D' and r2 measures
- add newSubPopSizeFunc option to Mating schemes
- change haploFreq to count all haplotypes.
- add multi-allele Fst, LD etc. (average)
- fixes all memory leak and reference count problems
- save/load auto format according to file extension.
- fix a small bug of unclosed files.
- finsh LoadSimulatorFromFiles (uses in pair with savePopulation operator)
- fix two bugs in AvgLD calculation and in recombinator.
45. Version 0.6.1 * usability and real applications Feb, 12, 2005
- add simuPOP_la library for long alleles.
- add exposePop option to pyEval (better pure-python operator support)
- better treatment for carray. (fix a bug)
- more statistics: Fst, Rst, H_est, H_obs etc
- read/write, FSTAT format
- use simple string instead of list to store statements.
- merge alleleCounter and popStat since alleleCounter may depend on popStat
- add operator pause for presentation purpose new operator is called 'basicStat'
- Genomic control (use R/gap package, simple subpop vs subpop version)
46. Version 0.6.0 - validation and distribution, Jan, 1st, 2005
- bug fixes
- better distribution process and binaries.
- remove internal language and use Python expression only
- more mutation models
- some hybrid operators added
- simuPOP website
47. Version 0.5.9 - performance boost, dynamic population size Dec. 12th, 2004
- re-write Bernulli-trials and gain 10x performance boost
- dynamic population size through newSubPopSizeExpr="".
- re-write migration to allow migration between subset of subpopulations
- ability to create new subpopulation through migration
- tagging x-y location.
- visualize migration
48. Version 0.5.8 - selection Dec. 5nd, 2004
- add selection.
- better matings.
- bug fixes
- migration and selection examples
49. Version 0.5.7 - serialization Nov. 24, 2004
- add serialization of simulator. Now I can save population/simulator into a file and load it later.
- text, xml and binary formats are supported. XML support is especially useful since the data can then be easily loaded into other applications.
50. Version 0.5.6 - expression. Nov. 19, 2004
- better shared variable interface
- (IMPORTANT!) implement a C/Matlab like language to calculate statistics. Terminator has been re-written. Many applicaitons are expected to be done easily.
- add more functions (abs etc) to inline expression)
- fixed some bugs.
51. Version 0.5.5, - more clean up, more examples. Nov. 10, 2004
- clean the code. Use unsigned long when applicable. Elimilate all compiling warnings.
- add some more test cases to cover all user features.
- Some real examples
52. Version 0.5.4, Nov. 7, 2004 - clean the code. still working on the code base
- return default value for SharedVariable::getVar(name, default) and display warning when in debug mode.
- shared variables can take string, double, array and dictionary.
- varParser can now take all kind of shared variables, using double, %array[index], %dictionary{key}
- DataProvider is separated from Operator and is put in utility.h
- DataSource is separated from Visualizer so that other operators can also use such sources.
- VarDataSource is provided so Visualizer etc can visaulize/display shared variables directly.
53. Version 0.5.3 Oct 10, 2004 -- some interesting new features
- shared variables (operators can store and retrieve variables by name)
- better written outputHelper. Now can print shared variables. for example %(gen)+%shvar
- add "memory file" to improve efficiency under certain circumstances.
- overhaul of operator's filename parser (can take shared var now)
- provide binary distribution for linux, mac and solaris.
- create a batch file to build win32 binary. (Much easier to use) distribute win32 binary.
54. Version 0.5.2 -- windows port, smaller distribution, better help()
- help(class/function) now uses doxygen generated document.
- distribute tools like .emacs.python.el and swig.xsl
- remove all unnecessary files from boost and gsl distribution this is done by some perl scripts testing the usefulness of each file.
- ported to windows. see INSTALL.win32 for details fixed two windows specific bugs.
- make DEBUG the default library (optimized will be used less frequently.)
55. Version 0.5.1
- better suport of GSL. add setRNG()
- better debug debug(code) instead of debug(level)
- better macOS support
56. Version 0.5
- a working distribution with lots of test cases
- ported to macOS, solaris
57. Version 0.1 Friday 18, June 2004
- Customize doxygen and direct output to http://bp6.stat.rice.edu:8080/simuPOP
- change README and make it doxygen mainpage
- create todo list and many other documents
- implement exception classes with error message sent to Python
- change most arrays to vector so that they can be accessed through python
- find the right way to do keyword argument from python. Very useful.
- Population basic structure is finished with basic operations.
- Operator start-every-end-at is implemented.
- genetic drifting sample program went fine.