Skip to content

Commit 82f2fab

Browse files
committed
update of changelogs
1 parent 10ec1a2 commit 82f2fab

4 files changed

Lines changed: 154 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
- V 2.0.0.1:
2-
- Fixed two bugs in the handling of the new `referenceGenomeAssembly` POSEIDON.yml fields by `forge` and `genoconvert`.
31
- V 2.0.0.0:
42
- Incorporated the poseidon-analysis-hs library with the xerxes CLI software tool executable into the poseidon-hs repository.
3+
- Fixed two bugs in the handling of the new `referenceGenomeAssembly` POSEIDON.yml fields by `forge` and `genoconvert`.
54
- V 1.7.0.0:
65
- Changes to .janno columns according to Poseidon v3.0.0:
76
- Replaced column `Source_Tissue` with column `Source_Material`.

CHANGELOGRELEASE.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
1+
### V 2.0.0.0
2+
3+
This release ushers in a new era in the development of poseidon-hs: We merged the poseidon-analysis-hs library into poseidon-hs, which was previously developed in a separate repository [here](https://github.com/poseidon-framework/poseidon-analysis-hs).
4+
5+
We did this to keep xerxes, a software tool for Poseidon data analysis, fully in sync with trident. In the past xerxes often lagged behind and didn't use the most recent innovations and fixes available in poseidon-hs. We hope merging the repositories will make maintenance easier. So both software tools trident and xerxes will be versioned together from now on, starting with this release v2.0.0.0.
6+
7+
The large jump in the version number reflects the conceptual change in development strategy, and the pretty significant restructering that was necessary in the Haskell library code to house poseidon-analysis-hs in poseidon-hs. From a user perspective there were only minor changes in functionality:
8+
9+
#### trident
10+
11+
Since v1.7.0.0 we only fixed two minor bugs in `genoconvert` and `forge` regarding the handling of the new `POSEIDON.yml` fields `referenceGenomeAssembly` and `referenceGenomeAssemblyURL`. These were not properly forwarded/preserved in the respective operations. The `genoconvert` bug was reported in this [issue](https://github.com/poseidon-framework/poseidon-hs/issues/371).
12+
13+
#### xerxes
14+
15+
The last official xerxes release was v1.0.1.2. See `xerxes_legacy_changelog/` for a documentation of previous development. Internal development had reached v1.0.2.0, which added VCF writing support for `admixpops`.
16+
17+
#### Building process
18+
19+
Note that we had to remove the UPX compression we had applied in the past to some of the static executables build for trident and xerxes upon release. That means the v2.0.0.0 executables will most likely be larger.
20+
121
### V 1.7.0.0
222

323
This is a major release to add compatibility with Poseidon v3.0.0. It includes features to accomodate the new schema, and various other changes added since the last release V 1.6.7.3.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
- 1.0.2.0: Added VCF writing support to admixpops. Updated to newest poseidon-hs.
2+
- 1.0.1.2: Fixed a bug in the FStatConfig parser.
3+
- 1.0.1.0: fixed a bug in the FST estimation, added more graceful errors in case of illegal input for fstats
4+
- 1.0.0.2: Switched to poseidon-hs v1.4.0.3 and a new compiler (GHC 9.4.7) and stackage snapshot version (LTS-21.17)
5+
- 1.0.0.1: Switched to poseidon-hs v1.4.0.2
6+
- 1.0.0.0: Some key updates:
7+
- now uses newest poseidon-hs library (v1.4.0.0) with improved and clarified semantics for entity selectors
8+
- Fstats now uses the information in the column "Genotype_Ploidy" from the Janno file to improve bias-correction. Specifically, haploid samples
9+
contribute only one chromosome to the count in the bias-correction formula.
10+
- added a whitepaper to describe the mathematics of the statistics in "docs".
11+
- 0.3.5.0: Slightly different behaviour with outgroup-based ascertainment in RAS, now restricting to sites where the outgroup is homozygous
12+
- 0.3.4.0: Added an option to run admixpops on chunks, not just individual SNPs. Also some technical updates (GitHub actions, stack resolver version).
13+
- 0.3.3.0: Switched to poseidon-hs v1.2.1.0, which supports Poseidon v2.7.1.
14+
- 0.3.2.0: Added feature to output per-block statistics in Fstats.
15+
- 0.3.1.0: Switched to poseidon-hs v1.1.11.0, which includes better Plink input options.
16+
- 0.3.0.0: A number of changes when integrating paagen into xerxes:
17+
- Switched to GHC v8.10.7
18+
- Ran stylish-haskell and enabled a GitHub action that checks if new code follows its default guidelines
19+
- Added and endabled the subcommand admixpops (formerly part of the independent tool paagen)
20+
- Added the infrastructure for direct genotype data handling for admixpops (not yet for fstats and ras, though)
21+
- Added a normal code check GitHub Action to make sure the master branch compiles and the tests run through
22+
- Updated the colog logging to the new setup in poseidon-hs v1.1.1.0
23+
- Replaced some parsing code with a dependency to Poseidon.CLI.OptparseApplicativeParsers added in poseidon-hs v1.1.1.2
24+
- Integrated some of the error handling innovations (e.g. --logMode/--errLength) from trident in xerxes
25+
- 0.2.2.0: Added a no-transitions-option to fstats.
26+
- 0.2.1.0: Big code refactoring, first tests, and optimization boost with allele-frequency lookup-tables.
27+
- 0.2.0.4: Fixed bug with ascertainment: Polymorphic sites in the ascertainment-outgroup now get filtered out.
28+
- 0.2.0.3: Fixed nr of arguments bug with F3vanilla
29+
- 0.2.0.2: Removed redundant log output after loading the config file.
30+
- 0.2.0.1: fixed spaceleak in the final table-printing in ras
31+
- 0.2.0.0: new config-file input for fstats, including ascertainment options.
32+
- 0.1.3.1: Fixed missing-table-out bug
33+
- 0.1.3.0: Added F4 output to ras.
34+
- 0.1.2.4: Rounded stdout value output in fstats to 4 digits.
35+
- 0.1.2.3: fixed table output bug in fstats
36+
- 0.1.2.2: bedfile now optional.
37+
- 0.1.2.1: added a --bedFile flag
38+
- 0.1.2.0: Added a --noTransitions flag
39+
- 0.1.1.1: Fixed a bug that caused the outgroup to be ignored in the main loop of RAS.
40+
- 0.1.1.0: Simplified and improved the CLI API for xerxes RAS
41+
- 0.1.0.0: Decided for first major version number 1, as FStats has received such major upgrades.
42+
- 0.0.1.1: Slighty modified error calculation with normalized F3.
43+
- 0.0.1.0: Major optimization of Fstats, added lots of new statistics, space leak fixed. Normalization of F3-statistics now similar to ADMIXTOOLS.
44+
- 0.0.0.4: Fixed Bug with parsing F-Statistics
45+
- 0.0.0.2: Bug fix with indexing in RAS. Added output of normalisation count to output table.
46+
- 0.0.0.1: Initial commit. Copied the fstats command from poseidon-hs.
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# V1.0.1.1: new release pipeline
2+
3+
This minor release replaces the pipeline to produce static `xerxes` executables for every release.
4+
5+
Just like `trident`, `xerxes` will now be available in the following pre-compiled versions:
6+
7+
- `xerxes-conda-linux` (for bioconda)
8+
- `xerxes-Linux` (build on Ubuntu 20.04 for X64 architecture)
9+
- `xerxes-macOS-ARM64` (build on macOS 14 for ARM64 architecture)
10+
- `xerxes-macOS-X64` (build on macOS 13 for X64 architecture)
11+
- `xerxes-Windows`
12+
13+
`xerxes` now also depends on the latest poseidon-hs version 1.5.0.1.
14+
15+
# V1.0.1.0: FST fix and better user input checks
16+
17+
This release fixes a bug in the estimation of FST. We have now exactly implemented the estimator presented in Bhatia et al. 2013
18+
(see whitepaper), and confirmed numerical equivalence with estimation by admixtools.
19+
20+
We have also now checked for degenerate statistics (for example F2(A, A) or F3(A, B, A)) and in those cases now output exactly zero.
21+
Previously, due to bias corrections, results could become negative.
22+
23+
Finally, we have implemented a check for illegal sample sizes. In particular for F3(A, B, C), where C is a haploid outgroup, we now
24+
throw a helpful error that one should rather use F3vanilla, since F3 in that case is undefined due to its use of the heterozygosity of
25+
C in the bias-correction term (see whitepaper).
26+
27+
# V1.0.0.2: performance-fix due to update of poseidon-hs dependency
28+
29+
This release simply updates the dependency on poseidon-hs, which in turn [fixed a performance leak](https://github.com/poseidon-framework/poseidon-hs/releases/tag/v1.4.0.3) with our entity selection framework.
30+
31+
# V1.0.0.1: specify package-versions in fstats, genotype ploidy and whitepaper
32+
33+
This release updates to the latest version of poseidon-hs (v1.4.0.2), which introduced a major clarification and improvement of the entity-selection language, that also powers the selection language to specify groups in fstats and define the statistics.
34+
35+
In particular, appending a version of a package after the package-name is now possible, both in group selection and statistic definitions. For example, here is a possible fstats configuration file:
36+
37+
```YAML
38+
groupDefs:
39+
Group1: ["*package1-v1.0.0*", "group2", "<pac1-v2.3.4:group:name>"]
40+
fstats:
41+
- type: F2
42+
a: ["Group1", "Spanish"]
43+
b: ["Han", "CEU2"]
44+
```
45+
46+
Second, fstats now uses the information in the column "Genotype_Ploidy" from the Janno file to improve bias-correction. Specifically, haploid samples contribute only one chromosome to the count in the bias-correction formula.
47+
48+
We also now added a whitepaper (available under `docs/`), which details the bias-correction and many other aspects of the mathematical basis for F-Statistics. The whitepaper may expand to other aspects of xerxes in the future.
49+
50+
# V0.3.4.0: Poseidon 2.7.1 and running admixpops in chunks
51+
52+
This release yet again updates the version of poseidon-hs (to v1.2.1.0). This enables `xerxes` to read Poseidon packages of version 2.7.1. We also switched to a newer stack resolver version and updated the GitHub Actions for automatic testing.
53+
54+
One new feature was added: The code for the `admixpops` subcommand was refactored to include a new input flag `--inChunks`. This allows to sample not just on the level of individual SNPs for the construction of artificial ancestry-chimeras, but also in chunks, so longer stretches of SNPs of length `--chunkSize`. Please note that `admixpops` remains experimental with no guarantees of correctness.
55+
56+
# V0.3.2.0: Poseidon 2.7.0 and fstats-block-output
57+
58+
- This release updates the underlying Poseidon library, which makes this version now compatible with newest Poseidon packages of version 2.7.0.
59+
- We also added a new feature to `xerxes fstats` to output statistics per Jackknife-block.
60+
- The output was also prettified using our central log-functionality.
61+
- The GHC compiler which this package depends upon has also been updated to a much newer release than the version before. In particular, this new compiler runs on the newest Mac M2 Macbook-Pros (which the previous ones did not).
62+
63+
# V0.3.0.0: Added a first implementation of admixpops
64+
65+
For this release we integrated the very experimental artificial ancestry generation subcommand `admixpops` into xerxes (formerly a component of a tool called [paagen](https://github.com/nevrome/paagen)). We also added some innovations from trident for logging, error handling and code maintenance.
66+
67+
`admixpops` allows to generate individuals with randomized genotype profiles based on arbitrary input populations. Running it for example with the following `--admixString` would yield an artificial individual `Ind1` with 10% ancestry from the reference population Mbuti, 20% from Han, and 70% from French: `"[Ind1:Pop1](Mbuti=10+Han=20+French=70)"`. The implemented algorithm is (trivial) SNP-wise weighted random-sampling. `admixpops` is therefore only an experimental feature and the current implementation will likely change in the future.
68+
69+
In the process of adding it to xerxes, we also upgraded the latter with some of the (recent) improvements in trident. From a user-perspective the only relevant changes are the new general options `--logMode` and `--errLength`, which give you more control over the logging output and error messages.
70+
71+
# V0.2.1.0: Optimized fstats with allele-frequency lookups
72+
73+
This release internally optimizes the core loop by creating lookup tables for allele frequencies, so that they can be reused for the various statistics.
74+
75+
Code has been refactored and unit tests introduced.
76+
77+
Logging is partly implemented with Co-Log now, but not fully yet.
78+
79+
# V0.2.0.0: New config file input, ascertainment and adhoc-groups Latest
80+
81+
This is a big release with three new features in Xerxes fstats:
82+
83+
1.) A new input option for F-Statistics using a YAML configuration file, supporting automatic looping through multiple statistics.
84+
2.) The option of entering SNP ascertainment, using allele frequency bounds in a reference population
85+
3.) The option of defining adhoc-groups, for example to exclude outlier individuals from populations without changing the genotype data files.
86+
87+
See documentation on https://poseidon-framework.github.io/#/xerxes

0 commit comments

Comments
 (0)