Releases: ConesaLab/SQANTI3
Release v6.0.1
What's Changed
- Fix TUSCO wiki links in README by @TianYuan-Liu in #592
- Updaed pixi environment handling by @pabloati in #599
- fix: rename ref_num_exons to ref_exons to match CSV fieldnames by @dprokopov in #598
- fix: improve parallel scaling, input compatibility, and resolve API mismatches by @CarlosBlancoGo in #593
- Releases/v6.0.1 by @pabloati in #601
New Contributors
- @dprokopov made their first contribution in #598
Full Changelog: v6.0...v6.0.1
Release 6.0
Explanation
This is a major release of SQANTI3. The fundamental changes revolt around the rescue module, with some changes to the order and structure of the QC classification table.
SQANTI3 QC module
There has been an adition of the outputs from TD2 into the classification file, such as the Psauron score, the type of CDS and the protein length. Some columns have been rearranged, to have a more logical order (subcategory goes after structural_category). Internal changes have been done to the classess that handle the isoforms during the workflow, but this will not impact the user experience, only facilitate development and speed.
Several aspects of the classification table have been optimized. The columns of diff_to_TTS and diff_to_TSS have been changed so they show the nucleotide distance of the "spliced" transcripts, and two new columns have been added to show the genomic distance of the TSS/TTS of the isoforms (diff_to_TT/SS_genomic). As well, the ref_legnth and ref_exons columns have been set to NA for non-FSM/ISM transcripts, since they have no reference associated (before the value that was being shown was that of the best reference match)
New plots have been incuded in the report, to take advantage of the information that TD2 outputs, in comparison with GMST.
SQANTI3 Filter module
Minor changes have been introduced here, mainly bugfixes and validation of the categoruies in the rule filter
SQANTI3 Rescue module
The logic behind rescue has been altered, specially when it comes to the rescue-by-mapping pipeline. Now, the best isoform hit will be selected based on the alignment score that minimap2 produces. This will guide the selection of the rescued isoform.
The requantification module has been fully implemented into the code. The couns fo the artifact will be added to the counts of either their best matching isoform (either from the reference or from the long-reads defined transcriptome) or to the Transcirpt Divergency. For more information on the logic, process and results, please visit the wiki, where the pipeline is explained in detail.
SQANTI reads
Quality of life improvements have been introduced, to make clearer for the user the different arguments of SQANTI-reads
What's Changed
- Included json categories check by @pabloati in #491
- Reestructuration of the classes used for classification by @pabloati in #499
- Improved the ORF prediction by @pabloati in #522
- Fix FL column serialization for multi-sample datasets by @Copilot in #535
- Bugfix/filter report by @pabloati in #542
- Fixed quality control report and environment installation and tests action by @pabloati in #563
- Updated abundance file parsing and count processs by @pabloati in #564
- Pythonize rescue by @pabloati in #566
- Rescue testing suite by @pabloati in #567
- Requantification revamp by @pabloati in #571
- Remove pb dependency by @pabloati in #572
- Filter output modified by @pabloati in #573
- Sqanti reads updates by @pabloati in #574
- Conda arm64 bug by @carolinamonzo in #578
- Fixing reads bugs by @carolinamonzo in #577
- Fix example configs by @fmerinocasallo in #582
- Fix TUSCO report crash when gene identifiers are not all-uppercase by @TianYuan-Liu in #588
- Update conda environment specs by @fmerinocasallo in #583
- Refactor transcript parsing and integrate genomic/spliced differences by @pabloati in #590
- New
pixi.tomlto support Pixi environments by @fmerinocasallo in #584 - Release v6.0 by @pabloati in #591
New Contributors
- @fmerinocasallo made their first contribution in #582
Full Changelog: v5.5.4...v6.0
Release v6.0-beta
THIS IS A PRE-RELEASE TO TEST THE NEW FUNCTIONALITY OF SQANTI3.
Explanation
This is a major release of SQANTI3. The fundamental changes revolt around the rescue module, with some changes to the order and structure of the QC classification table.
SQANTI3 QC module
There has been an adition of the outputs from TD2 into the classification file, such as the Psauron score, the type of CDS and the protein length. Some columns have been rearranged, to have a more logical order (subcategory goes after structural_category). Internal changes have been done to the classess that handle the isoforms during the workflow, but this will not impact the user experience, only facilitate development and speed.
New plots have been incuded in the report, to take advantage of the information that TD2 outputs, in comparison with GMST.
SQANTI3 Filter module
Minor changes have been introduced here, mainly bugfixes and validation of the categoruies in the rule filter
SQANTI3 Rescue module
The logic behind rescue has been altered, specially when it comes to the rescue-by-mapping pipeline. Now, the best isoform hit will be selected based on the alignment score that minimap2 produces. This will guide the selection of the rescued isoform.
The requantification module has been fully implemented into the code. The couns fo the artifact will be added to the counts of either their best matching isoform (either from the reference or from the long-reads defined transcriptome) or to the Transcirpt Divergency. For more information on the logic, process and results, please visit the wiki, where the pipeline is explained in detail.
SQANTI reads
Quality of life improvements have been introduced, to make clearer for the user the different arguments of SQANTI-reads
What's Changed
- Included json categories check by @pabloati in #491
- Reestructuration of the classes used for classification by @pabloati in #499
- Fix docker chmod copyup by @TianYuan-Liu in #521
- tusco: remove species GTF dependency; use TSV + refGTF for plotting by @TianYuan-Liu in #520
- Improved the ORF prediction by @pabloati in #522
- Fix FL column serialization for multi-sample datasets by @Copilot in #535
- Bugfix/filter report by @pabloati in #542
- Fixed quality control report and environment installation and tests action by @pabloati in #563
- Updated abundance file parsing and count processs by @pabloati in #564
- Pythonize rescue by @pabloati in #566
- Rescue testing suite by @pabloati in #567
- Requantification revamp by @pabloati in #571
- Remove pb dependency by @pabloati in #572
- Filter output modified by @pabloati in #573
- Sqanti reads updates by @pabloati in #574
- Conda arm64 bug by @carolinamonzo in #578
Full Changelog: v5.5.1...v6.0
Full Changelog: v5.5.4...v6.0-alpha
Release v5.5.4
Release aiming at fixing two main issues:
- In the case of having duplicated isoform and reference IDs rescue could crash (some tools like Bamboo or Flair assing the name of the refence to the isoforms in the transcriptome if a perfect match is found)
- In the parallelization, the isoform_hits option was bugged, as well as a small bug with the corruption of a header in the abundance calculation.
What's Changed
- Add disk space cleanup to DockerHub release workflow by @Copilot in #549
- parallel issue fixed by @pabloati in #557
- Fixed parallelization isoforms_hits by @pabloati in #560
- Optimize GitHub Actions workflows with path filters and caching by @Copilot in #558
Full Changelog: v5.5.3...v5.5.4
Release v5.5.3
Quick release to fix some important issues that arose in SQANTI3 in the last days. The next release (hopelfuly) will implement major changes in the pipeline!
What's Changed
- Bugfix/rescue duplications 545 by @pabloati in #546
- Fix to saturation plots failing when isoforms lacked counts by @pabloati in #548
- Fix to the abundance count pipeline in the parallel mode, pointed out by #556 by @pabloati
Full Changelog: v5.5.2...v5.5.3
Release v5.5.2
Bugfix release aimed at fixing minor error in the filter report, compilation of conda packages and testing and the classification file
What's Changed
- Changed ujc_counts.csv file reads grouping by @CarlosBlancoGo in #518
- Fix docker chmod copyup by @TianYuan-Liu in #521
- tusco: remove species GTF dependency; use TSV + refGTF for plotting by @TianYuan-Liu in #520
- Changed ujc_counts.csv file reads grouping by @CarlosBlancoGo in #519
- Minor bug in the report by @alexpan00 in #525
- docker: fix build by removing manual compilation and fixing conda TOS by @TianYuan-Liu in #528
- TUSCO: Improve TSV parsing and update human gene list by @TianYuan-Liu in #529
- Fix conda environment Python 3.11.13 compatibility and add macOS CI testing by @TianYuan-Liu in #530
- made plotting step optional in sqanti reads by @fairliereese in #533
- Filter report and reference length update by @pabloati in #543
- Releases/v5.5.2 by @pabloati in #544
New Contributors
- @fairliereese made their first contribution in #533
Full Changelog: v5.5.1...v5.5.2
Release v5.5.1
Minor bugfixes from previous version plus a conda environment upgrade
What's Changed
- Fix: Update to python's version to 3.11.13, to prevent freezes in TD2, as found by @FabianJetzinger
- Fix: preprocess corrected.gtf with gffread before gtftools in make_UJ… by @pabloati in #494
- Fix check of categorical rules with multiple values by @FabianJetzinger in #497
- Bugfix/negative strand positions 493 by @pabloati in #506
- Bugfix/isoannot 500 by @pabloati in #510
- Releases/v5.5.1 by @pabloati in #511
Full Changelog: v5.5...v5.5.1
Release v5.5
🛠️ Minor Release
This minor release main change is the subsitution of GeneMarkS-T for TransDecoder2 to predict ORFs. This change was done due to the outdating of GMST and its constant issues that we could not solve. Moreover, some essential bugfixes and QOL improvements have been added to the repository. Read below for more information.
✨ Improvements
- Automatic detection of
@SQheaders in SAM files. - Added multiple checks for
gene_nameattributes in reference annotations when required. - Improved error handling in rescue rules when no valid rules are provided.
- Significantly faster rescue file writing (no shell call overhead).
- Enhanced output management and reduced type errors in
filterML.
🐞 Bugfixes
- Fixed logging: missing files now raise appropriate warnings or errors.
- Boolean values in the config file are now correctly detected by the wrapper.
IsoAnnotLitenow checks for thegene_nameattribute in the reference.- Fixed rescue output generation when no GTF is provided.
- Custom TP/TN sets and
remove_columnsinfilterMLare now handled correctly. SQANTI-readsadapted to the updated argument parser.- Fixed string conversion issue in
myQueryTranscripts.__str__()when printingNone. - TSS ratio counts have been corrected.
- CDS prediction bugs fixed.
- Fixed IO handling and logging behaviors.
🔧 Changes
- GMST has been replaced by TD2.
SQANTI-readsupdated to use the new argument format.- Output filenames for CDS predictions have been made more descriptive.
- Examples updated for consistency with the new version.
- Rescue script reverted to its previous argument style.
📌 What's Changed (from PRs)
- Fix failure of
myQueryTranscripts.__str__()when printing value of an invalid object [#455] by @diekhans - TSS ratio counts fixed [#457](#457) by @pabloati
- IO handling and logging improved [#462] by @pabloati
- Rescue
argparsefixes [#463] by @pabloati - Fixed custom TP/TN sets and
remove_columns[#465]by @FabianJetzinger - Included SAM header detection [#468] by @pabloati
- Added user input validation on ´IsoAnnotLite´ and ´gene_name´ [#469] by @pabloati
- CDS prediction fixes [#470] by @pabloati
- Improved output management [#477] by @pabloati
- Type error fixes in filters [#478] by @pabloati
- ORF prediction enhancements [#486] by @pabloati
- Updated filter testing suite [#487] by @pabloati
- Version bump to v5.5 [#490] by @pabloati
- Small update to SQANTI-reads to standarize the format of the GTFs [#494] by @TianYuan-Liu
- Fix to SQANTI filter rules, to apply multioptions in categies as OR, rather than AND [#497] by @FabianJetzinger
🙌 New Contributor
- @FabianJetzinger made their first contribution in [#465](#465) 🎉
🔗 Full Changelog: v5.4...v5.5
Release 5.4
Introduction
This release introducessignificant changes in SQANTI3.
- Introduciton of a loggin system --> Now, all theouptut to the console is controlled via a python logger. The external tools log is redirected to their respective files in the directory logs of each run.
- Creation of a wrapper and a config file to run SQANTI3. This wrapper now works via a config file, thus some arguments and the way the parser works have been changed to be adapted to the wrapper
- Reestructurarion of the filter module. Most of its scripts have been pythonized and the internal organization has been changed, with modifications to the file namings
- Reestructuration of rescue module. Similar to filter, with most of the scirpts changed from R to python, eliminating many calls to external tools or the terminal
- Fixed many bugs that were found along the way. See commits and pull requests for more info
What's Changed
- Adition of the wrapper to SQANTI by @pabloati in #392
- Junctions classification issue fixed by @pabloati in #398
- Bugfix/gtf order by @pabloati in #399
- Logger by @pabloati in #400
- Tests/junctions processing by @pabloati in #401
- Github actions: test docker build each commit, and publish to dockerhub on release by @Fabian-RY in #418
- Conda testing by @Fabian-RY in #419
- FIX: conda change in latest docker failed by @Fabian-RY in #420
- Switch attribute parser to regex by @SwiftSeal in #423
- Size one cake peak fix by @pabloati in #430
- Bugfix/sqanti reads by @pabloati in #432
- Bugfix/sqanti reads paula by @pabloati in #435
- Filter restructuration by @pabloati in #436
- docs: update README.md by @eltociear in #438
- Bugfix/gff isoannot by @pabloati in #439
- Rescue reorganization by @pabloati in #449
- Qc report by @pabloati in #450
- Fixed issue 444 by @pabloati in #451
- Logger filesystem by @pabloati in #453
- Releases/v5.4 by @pabloati in #454
New Contributors
- @SwiftSeal made their first contribution in #423
- @eltociear made their first contribution in #438
Full Changelog: v5.3.6...v5.4
v5.3.6
What's Changed
- Update sqanti3_filter.py by @sbresnahan in #397
- Updated the fl count parser to accept floats in single samples by @pabloati in #406
- Input file processing upgraded to accept any kind og GTF by @pabloati in #407
- Fixed report to accept classification with junction types missing by @pabloati in #408
- Issue 390, pallete and flair input fixed by @pabloati in #412
- GMST directory saved after parallelization by @pabloati in #414
- Fixed bug where the isoform hits file was not being propperly created and the flag killed the process, as in issue 431
- Release 5.3.6 update by @pabloati in #415
New Contributors
- @sbresnahan made their first contribution in #397
Full Changelog: v5.3.5...v5.3.6