# Changelog

## 6.0.5
- add support for large mzIdentML files

## 6.0.4
- refactor code to parse search result using snakemake (previously: plain python)

## 6.0.3
- fix command line interface option "prepare-dbs". It now accepts additional snakemake options and will work if the job 
  config contains acc2annot_mapper tasks

## 6.0.2
- fix database migration for setups that contain multiple versions of the same db 

## 6.0.1
- fix prophane path detection in CLI

## 6.0
### Breaking Changes
change of command line interface:

    prophane -> prophane.py run
    prophane --list-dbs -> prophane.py list-dbs
    prophane --list-styles -> prophane.py list-styles

### Features
Automatically download databases that are specified in the job-config. On first run of prophane, run prophane init {DB_DIR} where DB_DIR is an empty or non existant directory. To execute prophane, run prophane run {path-to-job-config}.

### Changes
* bump the db_schema version to 5
* task and plot files now include the database version number instead of the md5sum: tasks/{annot_type}_annot_by_{tool}_on_{db_type}.v{db_version}.task{taskid}.{ext}

## 5.1.1
- add mamba dependency

## 5.1
- add parser for proteome discoverer output

## 5.0.2
- fix mztab parser skipping samples without associated spectra and not counting all spectra

## 5.0.1
- fix parsing of spectra IDs from protein group yaml and some test files

## 5.0.0
### Breaking Changes
LCA determination of proteins with multiple annotations: If a species/lineage is found for all protein accessions in a protein group, this species/lineage is chosen as LCA. Before: if any other species was determined --> various.

### Features
LCA determination with two different methods:
1. (default) per protein group (with threshold, default: 1). If the ratio of proteins assigned to an ancestor is at least as high as the threshold, this ancestor is assigned to the entire group (multiple above threshold --> lca with highest support). Changes previous default behaviour. For example if a species/lineage is found for all protein accessions in one group, this species/lineage has a support of 100% and is chosen by the new lca-methode as LCA. Before: if any other species was determined --> various.
2. democratic: takes the one with highest occurrence among all protein groups in the whole task
    
New columns in summary.txt: lca-support, describing the number of proteins/spectra assigned to the respective LCA. Also the summary rule is adjusted for csv export, we only have to adjust the separator and includes spectra in output (if available).

## 4.3.0          
- add additional locations for general config: 
    - `{PROPHANE_INSTALL_DIR}/general_config.yaml`
    - `$HOME/.config/prophane.yaml`
    - `/etc/prophane.yaml`
- add additional input formats mzidentml and mztab (see documentation of input config)

## 4.2.2
- fix crash due to failing of mafft alignment for very large numbers of protein groups
- fix scaffold results parsing if one of the sample columns contains non-string values.

## 4.2.1
- fix version string

## 4.2
- adapt scaffold parser to new scaffold output format (maintaining compatibility with old format)
- search result parsing: remove decoys before checking accession format
- test.sh: move working directory to `${TMPDIR:-.}/prophane_test-${USER:-}`
- test.sh: export test environment to `${TMPDIR:-.}/prophane_test-${USER:-}/test_environment.yaml`

## 4.1
- prophane can now parse non-UTF8-encoded search result and fasta files

## 4.0.6
- fix `--list-styles` command line option. A styles in the styles subfolder are now listed if they can be parsed.

## 4.0.5
- add support for MPA-server multisample format (produced by MPA >=3.4).The new MPA multisample format allows automatic parsing of sample descriptors. This way, users no longer need to explicitly list the sample descriptors for parsing by Prophane.
- fix deprecation warnings for string escape sequences and pandas

## 4.0.4
- improved error message for illegal accessions in proteomic search result: print illegal accessions instead of lists 
containing illegal accessions among legal ones

## 4.0.3
- speed up resolving of base environment (environment.yaml) by reordering conda channels
- add test for resolving of environment.yaml to CI
- bump snakemake dependency to >=5.7.0
- speed up tests by reusing rule specific conda environments

## 4.0.2
- reduce IO overhead by executing mafft related rules (run_mafft, report_mafft) once for all protein groups 
instead of once per protein group
- fix: minimal/maximal sequence length calculation now correctly handles gaps in the alignment

## 4.0.1
- include protein group number in mafft related progress messages

## 4.0.0
- BREAKING: rename main execution script from run.sh to prophane
- BREAKING: remove automatic activation of conda environment from main execution script to allow packaging for distribution with conda.
The conda environment for prophane now must be activated manually prior to prophane execution.

## 3.3.1
- fix: fail on non-defined task-parameters in config yaml

## 3.3.0
- Added new config key `search_result` in input section, which can be used in combination with all search result styles,
    making style-specific file keys obsolete
- Make `sample_groups` config section optional for input styles that allow it to reduce the number of mandatory 
    execution arguments  
  
  styles for which `sample_groups` is optional:
  - generic.yaml
  - mpa_1_8_x.yaml
  - scaffold_4_8_x.yaml
  
  styles for which `sample_groups` is mandatory:
  - mpa_server_multisample.yaml

## 3.2.0
- Added support for [FOAM DB](https://cbb.pnnl.gov/portal/software/FOAM.html)
- Added support for [Resfams DB](http://www.dantaslab.org/resfams)
- Added support for [CAZy/canDB](http://bcb.unl.edu/dbCAN2/download/Databases/)
