diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index a8cb9ed..f3d04fe 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,27 +1,65 @@ --- title: Changelog -date: 2024-06-25 +date: 2024-10-08 authors: - name: A. Sina Booeshaghi --- # Changelog -## [0.2.x] - XXXX-XX-XX +## [0.3.0] - XXXX-XX-XX (Unreleased) + +### Added + +- Added typing hints to many `Assay` and `Region` functions +- Added `'k key` to `seqspec info` to display one of `meta` for metadata, `sequence_spec` for sequence spec, and `library_spec` for library spec +- Added `-f format` to `seqspec info` to enable multiple formats for displaying info +- Added support for 0 length regions in the specification +- Added ability to modify reads using `seqspec modify` +- `seqspec init` now accepts read information +- Added templates and updated documentation to myst, website +- Added new examples (e.g., dogmaseq-dig) +- Added File object to Read +- Added SeqKit, SeqProtocol, LibKit, and LibProtocol attributes +- Added option to specify multiple SeqKit, SeqProtocol, LibKit, LibProtocol for each modality +- Added name validation against known list of SeqKit, SeqProtocol, LibKit, LibProtocol +- Added new attributes to Onlist object (Onlist now contains a File object): + - filetype + - filesize + - url +- Added "file_id" to the File object +- Added `seqspec file` command to return the list of files in the spec as paired across reads or interleaved +- Added `seqspec upgrade` hidden feature to upgrade v0.2.x seqspec files to v0.3.0. ### Changed +- Updated `seqspec index` to read strands for chromap +- Updated `seqspec split` to correctly split sequence_spec +- Modified `seqspec` string to use min_len instead of max_len to accommodate nanopore reads +- Updated documentation on how to propose new vocabulary - Modified the internals of `seqspec onlist` to manage saving the joined onlist to the `-o` location when specified (otherwise saves to path where spec lives). +- Renamed "location" to "urltype" in Onlist object +- Replaced `-r` with `-i` id type for all functions (deprecated `-r`) +- Multiple seqspec commands now require the addition of a `-s selector [read, region, file]` +- `seqspec index` can now take in reads, regions, or files and index +- `seqspec modify` can now add files to the template +- Updated splitseq template -### Added +### Fixed -- Add typing hints to many `Assay` and `Region` functions -- Add `'k key` to `seqspec info` to display one of `meta` for metadata, `sequence_spec` for sequence spec, and `library_spec` for library spec -- Add `-f format` to `seqspec info` to enable multiple formats for displaying info +- Fixed `seqspec onlist` functionality +- Fixed error enumeration in seqspec check ### Removed -### Fixed +TODO: + +- Remove `lib_struct` +- Remove `parent_id` + +### Breaking Changes + +- File elements are now required in Read objects and Onlist objects in version 0.3.0 ## [0.2.0] - 2024-04-17 @@ -47,22 +85,22 @@ authors: - Update `seqspec print` command to use the replacement `assay_id` attribute instead of `assay` - Implement downloading onlists via URLs and transparently decompress gzip files - Change `read_list` function to take the `onlist` object for handling local and remote files -- Add `onlist` argument to specify combined barcode list file format (kallisto's multi-file format and default cartesian product format) +- Added `onlist` argument to specify combined barcode list file format (kallisto's multi-file format and default cartesian product format) ### Added -- Add `sequence_spec` in the `Assay` object -- Add `Read` object in the `sequence_spec` object -- Add `sequence_spec` to the seqspec json schema -- Add `Read` object to specification document -- Add `Read` generator to website GUI -- Add pattern matching to `date` in `Assay` (expected date format: DAY MONTH YEAR, where day is one or two numbers, month is the full named month starting with a Capital letter and year is the full year) -- Add `library_kit` to `Assay` object (kit that adds seq adapters) -- Add `library_protocol` to `Assay` object (library that generates insert) -- Add `sequence_kit` to `Assay` object -- Add website to view example `seqspec` objects -- Add `get_seqspec` to assay returns sequence structure for a given modality -- Add multiple checks to `seqspec check` +- Added `sequence_spec` in the `Assay` object +- Added `Read` object in the `sequence_spec` object +- Added `sequence_spec` to the seqspec json schema +- Added `Read` object to specification document +- Added `Read` generator to website GUI +- Added pattern matching to `date` in `Assay` (expected date format: DAY MONTH YEAR, where day is one or two numbers, month is the full named month starting with a Capital letter and year is the full year) +- Added `library_kit` to `Assay` object (kit that adds seq adapters) +- Added `library_protocol` to `Assay` object (library that generates insert) +- Added `sequence_kit` to `Assay` object +- Added website to view example `seqspec` objects +- Added `get_seqspec` to assay returns sequence structure for a given modality +- Added multiple checks to `seqspec check` - check read modalities exist in assay modalities - check primer ids from seqspec are unique and exists as region ids in libspec - check that the primer id exists as an atomic region (currently a strong assumption that may be relaxed in the future) @@ -75,14 +113,14 @@ authors: - check that the min len is less than or equal to the max len - check that the length of the sequence is between min and max len - Note a strong assumption in `seqspec print` is that the sequence have a length equal to the `max_len` for visualization purposes -- Add `RegionCoordinate` object that maps `Region` min/max lengths to 0-indexed positions +- Added `RegionCoordinate` object that maps `Region` min/max lengths to 0-indexed positions - `seqspec onlist` searches for onlists in a `Region` based on `--region` flag -- Add type annotations for `join_onlists` to clarify it needs a list of `Onlist` objects -- Add minimal tests for `RegionCoordinate`, `project_regions_to_coordinates`, `run_onlist_region`, `run_onlist_read`, and seqspec print functions -- Add list of options to CLI for `-f FORMAT` within `seqspec onlist` and `seqspec print` -- Add `-s SEQTYPE` to `seqspec print` to disambiguate printing `sequence`, `library`, or `libseq` objects. TODO wrap `seqspec info` into `seqspec print -f info`. -- Add `-s SPECOBJECT` to `seqspec onlist`. Specify specific object `read`, `region`, or `region-type` for finding the `onlist`. -- Add fetching ability for seqspec onlist from remote with IGVF credentials (credit to @detrout) +- Added type annotations for `join_onlists` to clarify it needs a list of `Onlist` objects +- Added minimal tests for `RegionCoordinate`, `project_regions_to_coordinates`, `run_onlist_region`, `run_onlist_read`, and seqspec print functions +- Added list of options to CLI for `-f FORMAT` within `seqspec onlist` and `seqspec print` +- Added `-s SEQTYPE` to `seqspec print` to disambiguate printing `sequence`, `library`, or `libseq` objects. TODO wrap `seqspec info` into `seqspec print -f info`. +- Added `-s SPECOBJECT` to `seqspec onlist`. Specify specific object `read`, `region`, or `region-type` for finding the `onlist`. +- Added fetching ability for seqspec onlist from remote with IGVF credentials (credit to @detrout) ### Removed @@ -95,6 +133,6 @@ TODO: - Sequencing overlapping pairs now supported - `seqspec check` correctly handles sequences lengths longer than the stated min/max range -- Fix test for `project_regions_to_coordinates` +- Fixed test for `project_regions_to_coordinates` - Get the test of seqspec check working again by updating the schema for the refactored example specification YAML files and mocking fastq and barcode files - Only return the onlist filename if it's a local file, downloading remote lists when needed