You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/CHANGELOG.md
+13-9Lines changed: 13 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,23 +7,27 @@ authors:
7
7
8
8
# Changelog
9
9
10
-
## [0.X.X] - XXXX-XX-XX
10
+
## [0.4.1] - Unreleased
11
11
12
12
### Added
13
13
14
-
- Implemented core data objects in Rust using PyO3 for improved performance and safety.
15
-
- Added extensive tests to ensure full parity between Python and Rust implementations.
14
+
-`seqspec auth` in Python and Rust with `init`, `path`, `list`, and `resolve` subcommands.
15
+
-`seqspec print -f seqspec-html`, a self-contained HTML view that shows the library molecule, reads, and nested region metadata.
16
+
- Additional parity tests for Python and Rust command behavior.
16
17
17
18
### Changed
18
19
19
-
- Switched build system in `pyproject.toml` to use `maturin` for Rust extension integration.
20
-
- Updated packaging and development workflow to support Rust-backed modules.
20
+
-`seqspec upgrade` now upgrades `0.3.0` specs to `0.4.0` in both implementations.
21
+
- Python and Rust now share the same core command surface for `auth`, `check`, `find`, `file`, `format`, `index`, `info`, `init`, `insert`, `methods`, `modify`, `onlist`, `print`, `split`, `upgrade`, and `version`.
22
+
-`seqspec build` is deprecated in both CLIs and remains as a compatibility stub.
23
+
- Older specs are loaded more permissively before upgrade, which makes `0.2.x` and `0.3.x` specs easier to normalize.
24
+
-`seqspec onlist -s region-type` now errors when matches span multiple reads in a modality. Use `-s read` or `-s region` to disambiguate.
21
25
22
-
### Removed
23
-
24
-
- Removed `to_dict` and `update_from` attributes from all objects; refactored related tests and class structures.
26
+
### Fixed
25
27
26
-
#### Breaking changes
28
+
- Rust `load_spec` now reads gzipped seqspec YAML.
29
+
- Python `seqspec check` and `seqspec onlist` can use auth profiles for remote resources.
30
+
- Python local gzipped onlist validation now detects `.gz` files correctly.
Copy file name to clipboardExpand all lines: docs/INSTALLATION.md
+14-1Lines changed: 14 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,8 +25,21 @@ pip install seqspec
25
25
uv pip install seqspec
26
26
```
27
27
28
-
Verify the installation
28
+
Install from source if you want the current working tree.
29
+
30
+
```bash
31
+
# Python package with the Rust core
32
+
uv run maturin develop
33
+
34
+
# standalone Rust CLI
35
+
cargo install --path .
36
+
```
37
+
38
+
Verify the installation.
29
39
30
40
```bash
31
41
seqspec --version
42
+
seqspec auth path
32
43
```
44
+
45
+
`seqspec` accepts plain YAML and gzipped YAML (`.yaml.gz`). Remote resources can be configured with `seqspec auth` and used with `--auth-profile` in commands such as `seqspec check` and `seqspec onlist`.
build Generate a complete seqspec with natural language (LLM-assisted)
32
+
auth Manage remote authentication profiles
33
+
build Deprecated. This command will be removed.
33
34
check Validate seqspec file against specification
34
35
find Find objects in seqspec file
35
36
file List files present in seqspec file
@@ -52,27 +53,73 @@ optional arguments:
52
53
53
54
`seqspec` operates on `seqspec` compatible YAML files that follow the specification. All of the following examples will use the `seqspec` specification for the [DOGMAseq-DIG](https://doi.org/10.1186/s13059-022-02698-8) assay which can be found here: `seqspec/examples/specs/dogmaseq-dig/spec.yaml`.
54
55
56
+
Any command that takes `yaml` also accepts gzipped specs such as `spec.yaml.gz`.
57
+
58
+
The `build` command is deprecated. Use `seqspec init`, `seqspec insert`, and `seqspec modify` instead.
59
+
55
60
:::{attention}
56
61
**IMPORTANT**: Many `seqspec` commands require that the specification be properly formatted and error-corrected. Errors in the spec can be found with `seqspec check` (see below for instructions). The spec can be properly formatted (or "filled in") with `seqspec format`. It is recommended to run `seqspec format` followed by `seqspec check` after writing a new `seqspec` (or correcting errors in an existing one).
## `seqspec check`: Validate seqspec file against specification
60
104
61
105
Check that the `seqspec` file is correctly formatted and consistent with the [specification](https://github.com/IGVF/seqspec/blob/main/docs/SPECIFICATION.md).
- optionally, `-o OUT` when set with `-f`, writes the joined onlist to this file; when set without `-f`, downloads remote onlists locally and prints paths.
- optionally, `--auth-profile PROFILE` uses a named auth profile for protected remote onlists.
631
+
- `yaml` corresponds to the `seqspec` file and may be plain YAML or `.yaml.gz`.
579
632
580
-
_Note_: If, forexample, there are multiple regions with the specified `region_type`in the modality (e.g. multiple barcodes), then`seqspec onlist` will return a path to an onlist that it generates where the entries in that onlist are the cartesian product of the onlists for all of the regions found.
633
+
_Note_: `-s region-type` is only valid when the matching regions come from one read geometry. If the same `region_type` appears across multiple reads inthe modality, `seqspec onlist` errors and asks you to use `-s read` or `-s region` instead.
@@ -720,38 +775,43 @@ seqspec version [-h] [-o OUT] yaml
720
775
```
721
776
722
777
```python
723
-
from seqspec.seqspec_version import run_version
724
-
run_version(spec_fn, o)
778
+
from seqspec.seqspec_version import seqspec_version
779
+
from seqspec.utils import load_spec
780
+
781
+
seqspec_version(load_spec("spec.yaml"))
725
782
```
726
783
727
784
- optionally, `-o OUT` path to file to write output.
728
-
- `yaml` corresponds to the `seqspec` file.
785
+
- `yaml` corresponds to the `seqspec` file and may be plain YAML or `.yaml.gz`.
729
786
730
787
### Examples
731
788
732
789
```bash
733
790
# Get versions of tool and file
734
791
$ seqspec version spec.yaml
735
-
seqspec version: 0.3.0
736
-
seqspec file version: 0.3.0
792
+
seqspec version: 0.4.0
793
+
seqspec file version: 0.4.0
737
794
```
738
795
739
796
## (HIDDEN) `seqspec upgrade`: Upgrade seqspec file from older versions to the current version
740
797
741
-
This is a hidden subcommand that upgrades an old version of the spec to the current one. It is not intended to be used in a production environment.
798
+
This is a hidden subcommand that upgrades an old version of the spec to the current one. It upgrades `0.0.x`, `0.1.x`, `0.2.0`, and `0.3.0` specs to `0.4.0`.
742
799
743
800
```bash
744
801
seqspec upgrade [-h] [-o OUT] yaml
745
802
```
746
803
747
804
```python
748
-
from seqspec.seqspec_upgrade import run_upgrade
749
-
run_upgrade(spec_fn, o)
805
+
from seqspec.seqspec_upgrade import seqspec_upgrade
0 commit comments