All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Added
cryptography
module among the dependencies
- github actions to publish the repo to PyPI and publish mkdocs on new release event
- Replace ruamel.yaml with pyyaml lib
- Updated GitHub actions
- Replaced alchy lib with sqlservice
- Unfreeze SQLAlchemy
- Add missing brew path to GitHub action. It has been removed from PATH variable in Ubuntu
- Badges on README page
- Freeze SQLAlchemy to a version <1.4 to avoid report creation crashing
- Fix links to documentation pages
- docker-compose and Makefile
- adds link to publication
- Dockerfile
- Added the Docker image build and push triggered by new releases
- Added github action running pytest and coveralls
- Software deployment instructions
- User can pass on file with row separated gene IDs for coverage calculation
- added CLI commands
Version 4 slims down Chanjo quite a bit.
- Lots of test, now 100% test coverage!
- Cascade rules to make sure stats records get deleted with parent sample
- Switched from Read the Docs to GitBook for documentation
- Updated demo
- Old database schema with explicit exon/gene records
- setup and tear down session in Flask app usage
- All new transcript focused schema, generally activated by
--transcript
flag in CLI, this significantly reduces the database footprint and speeds up loading to only a few seconds for a full exome
- properly report if a CLI subcommand is not found
- properly output results from "calculate region"
- show error message for unknown region ids
- fix sqlite issue when adding both
exon_obj
andexon_id
- make schema more strict about which columns need to exist
- add indexes to models, especially to
exon_stat.metric
to speed up queries - speed up loading by front-loading existing exons (~7 min)
- update resources bundled in the
bootstrap
command, now includes database with exons + slicing sites
- travis-ci setup for testing
- do a rollback of failed transactions on "save"
- show progress of load command on "info" level
- diagnostic yield function now accepts "exon_ids" explicitly and requires "sample_id" to be given
- fixed bug in SQL relationship between gene and transcript
sex
subcommand for guessing sex from BAM alignment, see #158
- chanjo API: restrict converter queries to distinct/unique rows
- import from root init, use root logger
Code name: "Radical Red Panda"
This is a major new release. Please refer to the documentation for more details on what has been updated.
- Add functionality to run sambamba from chanjo
- Add calulate command to get basic statistics from database
- Add link command to specifically link genomic elements
- Add db command to interface and perform maintainance on database
- Support for older versions of Chanjo
- Changed way of logging
- Added proper logstream handler
- Refactor
EntryPointsCLI
to allow for external subcommands - Updated documentation to reflect Chanjo 2.x CLI
- use custom "multi command class" to load dynamic entry point plugins
- some pylint improvements
- New logging module accessible from the command line (-vvv)
- Add SQL schema drawing to "Code walkthrough"
- Fix incorrectly references ID field in join statement (block_stats)
- Read sample ID from BAM header
- Validate BED format in "annotate"
- Enable getting config values from "chanjo.toml" (
chanjo config annotate.cutoff
)
- Fix issue with hardlinks in Vagrant shared folders (setup.py)
- Change Travis CI setup using official guidelines
- Fix typography in docs
- Use io.open instead of codecs.open
- Use .sqlite3 extension for SQLite databases
- Better error message when overwriting existing databases
- Fix misstake in "import" subcommand so it's finally working!
- Fix bug in "import" where the program didn't flush the session before committing.
- Change "build_interval_data" to only create model without adding to the session.
- Use "scoped_session" with "sessionmaker".
- Flush session before each commit call in
chanjo.Store.save()
- Fix interval assertion that didn't allow intervals to start and end on the same chromosomal position.
- Add lazy loading of
chanjo.Store` through new
chanjo.Store.connect` method - Much improved documentation of changes between releases
- Fix case where "demo" subcommand fails (``package` not set)
- Rename misspelled method (non-breaking):
chanjo.Store.tare_down` to
chanjo.Store.tear_down`
- Fix some CSS selectors in theme
- Reorder API references in API docs
- Fixes broken symlinked demo/fixture files
- Adds validation to check that stdin isn't empty
- Fixes link to logo on front page
- Adds John Kern as collaborator
- Adds link to Master's Thesis paper for reference in README
- Adds more FAQ
Code name: "Wistful Weasel"
Being a major release, expect previous scripts written for Chanjo 1.x to be incompatible with Chanjo 2.x.
-
New built-in "demo" subcommand in the CLI
-
New public setuptools entry point for Chanjo plugins (CLI subcommands)
-
New of cial public Python API (stable until 3.x release). Read more in the new API documentation.
-
New "sex-checker" bonus command to guess gender from BAM alignment.
-
Command line interface updates
--out
option removed across CLI. Use>|
to redirect STDOUT instead.--prepend` is now known as
--prefix``--db
and--dialect
must be supplied directly after "chanjo" on the command line (not after the subcommand). Like:chanjo --db ./coverage.sqlite import annotations.bed
.--extend-by
is now--extendby
-
Config file format has changed from JSON to TOML. It's a more readable format (think INI) that also supports comments!
-
Improves BED-format compliance. Chanjo will now expect the "score" field to be in position 5 (and strand in position 6). The Chanjo specific fields start from position 7.
-
Major internal code restructuring. Essentially everything is built as plugins/self-contained components. Since no official Python API existed pre Chanjo 2, I won't go into any details here.
-
Improves documentation.
-
Last but not least, Chanjo will now code name releases according to animals in the Musteloidea superfamily :)
-
Introduces a new compat module to better support Python 2+3.
-
Trades command line framework from "docopt" to "click" to build more flexible nested commands.
-
Adds a first hand
BaseInterval
object to unify handling of intervals inside Chanjo. -
BamFile no-longer requires numpy as a hard dependency. You still likely want to keep it though for performance reasons.
Code name: "Rebel Raccoon"
First and current stable version of Chanjo.
- BREAKING: changes group_id field to string instead of int.
- Exposes the threshold option to the CLI for optimizing BAM-file reading with SAMTools, fixes #58
- UPDATE: Small updates to the command line interface
- UPDATE: New tests for new functions
- NEW: MySQL support added
- CHANGE: A lot of internal restructuring from classes to functions
- IMPROV ENT: New structure seems to significantly improve speed Documentation
- UPDATE: New documentation covering new features/structure
- NEW: Table with Sample meta-data
- UPDATE: CLI creates sample entries
- UPDATE: SQL structure in docs
- UPDATE: Updated tests
- UPDATE: included test data (MANIFEST.in) - more on this later...
- NEW: API - annotate: splice sites option
- NEW: CLI - annotate: splice sites option
- UPDATE: Much improved documentation
- UPDATE: Modern setuptools only installation
- UPDATE: New cleaner banner
- NEW: travis integration
New CLI!
- New Command Line: "chanjo" replaces "chanjo-autopilot"
- Ability to save a temporary JSON file when running Chanjo in parallel (avoids writing to SQLite in several instances)
- New command line option: peaking into a database
- New command line option: building a new SQLite database skeleton
- New command line option: import temporary JSON files
- New command line option: reading coverage from any interval from BAM-file
- Many small bugfixes and minor improvements
- New dependency: path.py