encode-toolkit 0.3.1__tar.gz → 0.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/.gitignore +10 -3
- encode_toolkit-0.3.3/CHANGELOG.md +159 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/CITATION.cff +1 -1
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/PKG-INFO +2 -2
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/README.md +1 -1
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/pyproject.toml +1 -1
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/client/constants.py +1 -1
- encode_toolkit-0.3.1/CHANGELOG.md +0 -69
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/LICENSE +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/PRIVACY.md +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/SECURITY.md +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/conftest.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/__init__.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/__main__.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/client/__init__.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/client/auth.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/client/downloader.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/client/encode_client.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/client/models.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/client/tracker.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/client/validation.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/server/__init__.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/server/__main__.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/src/encode_connector/server/main.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/__init__.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/test_auth.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/test_bioinformatics_audit.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/test_client.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/test_downloader.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/test_models.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/test_packaging.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/test_server.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/test_tool_responses.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/test_tracker.py +0 -0
- {encode_toolkit-0.3.1 → encode_toolkit-0.3.3}/tests/test_validation.py +0 -0
|
@@ -37,9 +37,16 @@ node_modules/
|
|
|
37
37
|
*.swp
|
|
38
38
|
*.swo
|
|
39
39
|
|
|
40
|
-
#
|
|
41
|
-
.claude/
|
|
42
|
-
.
|
|
40
|
+
# AI assistant configuration and notes (never commit)
|
|
41
|
+
.claude/
|
|
42
|
+
CLAUDE.md
|
|
43
|
+
CLAUDE.local.md
|
|
44
|
+
AGENTS.md
|
|
45
|
+
GEMINI.md
|
|
46
|
+
.mcp.json
|
|
47
|
+
!plugin/.mcp.json
|
|
48
|
+
.cursorrules
|
|
49
|
+
.aider*
|
|
43
50
|
|
|
44
51
|
# Runtime data
|
|
45
52
|
*.db
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the ENCODE Toolkit will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.3.3] - 2026-09-20
|
|
9
|
+
|
|
10
|
+
Pipeline skills release. The Python package (MCP server) is functionally identical to 0.3.2.
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **All seven Nextflow pipelines now run on current Nextflow (validated on 26.04.6).** The
|
|
15
|
+
workflows mixed top-level statements with process definitions and four configs defined a
|
|
16
|
+
function, both of which the strict parser rejects. Validation and channel setup moved into the
|
|
17
|
+
`workflow` block, and `check_max` was replaced by `process.resourceLimits`.
|
|
18
|
+
- **ChIP-seq**: the workflow called each process twice (samples, then controls), which Nextflow
|
|
19
|
+
does not allow, so it could not start. Controls now go through the same calls and are split
|
|
20
|
+
off before peak calling, where they are pooled. `--control` is optional. Signal tracks now
|
|
21
|
+
receive the sample ID they were missing.
|
|
22
|
+
- **CUT&RUN**: SEACR was given the control BAM instead of a control bedGraph; spike-in scale
|
|
23
|
+
factors were computed but never applied to the signal track; `--seacr_mode` was ignored;
|
|
24
|
+
MACS2 peak calling always failed on a no-op `mv`; fragments were extracted from a
|
|
25
|
+
coordinate-sorted BAM, which drops most read pairs; `--control` and chromosome sizes were
|
|
26
|
+
not staged into tasks.
|
|
27
|
+
- **DNase-seq**: Hotspot2 was called with options it does not have and without its mandatory
|
|
28
|
+
center-sites file; the image pinned a Hotspot2 tag that does not exist and lacked `modwt`
|
|
29
|
+
and `bc`. Footprinting could pair a BAM with another sample's peaks. `--hotspot_index` is
|
|
30
|
+
replaced by `--hotspot_center_sites` and `--hotspot_mappable`.
|
|
31
|
+
HINT footprinting needs an RGT data directory that the container's unprivileged user could
|
|
32
|
+
never find; it is now an explicit input, `--rgt_data`, checked before the run starts.
|
|
33
|
+
- **WGBS**: the bedMethyl conversion divided by zero on MethylDackel's header line, so
|
|
34
|
+
extraction always failed; only CpG was converted although CHG and CHH were promised;
|
|
35
|
+
`--no_overlap` toggled `--mergeContext`, which is unrelated to mate overlap (renamed
|
|
36
|
+
`--merge_context`). bedMethyl score and strand now follow the ENCODE format.
|
|
37
|
+
- **RNA-seq**: the RSEM reference is a file prefix but was required to be a directory.
|
|
38
|
+
- **ATAC-seq**: the BAM index was not passed to the Tn5 shift step, which `alignmentSieve`
|
|
39
|
+
requires; the mitochondrial fraction used `bc`, which the image lacked, and silently wrote an
|
|
40
|
+
empty value; duplication metrics were never published. The workflow now states that it needs
|
|
41
|
+
paired-end reads instead of filtering every single-end read away.
|
|
42
|
+
- **Hi-C**: `pairtools sort` was given a temporary directory that was never created. HiCCUPS
|
|
43
|
+
now runs its CPU mode by default, because the image has no CUDA runtime (`--hiccups_gpu`).
|
|
44
|
+
- **IDR** (ChIP-seq, ATAC-seq) picked two peak files in arbitrary order and crashed with a
|
|
45
|
+
single replicate. The pair is now sorted, and IDR is skipped below two replicates.
|
|
46
|
+
- **Pipeline images had never been built.** Beyond missing `build-essential`, `unzip`, `bc`, and
|
|
47
|
+
Boost: `idr`, `trim-galore`, and `phantompeakqualtools` are not PyPI packages; `deeptools
|
|
48
|
+
3.5.4` was never published; BWA 0.7.17 does not link with current GCC (now 0.7.18); Picard 3
|
|
49
|
+
needs Java 17; MethylDackel needs libBigWig; SEACR could not find its R script through a
|
|
50
|
+
symlink; RGT 0.13.2 and pairtools 1.0.3 no longer install (now 1.0.2 and 1.1.2). Index
|
|
51
|
+
prefixes are resolved from staged files, so cloud executors work.
|
|
52
|
+
- **Conda environment files** pinned packages that do not exist (`hotspot2`, `hint`, `f-seq2`)
|
|
53
|
+
or cannot be installed together. All seven now solve, and the Anaconda `defaults` channel is
|
|
54
|
+
no longer used.
|
|
55
|
+
- Pipelines referenced container images that do not exist. Each config now uses an image built
|
|
56
|
+
from the skill's own Dockerfile, with a fixed tag and a `--container` override.
|
|
57
|
+
- `gcp` profiles used the retired `google-lifesciences` executor; they now use `google-batch`.
|
|
58
|
+
- QC references: `samtools view` needs `-L` for a BED file; the WGBS coverage one-liner never
|
|
59
|
+
counted bases at 5x or more.
|
|
60
|
+
|
|
61
|
+
### Changed
|
|
62
|
+
|
|
63
|
+
- **Removed parameters that had no effect**: `--aligner` and `--lambda_genome` (WGBS),
|
|
64
|
+
`--motif_db` (DNase-seq), `--restriction_site` (Hi-C), `--gtf` (RNA-seq). The skills now
|
|
65
|
+
describe what the workflows actually do.
|
|
66
|
+
- `install-nextflow.sh` installs a pinned Nextflow release and verifies its SHA-256 before use,
|
|
67
|
+
instead of piping a remote script into a shell. It no longer fails when the install
|
|
68
|
+
directory is not on the `PATH`.
|
|
69
|
+
- `install-python-packages.sh` installs against `constraints.txt`, a lock file with exact
|
|
70
|
+
versions for Python 3.10+, generated from `requirements.in`.
|
|
71
|
+
- The pipeline guide now separates the official ENCODE WDL pipelines from this toolkit's own
|
|
72
|
+
Nextflow implementations, and no longer cites repositories or images that do not exist.
|
|
73
|
+
Pipeline images are no longer labelled as maintained by the ENCODE DCC.
|
|
74
|
+
|
|
75
|
+
### Added
|
|
76
|
+
|
|
77
|
+
- `Pipelines` CI workflow: `nextflow lint`, `nextflow run -preview` across parameter
|
|
78
|
+
combinations, profile resolution, a Docker build of every pipeline image with checks that
|
|
79
|
+
the tools each workflow calls are present and actually start, a dry-run solve of every conda
|
|
80
|
+
environment, shellcheck, and a `skills/` vs `plugin/skills/` identity check.
|
|
81
|
+
|
|
82
|
+
## [0.3.2] - 2026-09-20
|
|
83
|
+
|
|
84
|
+
Maintenance release. The Python package is functionally identical to 0.3.1.
|
|
85
|
+
|
|
86
|
+
### Fixed
|
|
87
|
+
|
|
88
|
+
- `bioinformatics-installer` skill: the ChIP-seq walkthrough pointed at `scripts/chipseq-env.yml`
|
|
89
|
+
(the file lives in `environments/`) and at an `annotation-env.yml` that did not exist. The first
|
|
90
|
+
path is corrected and the second is replaced with an explicit `conda create` command.
|
|
91
|
+
|
|
92
|
+
### Changed
|
|
93
|
+
|
|
94
|
+
- Removed local tooling configuration files from the repository and ignored them going forward.
|
|
95
|
+
- `CONTRIBUTING.md` and `docs/SHOWCASE.md` now use the ENCODE Toolkit name and the current skill
|
|
96
|
+
count (47).
|
|
97
|
+
|
|
98
|
+
## [0.3.1] - 2026-09-20
|
|
99
|
+
|
|
100
|
+
### Fixed
|
|
101
|
+
|
|
102
|
+
- **Server failed to start on fresh installs.** The `mcp` dependency had no upper bound, so new
|
|
103
|
+
environments resolved `mcp` 2.x, which removed `mcp.server.fastmcp`. Startup then crashed with
|
|
104
|
+
`ModuleNotFoundError: No module named 'mcp.server.fastmcp'`. The dependency is now capped at
|
|
105
|
+
`mcp[cli]>=1.0,<2`. Existing installs that already had `mcp` 1.x were not affected.
|
|
106
|
+
|
|
107
|
+
If you hit this error, uv may have cached the broken environment. Refresh it once with
|
|
108
|
+
`uvx --refresh encode-toolkit` (or `uv cache clean encode-toolkit`); pip users can run
|
|
109
|
+
`pip install --upgrade encode-toolkit`.
|
|
110
|
+
|
|
111
|
+
### Security
|
|
112
|
+
|
|
113
|
+
- The ChIP-seq, ATAC-seq, and RNA-seq pipeline Dockerfiles now download the UCSC
|
|
114
|
+
`bedGraphToBigWig` executable over HTTPS instead of plain HTTP.
|
|
115
|
+
|
|
116
|
+
### Changed
|
|
117
|
+
|
|
118
|
+
- The source distribution now contains only the Python package, tests, and project documents.
|
|
119
|
+
It previously bundled the whole repository, including editor configuration and a duplicate
|
|
120
|
+
copy of the plugin tree (1.6 MB down to 118 KB). The wheel is unchanged.
|
|
121
|
+
- Updated dead GREAT links in the `peak-annotation` and `multi-omics-integration` skills.
|
|
122
|
+
|
|
123
|
+
### Added
|
|
124
|
+
|
|
125
|
+
- Packaging regression test that fails if the `mcp` dependency loses its upper bound.
|
|
126
|
+
|
|
127
|
+
## [0.3.0-beta.1] - 2026-03-08
|
|
128
|
+
|
|
129
|
+
Initial public beta release.
|
|
130
|
+
|
|
131
|
+
### Features
|
|
132
|
+
|
|
133
|
+
- **20 MCP tools** for searching, downloading, and tracking ENCODE data
|
|
134
|
+
- Search experiments and files with comprehensive filters and pagination
|
|
135
|
+
- Download files with MD5 verification, concurrent downloads, and directory organization
|
|
136
|
+
- Local experiment tracking with SQLite (publications, pipelines, quality metrics)
|
|
137
|
+
- Cross-reference with PubMed, bioRxiv, ClinicalTrials.gov, GEO
|
|
138
|
+
- Citation export (BibTeX, RIS) for reference managers
|
|
139
|
+
- Data provenance chain for derived files
|
|
140
|
+
- Batch download with dry-run preview
|
|
141
|
+
|
|
142
|
+
- **47 skills** across 10 categories
|
|
143
|
+
- Core: setup, search, download, track, cross-reference
|
|
144
|
+
- Analysis: quality assessment, integrative analysis, regulatory elements, epigenome profiling, compare biosamples, visualization, motif analysis, peak annotation, batch analysis
|
|
145
|
+
- Functional genomics: CRISPR/MPRA/STARR-seq screen analysis
|
|
146
|
+
- Data aggregation: histone, accessibility, Hi-C, methylation
|
|
147
|
+
- External databases: UCSC, GEO, gnomAD, Ensembl, GTEx, ClinVar, CELLxGENE, GWAS Catalog, JASPAR
|
|
148
|
+
- Workflows: provenance, citations, variant annotation, pipelines, single-cell, disease research, publication trust, bioinformatics installer, scientific writing, liftover coordinates
|
|
149
|
+
- Pipeline execution: ChIP-seq, ATAC-seq, RNA-seq, WGBS, Hi-C, DNase-seq, CUT&RUN (Nextflow + Docker)
|
|
150
|
+
- Meta-analysis: scRNA-seq meta-analysis, multi-omics integration
|
|
151
|
+
|
|
152
|
+
- **Async ENCODE API client** with retry logic, 1-hour TTL cache, and rate limiting
|
|
153
|
+
- **OS keyring credential management** with Fernet-encrypted file fallback
|
|
154
|
+
- **Thread-safe SQLite tracker** with full transaction safety
|
|
155
|
+
- **Streaming downloads** with 64KB chunks and SSRF-safe redirect validation
|
|
156
|
+
- **568 tests** with 98% code coverage
|
|
157
|
+
- **34 literature reference documents** (~320 papers cataloged with DOI, PMID, key findings)
|
|
158
|
+
- **9 scientist-facing vignettes** with real ENCODE API output
|
|
159
|
+
- **GitHub Actions CI/CD** (pytest across Python 3.10–3.13, ruff lint, plugin validation)
|
|
@@ -8,7 +8,7 @@ authors:
|
|
|
8
8
|
given-names: Alex M.
|
|
9
9
|
orcid: "https://orcid.org/0000-0003-0907-464X"
|
|
10
10
|
affiliation: "Independent Researcher"
|
|
11
|
-
version: 0.3.
|
|
11
|
+
version: 0.3.3
|
|
12
12
|
date-released: "2026-09-20"
|
|
13
13
|
license: AGPL-3.0-only
|
|
14
14
|
repository-code: "https://github.com/ammawla/encode-toolkit"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: encode-toolkit
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: MCP server for querying and downloading ENCODE Project genomics data directly from Claude
|
|
5
5
|
Project-URL: Homepage, https://github.com/ammawla/encode-toolkit
|
|
6
6
|
Project-URL: Repository, https://github.com/ammawla/encode-toolkit
|
|
@@ -37,7 +37,7 @@ Description-Content-Type: text/markdown
|
|
|
37
37
|
|
|
38
38
|
[](LICENSE)
|
|
39
39
|
[](https://www.python.org/downloads/)
|
|
40
|
-
[](CHANGELOG.md)
|
|
41
41
|
[]()
|
|
42
42
|
[](docs/skill-vignettes/)
|
|
43
43
|
[](src/encode_connector/server/main.py)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
[](https://www.python.org/downloads/)
|
|
7
|
-
[](CHANGELOG.md)
|
|
8
8
|
[]()
|
|
9
9
|
[](docs/skill-vignettes/)
|
|
10
10
|
[](src/encode_connector/server/main.py)
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "encode-toolkit"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.3"
|
|
8
8
|
description = "MCP server for querying and downloading ENCODE Project genomics data directly from Claude"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "AGPL-3.0-only"
|
|
@@ -17,7 +17,7 @@ try:
|
|
|
17
17
|
|
|
18
18
|
_version = importlib.metadata.version("encode-toolkit")
|
|
19
19
|
except importlib.metadata.PackageNotFoundError:
|
|
20
|
-
_version = "0.3.
|
|
20
|
+
_version = "0.3.3"
|
|
21
21
|
USER_AGENT = f"encode-toolkit/{_version} (MCP; +https://github.com/ammawla/encode-toolkit)"
|
|
22
22
|
|
|
23
23
|
# Keyring service name for credential storage
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to the ENCODE Toolkit will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [0.3.1] - 2026-09-20
|
|
9
|
-
|
|
10
|
-
### Fixed
|
|
11
|
-
|
|
12
|
-
- **Server failed to start on fresh installs.** The `mcp` dependency had no upper bound, so new
|
|
13
|
-
environments resolved `mcp` 2.x, which removed `mcp.server.fastmcp`. Startup then crashed with
|
|
14
|
-
`ModuleNotFoundError: No module named 'mcp.server.fastmcp'`. The dependency is now capped at
|
|
15
|
-
`mcp[cli]>=1.0,<2`. Existing installs that already had `mcp` 1.x were not affected.
|
|
16
|
-
|
|
17
|
-
If you hit this error, uv may have cached the broken environment. Refresh it once with
|
|
18
|
-
`uvx --refresh encode-toolkit` (or `uv cache clean encode-toolkit`); pip users can run
|
|
19
|
-
`pip install --upgrade encode-toolkit`.
|
|
20
|
-
|
|
21
|
-
### Security
|
|
22
|
-
|
|
23
|
-
- The ChIP-seq, ATAC-seq, and RNA-seq pipeline Dockerfiles now download the UCSC
|
|
24
|
-
`bedGraphToBigWig` executable over HTTPS instead of plain HTTP.
|
|
25
|
-
|
|
26
|
-
### Changed
|
|
27
|
-
|
|
28
|
-
- The source distribution now contains only the Python package, tests, and project documents.
|
|
29
|
-
It previously bundled the whole repository, including editor configuration and a duplicate
|
|
30
|
-
copy of the plugin tree (1.6 MB down to 118 KB). The wheel is unchanged.
|
|
31
|
-
- Updated dead GREAT links in the `peak-annotation` and `multi-omics-integration` skills.
|
|
32
|
-
|
|
33
|
-
### Added
|
|
34
|
-
|
|
35
|
-
- Packaging regression test that fails if the `mcp` dependency loses its upper bound.
|
|
36
|
-
|
|
37
|
-
## [0.3.0-beta.1] - 2026-03-08
|
|
38
|
-
|
|
39
|
-
Initial public beta release.
|
|
40
|
-
|
|
41
|
-
### Features
|
|
42
|
-
|
|
43
|
-
- **20 MCP tools** for searching, downloading, and tracking ENCODE data
|
|
44
|
-
- Search experiments and files with comprehensive filters and pagination
|
|
45
|
-
- Download files with MD5 verification, concurrent downloads, and directory organization
|
|
46
|
-
- Local experiment tracking with SQLite (publications, pipelines, quality metrics)
|
|
47
|
-
- Cross-reference with PubMed, bioRxiv, ClinicalTrials.gov, GEO
|
|
48
|
-
- Citation export (BibTeX, RIS) for reference managers
|
|
49
|
-
- Data provenance chain for derived files
|
|
50
|
-
- Batch download with dry-run preview
|
|
51
|
-
|
|
52
|
-
- **47 skills** across 10 categories
|
|
53
|
-
- Core: setup, search, download, track, cross-reference
|
|
54
|
-
- Analysis: quality assessment, integrative analysis, regulatory elements, epigenome profiling, compare biosamples, visualization, motif analysis, peak annotation, batch analysis
|
|
55
|
-
- Functional genomics: CRISPR/MPRA/STARR-seq screen analysis
|
|
56
|
-
- Data aggregation: histone, accessibility, Hi-C, methylation
|
|
57
|
-
- External databases: UCSC, GEO, gnomAD, Ensembl, GTEx, ClinVar, CELLxGENE, GWAS Catalog, JASPAR
|
|
58
|
-
- Workflows: provenance, citations, variant annotation, pipelines, single-cell, disease research, publication trust, bioinformatics installer, scientific writing, liftover coordinates
|
|
59
|
-
- Pipeline execution: ChIP-seq, ATAC-seq, RNA-seq, WGBS, Hi-C, DNase-seq, CUT&RUN (Nextflow + Docker)
|
|
60
|
-
- Meta-analysis: scRNA-seq meta-analysis, multi-omics integration
|
|
61
|
-
|
|
62
|
-
- **Async ENCODE API client** with retry logic, 1-hour TTL cache, and rate limiting
|
|
63
|
-
- **OS keyring credential management** with Fernet-encrypted file fallback
|
|
64
|
-
- **Thread-safe SQLite tracker** with full transaction safety
|
|
65
|
-
- **Streaming downloads** with 64KB chunks and SSRF-safe redirect validation
|
|
66
|
-
- **568 tests** with 98% code coverage
|
|
67
|
-
- **34 literature reference documents** (~320 papers cataloged with DOI, PMID, key findings)
|
|
68
|
-
- **9 scientist-facing vignettes** with real ENCODE API output
|
|
69
|
-
- **GitHub Actions CI/CD** (pytest across Python 3.10–3.13, ruff lint, plugin validation)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|