forked from BoPeng/simuPOP
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
1506 lines (1369 loc) · 81.1 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
ChangeLog of simuPOP
Known Bugs:
- BUG: simuPOP does not respond well to Ctrl-C under windows.
- BUG: Textbox in Tkinter help dialog does not resize.
1. Version 1.1.5 -- Not released
BUG FIX:
* Fix a memory leak bug (caused by circular reference) that was incorrectly fixed in 1.1.2.
NEW FEATURE:
* support installation through command pip (pypi)
* create binary distributions for conda.
* Add parameter allowSelfing to CombinedParentsChooser
* Add HermaphroditicMating
* Allow the use of parameter infoFields to specify which information fields to output for operator Dumper and function dump.
* Add parameter reverse=false to function Population.sortIndividuals() to allow sorting individuals in reverse order.
Version 1.1.4 -- Rev 4951 (Oct, 15, 2014)
NEW FEATURES:
* Expose type defdict so that users can use this type directly.
* Add event based demographic models.
BUG FIXES:
* Fix a bug with MultiStageModel when the population does not start from generation 0.
Version 1.1.3 -- Rev 4915 (July 29, 2014)
MAJOR NEW FEATURES:
* Add a new mating scheme [[http://simupop.sourceforge.net/manual_svn/build/refManual_ch2_sec3.html#class-conditionalmating|ConditionalMating]] to apply different matings schemes to populations with different properties. ([[http://simupop.sourceforge.net/manual_svn/build/userGuide_ch6_sec1.html#conditional-mating-schemes|Example]]
NEW FEATURES:
* Support compiling simuPOP using clang under MacOSX Maverick
* Allow function passed to PyMutator to accept parameter locus.
* Allow the use of varying recombination rates rates=[...] with loci=ALL_AVAIL in operator Recombinator.
* Raise an error if a demographic function returns a negative population size.
* Expose the chooseParents interface of parent [[http://simupop.sourceforge.net/manual_svn/build/refManual_ch2_sec3.html#class-sequentialparentchooser|choosers]] so that they could be used in PyParentsChooser. ([[http://simupop.sourceforge.net/manual_svn/build/userGuide_ch6_sec3.html#a-python-parent-chooser|Example]])
* Allow the passing of mutants (non-zero alleles) as a dictionary to user-provided function in call-back functions of PySelector, PyQuanTrait, and PyPenetrance. This can be more efficient for large genomes with few mutants.
BUGS:
* Fix a bug for random parent chooser (single parent) without replacement.
* Fix a memory leak bug for PyParentChooser.
* Fix a crash for Stat(min/maxInfo) with empty subpopulation
Version 1.1.2 -- Rev 4825 (Feb 16, 2014)
MAJOR NEW FEATURE:
* Add a new module simuPOP.demography, move migr functions from simuPOP.utils to this module and add a migration matrix generating function for 2D stepping stone model. Add demographic models InstantChangeModel, LinearGrowthModel, ExponentialGrowthModel and MultiStageModel, OutofAfricaModel, and SettlementOfNewWorldModel.
BUGS:
* Fix a bug in Population.addLoci when a locus is added to an empty chromosome (with 0 locus).
* Stop output details of mutations by default (> was set as default).
* Fix the use of virtual subpopulation in import/export functions.
* Add only one field if duplicated information fields are added.
NEW FEATURE:
* Add support for format ms to functions simuPOP.utils.importPopulation and simuPOP.utils.export.
* Add support for matplotlib in module simuPOP.plotter. Only VarPlotter is supported because other statistics related operators (e.g. BoxPlotter) reply on rpy for statistical analysis.
* Stop an evolutionary process if the demographic function returns an empty list. This allows the demographic models to stop evolution.
* Allow the passing of duplicated information fields to allow more flexibility in the design of external modules.
Version 1.1.1 - Rev 4774 (May 13, 2013)
NEW FEATURE:
- Implement temporal estimates of effective population size for sampling plan 1. Add variables
Ne_tempoFS_P1, Ne_tempoFS_P2, Ne_waples97_P1 and Ne_waples97_P2. Variables Ne_tempoFS and
Ne_waples97 are now deprecated.
- A new file format to improve efficiency and reduce memory footprint of save/load of simuPOP populations.
BUG:
- Fix setOption(version) for minor simuPOP releases with version string ending with a, b, etc.
- Fix lociPos for positions that are very close to each other.
- Fix a bug in mutator that crashes with low mutation rate.
- Fix a bug in recombinator that crashes with low recombination intensity.
version 1.0.9 - Rev 4727 (Dec 6, 2012)
Major New Features:
- Add parameter effectiveSize to operator Stat to calculate effective population size.
Currently based on the moment method of Waples 1989, TempoFS method of Jorde
& Ryman 2007, a LD-based method from Waples 2006, and an esimate of the
demographic effectize size.
New Feature:
- Rename PER_LOCI to PER_ALLELE in InitLineage. PER_LOCI can still be used for backward compatibility.
- Allow empty value list in InitLineage. In this case, unique values will be provided for each case.
- Allow export in PED, MAP and Phylip format in operator utils.Exporter and function utils.export.
BUG:
- Fix a HWE test crash when one of the homozygote count is zero.
- Result of homoFreq should be a dictionary. A list is returned
in the current version.
- Fix InitGenotype(haplotypes) in multi-thread mode of the binary module.
version 1.0.8 - Rev 4645 (Sep 5, 2012)
Major New Features:
- Add an operator Exporter and function export to export a simuPOP population in STRUCTURE,
GenePop, FStat and CSV formats.
MAJOR BUG:
- Fix a bug that prevents females from selected correctly during random mating. The bug
was introduced in simuPOP 1.0.6.
BUG:
- Quit with proper error message when Population.save fails to write
- Fix a bug where applicability parameters in operators in parameter ops
for operators MlSelector and MlPenetrance are ignored.
- Results from Stat(heteroFreq) are now set one by one, and not as a default dictionary
- Fix a bug in Population.removeLoci() that will lead to incorrect population genotype.
- Fix compatibility bug with SWIG 2.0.8
- Allow IdTagger to work properly in Self mating when two parents have the same IDs
Minor improvement:
- Automatically create a directory if needed when a full path name is specified to parameter saveAs of plotters defined in simuPOP.plotter.
- Use simuPOP RNG in simuPOP.sampling so that users could get reproducable samples by setting RNG seed, regardless the way this module is imported.
version 1.0.7 - Rev 4599 (Apr. 6, 2012)
Major New features:
- Add MITOCHONDRIAL as a natural chromosome type so that operators such as
Stat can handle them correctly.
- A new allele type mutant that saves only non-zero alleles for efficient simulation
of a large number of rare variants.
- A new allele type lineage to track the lineage (origin of alleles) of alleles during
evolution.
- A new file format is introduced to accommendate the new features. This file format
cannot be recognized by older versions of simuPOP.
- New functions Individual.mutants() and Population.mutants() to return an iterator
to iterate through all mutants of an individual or population.
- New functions Individuals.alleleLineage(), Individuals.lineage(),
Individual.setAlleleLineage(), Individual.setLineage(), Population.lineage(),
and Population.setLineage() to handle allelic lineage in lineage modules.
New features:
- New option numOfSegSites to operator Stat to calculate the number of segragating
sites.
- New option numOfMutants to operator Stat to count the number of mutants (non-zero
alleles).
- Extend Stat(structure) to handle haploid population and non-autosomal chromosomes.
BUG:
- Fix a bug that prevents the correct handling of population structure when evolving
populations with changing population structure.
- Fix a bug that prevents MlPenetrance from being used in the evolve function.
- Ensure 2^64 maximum allele states for the long module under 64 bit system
- Fix a bug for the appending of suffix to subpopulation variables.
- Allow parameter subPop of function Population.indInfo to accept (virtual) subpop names.
- CloneGenoTransmitter also transmits affection status.
version 1.0.6 - Rev 4260 (July 11, 2011)
Major new feature:
- Multi-thread support that allows simuPOP to take advantage of multi-core CPUs.
New features:
- Expose function Population::virtualSplitter
- Allow single input for parameters cutoff and values of operator InfoSplitter.
- Allow the use of vsp name in function Population.individuals().
- Support boost 1.45.0, 1.46.0. and 1.46.1.
- Add option haploHomoFreq and haploHeteroFreq to calculate observed haplotype
homozygosity and heterozygosity.
- Let operator PyEval and PyExec support parameter subPops, which evaluates
expressions in each subpopulation's local namespace.
BUG:
- Fix a bug when population.removeLoci(keep=[]) fails to clear all loci.
- Fix a bug where populations saved in binary module on a 64 bit system cannot be
loaded under 32 bit systems.
- Fix a bug in the handling of single input for list type when the parameter
is not processed using GUI.
version 1.0.5 - Rev 3915 (Nov. 22, 2010)
New features:
- Support parameter subPops in during mating operators so that different
operators can be applied to offspring with different opportunities.
- Add operator DiscardIf to discard individuals if some condition is met.
- Callback functions for PyOperator must return either True or False. A
RuntimeError will be returned otherwise.
- Allow simuOpt.valueOneOf(t1, t2, t3) in addition to simuOpt.valueOneOf(list).
- Allow simuOpt.valueNot(value) in addition to simuOpt.valueNot(validator).
- Add function Trajectory.mutants() in simuPOP.utils.
- Allow operator SavePopulation to take an empty string.
- Allow operator PyOperator to accept a function that is applied to each
individual.
- Add parameter stopAfter to operator TicToc to stop the evolution after
specified time, and allow this operator to be used during-mating.
Bug:
- Fix a bug in the handling of obsolete key 'arg' in parameter specification
dictionary.
- Fix a bug in the identifying of OUTBRED_SPOUSE when parentship of parents is
unknown.
- Fix a bug during the loading of tuples in a population's local name space.
Minor adjustment:
- Parameter of type 'filename' and 'dirname' does not have to be a valid
file or directory name.
- Produce a warning message when one of the mating schemes in a heterogeneous
mating scheme produces no offspring.
version 1.0.4 - Rev 3815 (Sep. 7th, 2010)
New features:
- Add module simuPOP.sandbox as a place to store experimental and specialized classes and
functions.
- Add operators InfSitesSelector and InfSitesMutator to support mutation and selection
in mutational space.
- Population.recodeAllele does not raise an error if newAllele is not defined for
an allele. A warning will be given if DBG_WARNING is defined.
- Add option 'batch' to --gui, which will use default values for unspecified parameters.
- Allow user-specified function for operator PySelector and PyPenetrance to accept
parameter pop.
- Beautify wxPython based parameter dialog.
- Add validation function valueSumTo.
- Allow the use of expressions to validate options.
- Add name, type and validator to parameter definition dictionary.
- Add mode --gui=interactive which is repsented by --gui=False in previous
versions of simuPOP.
- Support Python 2.7, Python 3.0, boost 1.44.0 and swig 2.0.
- Allow the use of subpopulation and virtual subpopulation names in parameter subPops
and functions Population.subPopSize, Population.genotype,
Population.setGenotype, Population.setIndInfo.
- Allow the passing of object with __call__ object as a demographic function.
- Parameter sizes in function Population.splitSubPop can now be proportions.
Bugs:
- Regression: version 1.0.3 disallow invalid default value in parameter specification
dictionary. This seemed to be a logic change but it turned out that invalid
default value cannot always be avoided (e.g. a valid filename that cannot have
a valid default value). This version allows invalid default value again.
- Fix a bug that prevents types.TupleType and types.ListType of being used alone in
allowedTypes of simuOpt.
- Fix a bug in the parameter input dialog.
- (core) Fix a bug that prevents proper iteration through individuals in
virtual subpopulations under certain condition.
Regression (minor):
- User provided function in function Population.recodeAlleles will be called once
for each existing allele so it is now not possible to emit random alleles for
the same allele.
- The second parameter of function applyToIndividual, if specified, should now be a
population reference.
- Parameter usePopVars is now obsolete in operators InfoEval and InfoExec.
- Statements specified in operator InfoEval will also change values of individual
information fields.
- Mark validate, arg, longarg, chooseFrom, chooseOneOf in parameter definition
dictionary obsolete
- Mark parameter revision in simuOpt.setOptions as obsolete.
New features (minor):
- Add mode EXPONENTIAL to MlSelector.
version 1.0.3 - Rev 3592 (Jun. 8, 2010)
BUGS (minor):
- Fix error handling in the conversion of commandline input with incorrect allowedTypes.
- Raise an error when SequentialParentsChooser is applied to a population only male or
female individuals.
- Display 'None' instead of '' for default value None in parameter dialogs of module simuOpt.
- Clear parent IDs if a parent is not sampled in function sampling.plotPedigree.
New features:
- Add a CombinedParentsChooser that uses two parent choosers to choose parents from potentially
different virtual subpopulations.
- Add paremeter sexChoice to parent choosers SequentialParentChooser and RandomParentChooser.
- Allow parameter loci to accept loci names in addition to loci indexes so that they can
handle remove correct loci when loci indexes are variable.
New features (minor):
- Allow mixed number and sequence specification of matrix. For example, [1, 2, (1,2)] will be intepretted as [(1,), (2,), (1,2)].
- Add optional parameter start and stop to carray.index().
- Support gcc < 4.0 even if those compilers do not support tr1.
- Output warning for mismatch of genotype or haplotype length in operator InitGenotype.
- Silently ignore alleles n or higher in a MatrixMutator and KAlleleMutator if their mutation rates
are undefined (e.g. mutation matrix only has n rows). An error was triggered in the
previous version.
- Add parameter size to simuOpt.valueIsList and simuOpt.valueListOf to allow validation
of sequences according to sequence length.
- Make parameter loci in PySelector, PyQuanTrait and PyPenetrance accept value ALL_AVAIL.
- Allow parameter count in function utils.ProgressBar.update(count) to be None, meaning update by
an increment of 1.
- Allow parameter filter in Population.removeIndividuals and Population.extractIndividuals to
accept information fields as parameters.
- Allow parameters in Population.addChrom, Population.addLoci to accept single input for vector
parameters.
- Support Python 2.6.5 (fix setup.py).
- Add SEQUENCE_OF_SEX and GLOBAL_SEQUENCE_OF_SEX to option sexMode of class OffspringGenerator.
- Parameter sexMode and numOffspring in OffspringGenerator now accepts a generator function.
- Allow the use of single input in functions Population.setGenotype and Individual.setGenotype.
version 1.0.2 - Rev 3511 (Apr. 13, 2010)
BUGS:
- The shifted distribution implemented for POISSON_DISTRIBUTION and
BINOMIAL_DISTRIBUTION for the specification of random number of
offspring is replaced with truncated distributions.
New features:
- Add parameter haplotypes to operator InitGenotype to allow initialization by
haplotype frequencies.
- Add parameter chroms to operator CloneGenoTransmitter to control which
chromosomes to copy.
Regression:
- Random number of offspring using Poisson and Binomial distribution
with get different distributions due to reinterpretation of
these parameters.
New features (minor):
- Expose class WeightedSampler to the user interface.
- Perform a limited number of parameter checkings in optimized modules, provided that
they do not hinder system performance.
- Add gsl_cdf_poisson_P, gsl_cdf_poisson_Q and gsl_ran_poisson_pdf to module simuPOP.gsl.
- Add a debug code DBG_WARNING that output warnings for certain use of simuPOP.
- Output warning messages for the use of Individual.genotype() and Population.genotype.
version 1.0.1 - Rev 3473 (Feb. 24, 2010)
Bugs:
- Fix a typo that breaks the dryrun parameter of population.evolve().
- Fix a bug in population.recodeAlleles when a single locus is specified.
- Fix a memory leak bug when modifying an existing genotype structure.
- Fix parameter revision of function simuOpt.setOptions.
- Fix a bug for getting integer 'chooseFrom' values and the setting of default
True/False value. using Tkinter based parameter input dialog (simuOpt.Params),
- Fix a bug that crashes simuPOP when the recombination rate between
two loci are really small (e.g. 1e-17).
- Fix a bug and expand the use of parameter 'header' in function utils.saveCSV.
- Fix a bug that prevents proper cloning of Pedigree objects.
New features:
- Add parameter 'version' to function simuOpt.setOptions.
- Add pdf and cdf functions for binomial and beta distributions to module simuPOP.gsl.
- Accept ALL_AVAIL in sp or vsp in a virtual subpopulation list to go through
specific or all virtual subpopulation of specific or all subpopulations.
- Add functions pedigree.identifyAncestors and pedigree.identifyOffspring and pedigree.save.
- Add a mating scheme PedigreeMating.
- Allow operator PedigreeTagger to be applied to a population.
- Add function loadPedigree to load pedigrees saved by operator PedigreeTagger
and function Pedigree.save().
- Operator IfElse now accepts a user-defined function.
- Add parameter 'ancGen' to functions Population.popSize, Population.subPopSizes and
Population.subPopSize.
Regression (minor):
- Additional columns are added to files saved by operator PedigreeTagger.
New features (minor):
- Document base mating scheme MatingScheme() and allow it to be used explicitly.
- Accept float numbers as input when a list of integers is required.
- simuPOP.utils.migrSteppingStoneRates returns [[1]] when n=1 (instead of raising an Error).
- Send a proper error message when condition of an IfElse operator is failed to evaluate.
- Allow trajectory simulation program to handle float population size because float
population size is accepted in simuPOP core.
- Logging more useful information for the simulation of allele frequency trajectory.
- Add parameter 'infoFormatter' to function utils.saveCSV. Rename parameters
'genoCode', 'sexCode', and 'affectionCode' to 'genoFormatter', 'sexFormatter',
and 'affectionFormatter'. The old parameters can still be used.
- Allow the backward trajectory simulation algorithm to simulate from fixed alleles.
- Allow --param=True/False/1/0/true/false from command line for true/false options.
- Raise a ValueError when the number of rows of a migration matrix does not match
the number of subpopulations.
version 1.0.0 - Rev 3388 (Jan 8, 2010)
- BUG: Fix a bug in simuOpt.valueListOf when a list of values is passed.
- CHG: Using a new method to communicate with user-provided Python functions.
Basically, parameter names are now used to tell simuPOP what information
to sent to these functions. This leads to the removal of parameter
offspringOnly from pyOperator.
- CHG: pyPenetrance, pyQuanTrait and pySelector now accept functions with
parameters ind.
- CHG: Allow a penetrance operator to be applied to single individuals.
- NEW: Add class withArgs to specify names of arguments when they cannot be
specified from parameter names.
- CHG: Remove functions AvailableRNGs() and DebugCodes(). The former is now
ModuleInfo()['availableRNGs'], the latter is ModuleINfo()['debug'].keys().
- CHG: Move mating scheme from simulator() to simulator.evolve(). This change
simplifies the used of during mating operators but will cripple
every simuPOP script again. :-(
- NEW: The first parameter of simulator now accepts a list of populations.
- NEW: Add global function Describe.
- CHG: Remove rarely used operators turnOnDebug, turnOffDebug and setAncestralDepth.
- CHG: Except for function form of operators, rename all global functions so that
they start with small letter (LoadPopulation -> loadPopulation,
ModuleInfo -> moduleInfo). This makes simuPOP conforms to the Python style
guide better.
- CHG: Merge initByFreq and initByValue to initGenotype.
- CHG: Rename simuOpt.simuParam to simuOpt.Params and utils.simuProgress to
utils.ProgressBar.
- NEW: Enhance functions Indivdual.genotype and Individual.setGenotype.
- CHG: Remove functions Individual.sexChar and Individual.affectionChar.
- CHG: Remove alpha mating because it is merely a special kind of natural
selection model.
- NEW: Add parameter dryrun back to function evolve.
- CHG: Remove global function setRNG.
- NEW: Extend population.removeIndividuals and population.extractIndividuals.
- NEW: Allow pedigree class to use many population functions that add/remove individuals.
- NEW: Add parameter stealPop to the pedigree class.
- CHG: Replace parameter ancGen to ancGens in many places.
- NEW: Add function pedigree.identifyFamilies.
- NEW: Add functions pedigree.asPopulation and population.asPedigree.
version 0.9.9 - Rev 3196 (Dec 9, 2009)
- NEW: Allow controlledRandomMating to fall back to random mating if there is
no locus to control.
- NEW: Allow the use of a fixed value in operator ifElse, and allow the use
of applicability parameters in ifOps and elseOps operators.
- NEW: Allow Ctrl-C to interrupt an evolving process. (The solution does not work
under windows).
- NEW: Add simuOpt.param() to allow a function style of inputting parameter
specification dictionaries. Allow single value input for key
allowedTypes in parameter specification dictionaries.
- CHG: Remove parameter dryrun from simulator.describe() and add simulator.describe()
to describe an evolutionary process, including complex mating schemes.
- NEW: Allow double index for population.individual, population.ancestor and
population.indByID. This makes it easier to locate individuals using index
or ID stored in information fields.
- CHG: Change the way binary genotypes are saved to make the archive more portable.
- NEW: Improve the precision of the ticToc operator (0.01s now).
- NEW: Add utility module simuPOP.gsl.
- BUG: Fix a bug in the activation of VSP defined by combinedSplitter.
- NEW: Produce a warning when parameter subPopSize is used in a homogeneous mating
scheme in a heterogeneous mating scheme.
- NEW: Add relationship OutbredSpouse to pedigree.locateRelatives. Replace relationship
SpouseAndOffspring with CommonOffspring.
- CHG: Adjust the pedigree class. All function interfaces have been changed.
- CHG: Add function population.removeInfoFields.
- NEW: Allow nested use of vsp in population.individuals().
- NEW: Add function population.extractIndividuals, population.extractSubPops,
remove population.extract.
- NEW: Disable population manipulation functions of an pedigree object.
- NEW: Add functions IndexToID, DrawPedigree and samplers nuclearFamilySampler,
threeGenFamilySampler, combinedSampler and their sampling functions to
the simuPOP.sampling class.
- CHG: temporarily remove infoParentsChooser, consanguineousMating and pedigreeMating.
There is not enough time to implement these features nicely.
- CHG: Rename ..OfMale to ..OfMales and ..OfFemale to ..OfFemales.
- CHG: Capitalize all global constant variables.
- CHG: Stop loading submodules when simuPOP is imported using 'from simuPOP import *'.
version 0.9.8 - Rev 3074 (Oct 28, 2009)
- BUG: Fix a memory leak bug in pyParentsChooser.
- CHG: mapSelector now accepts a dictionary of tuples, instead of strings.
- CHG: mapPenetrance now accepts a dictionary of tuples, instead of strings.
- CHG: Remove function individual.intInfo.
- CHG: cloneGenoTransmitter accepts 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 ancGen in population.indByID as 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 infoFields to paramFields in operator
pySelector.
- CHG: Change parameter selectors to ops in operator pySelector.
- 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 pyQuanTrait so 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 vspMap to combinedSplitter that can define VSPs by union of VSPs.
- NEW: add parameter ranges to infoSplitter.
- NEW: add productSplitter that 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 maleProp to operator initSex.
- NEW: Add support for haplodiploid population and sex chromosomes to
mapSelector.
- NEW: Add support of haploid population to maSelector.
version 0.9.7 - Rev 2983 (Sep 26, 2009)
- 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.
- 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 (internal): Recycle unused genotypic structure to save some memory.
- BUG: Fix a bug for the calculation of Armitage trend tests.
- NEW: Use AllAvail as default parameters for parameters loci, reps and subPops
and use [] for its intended meaning: nothing.
- CHG: Merge functions AlleleType(), Optimized(), simuVer(), simuRev() to ModuleInfo().
- BUG: Fix the save/load of default dictionaries.
- 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.
- NEW: Add pedigreeTagger.
- NEW: Add operator initInfo and its function form InitInfo.
- NEW: Add operator summaryTagger.
- 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.
- NEW: Add function population.indByID to identify individuals, even ancestors, by individual ID.
- CHG: Revise trajectory simulation classes and functions. Adjust how
controlledOffspringGenerator takes input.
- NEW: Add support for VSP to pointMutator.
- CHG: Rename module simuUtil to simuPOP.utils, simuRPy to simuPOP.plotter.
- CHG: Rename class simuOpt.simuOpt to simuOpt.simuParam to avoid name conflict.
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 tupe (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.
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 and
reimplement them 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.
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.
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.
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: More 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.
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 newSubPopSizeExpr and rename newSubPopSize to subPopSize,
and newSubPopSizeFunc to subPopSizeFunc.
- CHG: Merge parameters subPopSize and subPopSizeFunc. 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, numOffspringParam and mode to numOffspring
in offspringGenerator.
- CHG: Merge parameter sexParam to sexMode in offspringGenerator.
- CHG: Rename mating scheme binomialSelection to randomSelection.
- CHG: Merge parameters convProb, convMode and convParam to convMode in
recombinator.
- BUG: Fix option shuffleOffspring in heteroMating().
- CHG: Change the default output of parentsTagger when only one parent is passed.
- CHG: Remove parameter numParents from offspringGenerator and 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. Rename setIndexOfRelatives
to traceRelatives.
- 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::at to take a single number in addition to a list.
- NEW: Disallow parameter alias locus to 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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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.
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.
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