@pikaa-ai/pikaa 0.3.22 → 0.3.24
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.
- package/assets/brand/orbit-logo-option4-whale.jpg +0 -0
- package/assets/brand/orbit-logo.jpg +0 -0
- package/assets/brand/orbit-logo.png +0 -0
- package/assets/brand/orbit-logo.svg +3 -0
- package/dist/cli.js +448 -181
- package/dist/index.js +22 -2
- package/package.json +1 -2
- package/skills/adaptyv/SKILL.md +0 -240
- package/skills/aeon/SKILL.md +0 -402
- package/skills/analytical-method-validation/SKILL.md +0 -299
- package/skills/anndata/SKILL.md +0 -431
- package/skills/arbor/SKILL.md +0 -152
- package/skills/arboreto/SKILL.md +0 -267
- package/skills/astropy/SKILL.md +0 -353
- package/skills/autoskill/SKILL.md +0 -233
- package/skills/benchling-integration/SKILL.md +0 -229
- package/skills/bgpt-paper-search/SKILL.md +0 -75
- package/skills/bids/SKILL.md +0 -237
- package/skills/biopython/SKILL.md +0 -472
- package/skills/bioservices/SKILL.md +0 -399
- package/skills/bulk-rnaseq/SKILL.md +0 -198
- package/skills/cellxgene-census/SKILL.md +0 -283
- package/skills/cirq/SKILL.md +0 -370
- package/skills/citation-management/SKILL.md +0 -329
- package/skills/clinical-decision-support/SKILL.md +0 -238
- package/skills/clinical-decision-support/references/README.md +0 -62
- package/skills/clinical-reports/SKILL.md +0 -248
- package/skills/clinical-reports/references/README.md +0 -34
- package/skills/cobrapy/SKILL.md +0 -496
- package/skills/consciousness-council/SKILL.md +0 -151
- package/skills/dask/SKILL.md +0 -482
- package/skills/database-lookup/SKILL.md +0 -386
- package/skills/datamol/SKILL.md +0 -200
- package/skills/deepchem/SKILL.md +0 -244
- package/skills/deepspot-m/SKILL.md +0 -175
- package/skills/deeptools/SKILL.md +0 -412
- package/skills/depmap/SKILL.md +0 -301
- package/skills/dhdna-profiler/SKILL.md +0 -184
- package/skills/diffdock/SKILL.md +0 -488
- package/skills/dnanexus-integration/SKILL.md +0 -325
- package/skills/docx/SKILL.md +0 -99
- package/skills/esm/SKILL.md +0 -334
- package/skills/etetoolkit/SKILL.md +0 -327
- package/skills/exa-search/SKILL.md +0 -102
- package/skills/executing-plans/SKILL.md +0 -14
- package/skills/experimental-design/SKILL.md +0 -234
- package/skills/exploratory-data-analysis/SKILL.md +0 -280
- package/skills/flowio/SKILL.md +0 -310
- package/skills/fluidsim/SKILL.md +0 -279
- package/skills/frontend-design/SKILL.md +0 -100
- package/skills/generate-image/SKILL.md +0 -304
- package/skills/geniml/SKILL.md +0 -310
- package/skills/genomic-coordinates/SKILL.md +0 -189
- package/skills/genomic-intelligence/SKILL.md +0 -243
- package/skills/geomaster/README.md +0 -105
- package/skills/geomaster/SKILL.md +0 -366
- package/skills/geopandas/SKILL.md +0 -250
- package/skills/get-available-resources/SKILL.md +0 -260
- package/skills/gget/SKILL.md +0 -153
- package/skills/ginkgo-cloud-lab/SKILL.md +0 -106
- package/skills/glycoengineering/SKILL.md +0 -339
- package/skills/gtars/SKILL.md +0 -282
- package/skills/guardian-rails/SKILL.md +0 -54
- package/skills/histolab/SKILL.md +0 -243
- package/skills/hugging-science/SKILL.md +0 -132
- package/skills/hypogenic/SKILL.md +0 -290
- package/skills/hypothesis-generation/SKILL.md +0 -264
- package/skills/imaging-data-commons/SKILL.md +0 -496
- package/skills/infographics/SKILL.md +0 -315
- package/skills/iso-standards-readiness/SKILL.md +0 -352
- package/skills/lab-hardware-cad/SKILL.md +0 -372
- package/skills/labarchive-integration/SKILL.md +0 -216
- package/skills/lamindb/SKILL.md +0 -408
- package/skills/latchbio-integration/SKILL.md +0 -227
- package/skills/latex-posters/SKILL.md +0 -369
- package/skills/latex-posters/references/README.md +0 -439
- package/skills/liteparse/SKILL.md +0 -295
- package/skills/literature-review/SKILL.md +0 -263
- package/skills/markdown-mermaid-writing/SKILL.md +0 -322
- package/skills/market-research-reports/SKILL.md +0 -337
- package/skills/markitdown/SKILL.md +0 -264
- package/skills/matchms/SKILL.md +0 -276
- package/skills/matlab/SKILL.md +0 -274
- package/skills/matplotlib/SKILL.md +0 -378
- package/skills/medchem/SKILL.md +0 -321
- package/skills/modal/SKILL.md +0 -468
- package/skills/molecular-dynamics/SKILL.md +0 -458
- package/skills/molfeat/SKILL.md +0 -348
- package/skills/ncats-arax/SKILL.md +0 -178
- package/skills/networkx/SKILL.md +0 -440
- package/skills/neurokit2/SKILL.md +0 -323
- package/skills/neuropixels-analysis/SKILL.md +0 -412
- package/skills/nextflow/SKILL.md +0 -195
- package/skills/omero-integration/SKILL.md +0 -222
- package/skills/onekgpd/SKILL.md +0 -371
- package/skills/ontology-term-resolution/SKILL.md +0 -147
- package/skills/open-notebook/SKILL.md +0 -297
- package/skills/openpiv/SKILL.md +0 -469
- package/skills/opentrons-integration/SKILL.md +0 -322
- package/skills/optimize-for-gpu/SKILL.md +0 -176
- package/skills/owasp-top10/SKILL.md +0 -48
- package/skills/pacsomatic/LICENSE +0 -21
- package/skills/pacsomatic/SKILL.md +0 -150
- package/skills/paper-lookup/SKILL.md +0 -263
- package/skills/paperclip/SKILL.md +0 -413
- package/skills/paperzilla/SKILL.md +0 -159
- package/skills/parallel-web/SKILL.md +0 -128
- package/skills/pathml/SKILL.md +0 -222
- package/skills/pathogen-variant-surveillance/SKILL.md +0 -208
- package/skills/pathway-enrichment/SKILL.md +0 -194
- package/skills/pdf/SKILL.md +0 -322
- package/skills/peer-review/SKILL.md +0 -288
- package/skills/penetration-testing/SKILL.md +0 -31
- package/skills/pennylane/SKILL.md +0 -240
- package/skills/phylogenetics/SKILL.md +0 -409
- package/skills/pi-agent/SKILL.md +0 -83
- package/skills/pkpd-modeling/SKILL.md +0 -381
- package/skills/polars/SKILL.md +0 -393
- package/skills/polars-bio/SKILL.md +0 -379
- package/skills/ponytail/SKILL.md +0 -31
- package/skills/ponytail-audit/SKILL.md +0 -18
- package/skills/pptx/SKILL.md +0 -246
- package/skills/pptx-posters/SKILL.md +0 -258
- package/skills/primekg/SKILL.md +0 -99
- package/skills/protocolsio-integration/SKILL.md +0 -236
- package/skills/pufferlib/SKILL.md +0 -328
- package/skills/pydeseq2/SKILL.md +0 -369
- package/skills/pydicom/SKILL.md +0 -381
- package/skills/pyhealth/SKILL.md +0 -124
- package/skills/pylabrobot/SKILL.md +0 -216
- package/skills/pymatgen/SKILL.md +0 -404
- package/skills/pymc/SKILL.md +0 -310
- package/skills/pymoo/SKILL.md +0 -276
- package/skills/pyopenms/SKILL.md +0 -179
- package/skills/pysam/SKILL.md +0 -330
- package/skills/pytdc/SKILL.md +0 -297
- package/skills/pytorch-lightning/SKILL.md +0 -191
- package/skills/pyzotero/SKILL.md +0 -137
- package/skills/qiskit/SKILL.md +0 -259
- package/skills/qutip/SKILL.md +0 -317
- package/skills/rdkit/SKILL.md +0 -94
- package/skills/relsa-severity-assessment/SKILL.md +0 -354
- package/skills/research-grants/SKILL.md +0 -296
- package/skills/research-grants/references/README.md +0 -287
- package/skills/research-lookup/README.md +0 -106
- package/skills/research-lookup/SKILL.md +0 -338
- package/skills/rowan/SKILL.md +0 -398
- package/skills/scanpy/SKILL.md +0 -303
- package/skills/scholar-evaluation/SKILL.md +0 -296
- package/skills/scientific-brainstorming/SKILL.md +0 -282
- package/skills/scientific-critical-thinking/SKILL.md +0 -180
- package/skills/scientific-schematics/SKILL.md +0 -370
- package/skills/scientific-slides/SKILL.md +0 -379
- package/skills/scientific-visualization/SKILL.md +0 -285
- package/skills/scientific-writing/SKILL.md +0 -356
- package/skills/scikit-bio/SKILL.md +0 -470
- package/skills/scikit-learn/SKILL.md +0 -324
- package/skills/scikit-survival/SKILL.md +0 -313
- package/skills/scvelo/SKILL.md +0 -328
- package/skills/scvi-tools/SKILL.md +0 -201
- package/skills/seaborn/SKILL.md +0 -254
- package/skills/security-auditor/SKILL.md +0 -37
- package/skills/shap/SKILL.md +0 -282
- package/skills/simpy/SKILL.md +0 -283
- package/skills/stable-baselines3/SKILL.md +0 -325
- package/skills/statistical-analysis/SKILL.md +0 -446
- package/skills/statistical-power/SKILL.md +0 -200
- package/skills/statsmodels/SKILL.md +0 -238
- package/skills/sympy/SKILL.md +0 -354
- package/skills/systematic-debugging/SKILL.md +0 -35
- package/skills/tamarind/SKILL.md +0 -285
- package/skills/tdd/SKILL.md +0 -26
- package/skills/tiledbvcf/SKILL.md +0 -456
- package/skills/timesfm-forecasting/SKILL.md +0 -408
- package/skills/timesfm-forecasting/examples/global-temperature/README.md +0 -178
- package/skills/torch-geometric/SKILL.md +0 -458
- package/skills/torchdrug/SKILL.md +0 -241
- package/skills/transformers/SKILL.md +0 -195
- package/skills/treatment-plans/SKILL.md +0 -174
- package/skills/treatment-plans/references/README.md +0 -19
- package/skills/umap-learn/SKILL.md +0 -488
- package/skills/uncertainty-and-units/SKILL.md +0 -384
- package/skills/usfiscaldata/SKILL.md +0 -171
- package/skills/vaex/SKILL.md +0 -204
- package/skills/venue-templates/SKILL.md +0 -269
- package/skills/verification-before-completion/SKILL.md +0 -22
- package/skills/waypoint-bio/SKILL.md +0 -273
- package/skills/what-if-oracle/SKILL.md +0 -184
- package/skills/writing-plans/SKILL.md +0 -15
- package/skills/xlsx/SKILL.md +0 -110
- package/skills/zarr-python/SKILL.md +0 -241
package/dist/index.js
CHANGED
|
@@ -9100,6 +9100,27 @@ class SessionPersistenceManager {
|
|
|
9100
9100
|
return null;
|
|
9101
9101
|
}
|
|
9102
9102
|
}
|
|
9103
|
+
unbindSession() {
|
|
9104
|
+
for (const unsub of this.unsubscribers) {
|
|
9105
|
+
try {
|
|
9106
|
+
unsub();
|
|
9107
|
+
} catch {}
|
|
9108
|
+
}
|
|
9109
|
+
this.unsubscribers = [];
|
|
9110
|
+
}
|
|
9111
|
+
resumeIntoSession(session2, threadId) {
|
|
9112
|
+
const restored = this.loadSession(threadId);
|
|
9113
|
+
if (!restored)
|
|
9114
|
+
return null;
|
|
9115
|
+
this.unbindSession();
|
|
9116
|
+
session2.threadId = restored.thread.id;
|
|
9117
|
+
session2.setHistory(restored.items);
|
|
9118
|
+
if (restored.thread.model) {
|
|
9119
|
+
session2.model = restored.thread.model;
|
|
9120
|
+
}
|
|
9121
|
+
this.bindSession(session2, restored.thread.role);
|
|
9122
|
+
return restored;
|
|
9123
|
+
}
|
|
9103
9124
|
listSessions(options) {
|
|
9104
9125
|
return this.store.listThreads(options);
|
|
9105
9126
|
}
|
|
@@ -9119,7 +9140,6 @@ class SessionPersistenceManager {
|
|
|
9119
9140
|
// src/skills/loader.ts
|
|
9120
9141
|
import { existsSync as existsSync19, readdirSync as readdirSync8, readFileSync as readFileSync10 } from "fs";
|
|
9121
9142
|
import { resolve as resolve20, join as join10 } from "path";
|
|
9122
|
-
import { homedir as homedir3 } from "os";
|
|
9123
9143
|
var __dirname = "/home/runner/work/agent-cli/agent-cli/src/skills";
|
|
9124
9144
|
|
|
9125
9145
|
class SkillsLoader {
|
|
@@ -9195,7 +9215,7 @@ class SkillsLoader {
|
|
|
9195
9215
|
}
|
|
9196
9216
|
}
|
|
9197
9217
|
if (this.includeGlobal) {
|
|
9198
|
-
roots.push(getGlobalSkillsDir()
|
|
9218
|
+
roots.push(getGlobalSkillsDir());
|
|
9199
9219
|
}
|
|
9200
9220
|
roots.push(...this.customRoots.map((r) => resolve20(r)));
|
|
9201
9221
|
return roots.filter((r) => existsSync19(r));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pikaa-ai/pikaa",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.24",
|
|
4
4
|
"description": "PIKAA CLI - AI coding agent that runs locally in your terminal.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
"bin",
|
|
17
17
|
"templates",
|
|
18
18
|
"assets",
|
|
19
|
-
"skills/**/SKILL.md",
|
|
20
19
|
"README.md",
|
|
21
20
|
"LICENSE"
|
|
22
21
|
],
|
package/skills/adaptyv/SKILL.md
DELETED
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: adaptyv
|
|
3
|
-
description: "How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`."
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires Python 3.10+, an Adaptyv Foundry account, and an API key from foundry.adaptyvbio.com. Install adaptyv-sdk from GitHub with uv pip install.
|
|
6
|
-
metadata:
|
|
7
|
-
version: "1.2"
|
|
8
|
-
skill-author: K-Dense Inc.
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Adaptyv Bio Foundry API
|
|
12
|
-
|
|
13
|
-
Adaptyv Bio is a cloud lab that turns protein sequences into experimental data. Users submit amino acid sequences via API or UI; Adaptyv's automated lab runs assays (binding, thermostability, expression, fluorescence) and delivers results in ~21 days.
|
|
14
|
-
|
|
15
|
-
**Official docs:** [docs.adaptyvbio.com/api-reference](https://docs.adaptyvbio.com/api-reference) · [llms.txt index](https://docs.adaptyvbio.com/llms.txt) · [OpenAPI spec](https://foundry-api-public.adaptyvbio.com/api/v1/openapi.json)
|
|
16
|
-
|
|
17
|
-
## Quick Start
|
|
18
|
-
|
|
19
|
-
**Base URL:** `https://foundry-api-public.adaptyvbio.com/api/v1`
|
|
20
|
-
|
|
21
|
-
**Authentication:** Bearer token in the `Authorization` header. Tokens are obtained from [foundry.adaptyvbio.com](https://foundry.adaptyvbio.com/) sidebar.
|
|
22
|
-
|
|
23
|
-
When writing code, always read the API key from the environment variable `ADAPTYV_API_KEY` or from a `.env` file — never hardcode tokens. Check for a `.env` file in the project root first; if one exists, use a library like `python-dotenv` to load it.
|
|
24
|
-
|
|
25
|
-
The [official API docs](https://docs.adaptyvbio.com/api-reference/api-introduction) use `FOUNDRY_API_TOKEN` in curl examples; that is the same bearer token — prefer `ADAPTYV_API_KEY` in Python and new shell scripts for consistency with the SDK.
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
export ADAPTYV_API_KEY="abs0_..."
|
|
29
|
-
curl https://foundry-api-public.adaptyvbio.com/api/v1/targets?limit=3 \
|
|
30
|
-
-H "Authorization: Bearer $ADAPTYV_API_KEY"
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Every request except `GET /openapi.json` requires authentication. Store tokens in environment variables or `.env` files — never commit them to source control.
|
|
34
|
-
|
|
35
|
-
## Python SDK
|
|
36
|
-
|
|
37
|
-
**Version note:** `adaptyv-sdk` **0.1.0** (beta) is not yet on PyPI — install from GitHub:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
uv pip install "git+https://github.com/adaptyvbio/adaptyv-sdk.git"
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
In a project with `pyproject.toml`:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
uv add "adaptyv-sdk @ git+https://github.com/adaptyvbio/adaptyv-sdk.git"
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Environment variables** (set in shell or `.env` file):
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
ADAPTYV_API_KEY=your_api_key
|
|
53
|
-
ADAPTYV_API_URL=https://foundry-api-public.adaptyvbio.com/api/v1
|
|
54
|
-
ADAPTYV_ORGANIZATION_ID=your_org_id # optional
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
The `@lab.experiment` decorator and `FoundryClient` both read `ADAPTYV_API_KEY` and `ADAPTYV_API_URL` from the environment when not passed explicitly.
|
|
58
|
-
|
|
59
|
-
### Decorator Pattern
|
|
60
|
-
|
|
61
|
-
```python
|
|
62
|
-
from adaptyv import lab
|
|
63
|
-
|
|
64
|
-
@lab.experiment(target="PD-L1", experiment_type="screening", method="bli")
|
|
65
|
-
def design_binders():
|
|
66
|
-
return {"design_a": "MVKVGVNG...", "design_b": "MKVLVAG..."}
|
|
67
|
-
|
|
68
|
-
result = design_binders()
|
|
69
|
-
print(f"Experiment: {result.experiment_url}")
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Client Pattern
|
|
73
|
-
|
|
74
|
-
```python
|
|
75
|
-
import os
|
|
76
|
-
from adaptyv import FoundryClient
|
|
77
|
-
|
|
78
|
-
client = FoundryClient(
|
|
79
|
-
api_key=os.environ["ADAPTYV_API_KEY"],
|
|
80
|
-
base_url=os.environ.get(
|
|
81
|
-
"ADAPTYV_API_URL",
|
|
82
|
-
"https://foundry-api-public.adaptyvbio.com/api/v1",
|
|
83
|
-
),
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
# Browse targets
|
|
87
|
-
targets = client.targets.list(search="EGFR", selfservice_only=True)
|
|
88
|
-
|
|
89
|
-
# Estimate cost
|
|
90
|
-
estimate = client.experiments.cost_estimate({
|
|
91
|
-
"experiment_spec": {
|
|
92
|
-
"experiment_type": "screening",
|
|
93
|
-
"method": "bli",
|
|
94
|
-
"target_id": "target-uuid",
|
|
95
|
-
"sequences": {"seq1": "EVQLVESGGGLVQ..."},
|
|
96
|
-
"n_replicates": 3
|
|
97
|
-
}
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
# Create and submit
|
|
101
|
-
exp = client.experiments.create({...})
|
|
102
|
-
client.experiments.submit(exp.experiment_id)
|
|
103
|
-
|
|
104
|
-
# Later: retrieve results
|
|
105
|
-
results = client.experiments.get_results(exp.experiment_id)
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## Experiment Types
|
|
109
|
-
|
|
110
|
-
| Type | Method | Measures | Requires Target |
|
|
111
|
-
|---|---|---|---|
|
|
112
|
-
| `affinity` | `bli` or `spr` | KD, kon, koff kinetics | Yes |
|
|
113
|
-
| `screening` | `bli` or `spr` | Yes/no binding | Yes |
|
|
114
|
-
| `thermostability` | — | Melting temperature (Tm) | No |
|
|
115
|
-
| `expression` | — | Expression yield | No |
|
|
116
|
-
| `fluorescence` | — | Fluorescence intensity | No |
|
|
117
|
-
|
|
118
|
-
## Experiment Lifecycle
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
Draft → WaitingForConfirmation → QuoteSent → WaitingForMaterials → InQueue → InProduction → DataAnalysis → InReview → Done
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
| Status | Who Acts | Description |
|
|
125
|
-
|---|---|---|
|
|
126
|
-
| `Draft` | You | Editable, no cost commitment |
|
|
127
|
-
| `WaitingForConfirmation` | Adaptyv | Under review, quote being prepared |
|
|
128
|
-
| `QuoteSent` | You | Review and confirm the quote |
|
|
129
|
-
| `WaitingForMaterials` | Adaptyv | Gene fragments and target ordered |
|
|
130
|
-
| `InQueue` | Adaptyv | Materials arrived, queued for lab |
|
|
131
|
-
| `InProduction` | Adaptyv | Assay running |
|
|
132
|
-
| `DataAnalysis` | Adaptyv | Raw data processing and QC |
|
|
133
|
-
| `InReview` | Adaptyv | Final validation |
|
|
134
|
-
| `Done` | You | Results available |
|
|
135
|
-
| `Canceled` | Either | Experiment canceled |
|
|
136
|
-
|
|
137
|
-
The `results_status` field on an experiment tracks: `none`, `partial`, or `all`.
|
|
138
|
-
|
|
139
|
-
## Common Workflows
|
|
140
|
-
|
|
141
|
-
### 1. Submit a Binding Screen (Step by Step)
|
|
142
|
-
|
|
143
|
-
```python
|
|
144
|
-
# 1. Find a target
|
|
145
|
-
targets = client.targets.list(search="EGFR", selfservice_only=True)
|
|
146
|
-
target_id = targets.items[0].id
|
|
147
|
-
|
|
148
|
-
# 2. Preview cost
|
|
149
|
-
estimate = client.experiments.cost_estimate({
|
|
150
|
-
"experiment_spec": {
|
|
151
|
-
"experiment_type": "screening",
|
|
152
|
-
"method": "bli",
|
|
153
|
-
"target_id": target_id,
|
|
154
|
-
"sequences": {"seq1": "EVQLVESGGGLVQ...", "seq2": "MKVLVAG..."},
|
|
155
|
-
"n_replicates": 3
|
|
156
|
-
}
|
|
157
|
-
})
|
|
158
|
-
|
|
159
|
-
# 3. Create experiment (starts as Draft)
|
|
160
|
-
exp = client.experiments.create({
|
|
161
|
-
"name": "EGFR binder screen batch 1",
|
|
162
|
-
"experiment_spec": {
|
|
163
|
-
"experiment_type": "screening",
|
|
164
|
-
"method": "bli",
|
|
165
|
-
"target_id": target_id,
|
|
166
|
-
"sequences": {"seq1": "EVQLVESGGGLVQ...", "seq2": "MKVLVAG..."},
|
|
167
|
-
"n_replicates": 3
|
|
168
|
-
}
|
|
169
|
-
})
|
|
170
|
-
|
|
171
|
-
# 4. Submit for review
|
|
172
|
-
client.experiments.submit(exp.experiment_id)
|
|
173
|
-
|
|
174
|
-
# 5. Poll or use webhooks until Done
|
|
175
|
-
# 6. Retrieve results
|
|
176
|
-
results = client.experiments.get_results(exp.experiment_id)
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
### 2. Automated Pipeline (Skip Draft + Auto-Accept Quote)
|
|
180
|
-
|
|
181
|
-
```python
|
|
182
|
-
exp = client.experiments.create({
|
|
183
|
-
"name": "Auto pipeline run",
|
|
184
|
-
"experiment_spec": {...},
|
|
185
|
-
"skip_draft": True,
|
|
186
|
-
"auto_accept_quote": True,
|
|
187
|
-
"webhook_url": "https://my-server.com/webhook"
|
|
188
|
-
})
|
|
189
|
-
# Webhook fires on each status transition; poll or wait for Done
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
### 3. Using Webhooks
|
|
193
|
-
|
|
194
|
-
Pass `webhook_url` when creating an experiment. Adaptyv POSTs to that URL on every status transition with the experiment ID, previous status, and new status.
|
|
195
|
-
|
|
196
|
-
## Sequences
|
|
197
|
-
|
|
198
|
-
- Simple format: `{"seq1": "EVQLVESGGGLVQPGGSLRLSCAAS"}`
|
|
199
|
-
- Rich format: `{"seq1": {"aa_string": "EVQLVESGGGLVQ...", "control": false, "metadata": {"type": "scfv"}}}`
|
|
200
|
-
- Multi-chain: use colon separator — `"MVLS:EVQL"`
|
|
201
|
-
- Valid amino acids: A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y (case-insensitive, stored uppercase)
|
|
202
|
-
- Sequences can only be added to experiments in `Draft` status
|
|
203
|
-
|
|
204
|
-
## Filtering, Sorting, and Pagination
|
|
205
|
-
|
|
206
|
-
All list endpoints support pagination (`limit` 1-100, default 50; `offset`), search (free-text on name fields), and sorting.
|
|
207
|
-
|
|
208
|
-
**Filtering** uses s-expression syntax via the `filter` query parameter:
|
|
209
|
-
- Comparison: `eq(field,value)`, `neq`, `gt`, `gte`, `lt`, `lte`, `contains(field,substring)`
|
|
210
|
-
- Range/set: `between(field,lo,hi)`, `in(field,v1,v2,...)`
|
|
211
|
-
- Logic: `and(expr1,expr2,...)`, `or(...)`, `not(expr)`
|
|
212
|
-
- Null: `is_null(field)`, `is_not_null(field)`
|
|
213
|
-
- JSONB: `at(field,key)` — e.g., `eq(at(metadata,score),42)`
|
|
214
|
-
- Cast: `float()`, `int()`, `text()`, `timestamp()`, `date()`
|
|
215
|
-
|
|
216
|
-
**Sorting** uses `asc(field)` or `desc(field)`, comma-separated (max 8):
|
|
217
|
-
```
|
|
218
|
-
sort=desc(created_at),asc(name)
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
**Example:** `filter=and(gte(created_at,2026-01-01),eq(status,done))`
|
|
222
|
-
|
|
223
|
-
## Error Handling
|
|
224
|
-
|
|
225
|
-
All errors return:
|
|
226
|
-
```json
|
|
227
|
-
{
|
|
228
|
-
"error": "Human-readable description",
|
|
229
|
-
"request_id": "req_019462a4-b1c2-7def-8901-23456789abcd"
|
|
230
|
-
}
|
|
231
|
-
```
|
|
232
|
-
The `request_id` is also in the `x-request-id` response header — include it when contacting support.
|
|
233
|
-
|
|
234
|
-
## Token Management
|
|
235
|
-
|
|
236
|
-
Tokens use Biscuit-based cryptographic attenuation. You can create restricted tokens scoped by organization, resource type, actions (read/create/update), and expiry via `POST /tokens/attenuate`. Revoking a token (`POST /tokens/revoke`) revokes it and all its descendants.
|
|
237
|
-
|
|
238
|
-
## Detailed API Reference
|
|
239
|
-
|
|
240
|
-
For the full list of all 32 endpoints with request/response schemas, read `references/api-endpoints.md`.
|
package/skills/aeon/SKILL.md
DELETED
|
@@ -1,402 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: aeon
|
|
3
|
-
description: This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.
|
|
4
|
-
license: BSD-3-Clause license
|
|
5
|
-
allowed-tools: Read Write Edit Bash
|
|
6
|
-
compatibility: Requires Python 3.10+ and the aeon package (uv pip install). Optional aeon[all_extras] for deep learning and extended dependencies.
|
|
7
|
-
metadata:
|
|
8
|
-
version: "1.0"
|
|
9
|
-
skill-author: K-Dense Inc.
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Aeon Time Series Machine Learning
|
|
13
|
-
|
|
14
|
-
## Overview
|
|
15
|
-
|
|
16
|
-
Aeon is a scikit-learn compatible Python toolkit for time series machine learning ([aeon-toolkit.org](https://www.aeon-toolkit.org/)). It provides algorithms across classification, regression, clustering, forecasting, anomaly detection, segmentation, similarity search, distances, transformations, benchmarking, and visualization — with a consistent estimator API.
|
|
17
|
-
|
|
18
|
-
**Version note:** Examples target **aeon 1.x** (stable docs: v1.4.0, March 2026). The v1.0 release reworked forecasting and transformations; import paths differ from aeon 0.x/sktime-era code.
|
|
19
|
-
|
|
20
|
-
## When to Use This Skill
|
|
21
|
-
|
|
22
|
-
Apply this skill when:
|
|
23
|
-
- Classifying or predicting from time series data
|
|
24
|
-
- Detecting anomalies or change points in temporal sequences
|
|
25
|
-
- Clustering similar time series patterns
|
|
26
|
-
- Forecasting future values
|
|
27
|
-
- Finding repeated patterns (motifs) or unusual subsequences (discords)
|
|
28
|
-
- Comparing time series with specialized distance metrics
|
|
29
|
-
- Extracting features from temporal data
|
|
30
|
-
|
|
31
|
-
## Installation
|
|
32
|
-
|
|
33
|
-
Requires **Python 3.10+** (3.11+ recommended). Pin a 1.x release for reproducibility:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
uv pip install "aeon>=1.4,<2"
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
For deep learning forecasters/classifiers and other optional estimators:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
uv pip install "aeon[all_extras]>=1.4,<2"
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
On zsh, quote the extras: `uv pip install "aeon[all_extras]>=1.4,<2"`.
|
|
46
|
-
|
|
47
|
-
### Experimental modules
|
|
48
|
-
|
|
49
|
-
Upstream treats **forecasting**, **anomaly_detection**, **segmentation**, **similarity_search**, and **visualisation** as experimental — interfaces may change between minor releases. Prefer stable modules (classification, regression, clustering, distances, transformations) for production pipelines unless you need these tasks.
|
|
50
|
-
|
|
51
|
-
## Core Capabilities
|
|
52
|
-
|
|
53
|
-
### 1. Time Series Classification
|
|
54
|
-
|
|
55
|
-
Categorize time series into predefined classes. See `references/classification.md` for complete algorithm catalog.
|
|
56
|
-
|
|
57
|
-
**Quick Start:**
|
|
58
|
-
```python
|
|
59
|
-
from aeon.classification.convolution_based import RocketClassifier
|
|
60
|
-
from aeon.datasets import load_classification
|
|
61
|
-
|
|
62
|
-
# Load data
|
|
63
|
-
X_train, y_train = load_classification("GunPoint", split="train")
|
|
64
|
-
X_test, y_test = load_classification("GunPoint", split="test")
|
|
65
|
-
|
|
66
|
-
# Train classifier
|
|
67
|
-
clf = RocketClassifier(n_kernels=10000)
|
|
68
|
-
clf.fit(X_train, y_train)
|
|
69
|
-
accuracy = clf.score(X_test, y_test)
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
**Algorithm Selection:**
|
|
73
|
-
- **Speed + Performance**: `MiniRocketClassifier`, `Arsenal`
|
|
74
|
-
- **Maximum Accuracy**: `HIVECOTEV2`, `InceptionTimeClassifier`
|
|
75
|
-
- **Interpretability**: `ShapeletTransformClassifier`, `Catch22Classifier`
|
|
76
|
-
- **Small Datasets**: `KNeighborsTimeSeriesClassifier` with DTW distance
|
|
77
|
-
|
|
78
|
-
### 2. Time Series Regression
|
|
79
|
-
|
|
80
|
-
Predict continuous values from time series. See `references/regression.md` for algorithms.
|
|
81
|
-
|
|
82
|
-
**Quick Start:**
|
|
83
|
-
```python
|
|
84
|
-
from aeon.regression.convolution_based import RocketRegressor
|
|
85
|
-
from aeon.datasets import load_regression
|
|
86
|
-
|
|
87
|
-
X_train, y_train = load_regression("Covid3Month", split="train")
|
|
88
|
-
X_test, y_test = load_regression("Covid3Month", split="test")
|
|
89
|
-
|
|
90
|
-
reg = RocketRegressor()
|
|
91
|
-
reg.fit(X_train, y_train)
|
|
92
|
-
predictions = reg.predict(X_test)
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### 3. Time Series Clustering
|
|
96
|
-
|
|
97
|
-
Group similar time series without labels. See `references/clustering.md` for methods.
|
|
98
|
-
|
|
99
|
-
**Quick Start:**
|
|
100
|
-
```python
|
|
101
|
-
from aeon.clustering import TimeSeriesKMeans
|
|
102
|
-
|
|
103
|
-
clusterer = TimeSeriesKMeans(
|
|
104
|
-
n_clusters=3,
|
|
105
|
-
distance="dtw",
|
|
106
|
-
averaging_method="ba"
|
|
107
|
-
)
|
|
108
|
-
labels = clusterer.fit_predict(X_train)
|
|
109
|
-
centers = clusterer.cluster_centers_
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### 4. Forecasting
|
|
113
|
-
|
|
114
|
-
Predict future time series values (experimental module in aeon 1.x). See `references/forecasting.md` for forecasters.
|
|
115
|
-
|
|
116
|
-
**Quick Start:**
|
|
117
|
-
```python
|
|
118
|
-
import numpy as np
|
|
119
|
-
from aeon.forecasting import NaiveForecaster
|
|
120
|
-
from aeon.forecasting.stats import ARIMA
|
|
121
|
-
|
|
122
|
-
y_train = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0])
|
|
123
|
-
|
|
124
|
-
# Set horizon in the constructor; predict passes the series to forecast from
|
|
125
|
-
naive = NaiveForecaster(strategy="last", horizon=5)
|
|
126
|
-
naive.fit(y_train)
|
|
127
|
-
y_pred = naive.predict(y_train)
|
|
128
|
-
|
|
129
|
-
# ARIMA uses p/d/q (not order=); multi-step via iterative_forecast
|
|
130
|
-
arima = ARIMA(p=1, d=1, q=1)
|
|
131
|
-
arima.fit(y_train)
|
|
132
|
-
y_pred = arima.iterative_forecast(y_train, prediction_horizon=5)
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### 5. Anomaly Detection
|
|
136
|
-
|
|
137
|
-
Identify unusual patterns or outliers. See `references/anomaly_detection.md` for detectors.
|
|
138
|
-
|
|
139
|
-
**Quick Start:**
|
|
140
|
-
```python
|
|
141
|
-
from aeon.anomaly_detection import STOMP
|
|
142
|
-
|
|
143
|
-
detector = STOMP(window_size=50)
|
|
144
|
-
anomaly_scores = detector.fit_predict(y)
|
|
145
|
-
|
|
146
|
-
# Higher scores indicate anomalies
|
|
147
|
-
threshold = np.percentile(anomaly_scores, 95)
|
|
148
|
-
anomalies = anomaly_scores > threshold
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
### 6. Segmentation
|
|
152
|
-
|
|
153
|
-
Partition time series into regions with change points. See `references/segmentation.md`.
|
|
154
|
-
|
|
155
|
-
**Quick Start:**
|
|
156
|
-
```python
|
|
157
|
-
from aeon.segmentation import ClaSPSegmenter
|
|
158
|
-
|
|
159
|
-
segmenter = ClaSPSegmenter()
|
|
160
|
-
change_points = segmenter.fit_predict(y)
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### 7. Similarity Search
|
|
164
|
-
|
|
165
|
-
Find similar patterns within or across time series. See `references/similarity_search.md`.
|
|
166
|
-
|
|
167
|
-
**Quick Start:**
|
|
168
|
-
```python
|
|
169
|
-
from aeon.similarity_search import StompMotif
|
|
170
|
-
|
|
171
|
-
# Find recurring patterns
|
|
172
|
-
motif_finder = StompMotif(window_size=50, k=3)
|
|
173
|
-
motifs = motif_finder.fit_predict(y)
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
## Feature Extraction and Transformations
|
|
177
|
-
|
|
178
|
-
Transform time series for feature engineering. See `references/transformations.md`.
|
|
179
|
-
|
|
180
|
-
**ROCKET Features:**
|
|
181
|
-
```python
|
|
182
|
-
from aeon.transformations.collection.convolution_based import RocketTransformer
|
|
183
|
-
|
|
184
|
-
rocket = RocketTransformer()
|
|
185
|
-
X_features = rocket.fit_transform(X_train)
|
|
186
|
-
|
|
187
|
-
# Use features with any sklearn classifier
|
|
188
|
-
from sklearn.ensemble import RandomForestClassifier
|
|
189
|
-
clf = RandomForestClassifier()
|
|
190
|
-
clf.fit(X_features, y_train)
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
**Statistical Features:**
|
|
194
|
-
```python
|
|
195
|
-
from aeon.transformations.collection.feature_based import Catch22
|
|
196
|
-
|
|
197
|
-
catch22 = Catch22()
|
|
198
|
-
X_features = catch22.fit_transform(X_train)
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
**Preprocessing:**
|
|
202
|
-
```python
|
|
203
|
-
from aeon.transformations.collection import MinMaxScaler, Normalizer
|
|
204
|
-
|
|
205
|
-
scaler = Normalizer() # Z-normalization
|
|
206
|
-
X_normalized = scaler.fit_transform(X_train)
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
## Distance Metrics
|
|
210
|
-
|
|
211
|
-
Specialized temporal distance measures. See `references/distances.md` for complete catalog.
|
|
212
|
-
|
|
213
|
-
**Usage:**
|
|
214
|
-
```python
|
|
215
|
-
from aeon.distances import dtw_distance, dtw_pairwise_distance
|
|
216
|
-
|
|
217
|
-
# Single distance
|
|
218
|
-
distance = dtw_distance(x, y, window=0.1)
|
|
219
|
-
|
|
220
|
-
# Pairwise distances
|
|
221
|
-
distance_matrix = dtw_pairwise_distance(X_train)
|
|
222
|
-
|
|
223
|
-
# Use with classifiers
|
|
224
|
-
from aeon.classification.distance_based import KNeighborsTimeSeriesClassifier
|
|
225
|
-
|
|
226
|
-
clf = KNeighborsTimeSeriesClassifier(
|
|
227
|
-
n_neighbors=5,
|
|
228
|
-
distance="dtw",
|
|
229
|
-
distance_params={"window": 0.2}
|
|
230
|
-
)
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
**Available Distances:**
|
|
234
|
-
- **Elastic**: DTW, DDTW, WDTW, ERP, EDR, LCSS, TWE, MSM
|
|
235
|
-
- **Lock-step**: Euclidean, Manhattan, Minkowski
|
|
236
|
-
- **Shape-based**: Shape DTW, SBD
|
|
237
|
-
|
|
238
|
-
## Deep Learning Networks
|
|
239
|
-
|
|
240
|
-
Neural architectures for time series. See `references/networks.md`.
|
|
241
|
-
|
|
242
|
-
**Architectures:**
|
|
243
|
-
- Convolutional: `FCNClassifier`, `ResNetClassifier`, `InceptionTimeClassifier`
|
|
244
|
-
- Recurrent: `RecurrentNetwork`, `TCNNetwork`
|
|
245
|
-
- Autoencoders: `AEFCNClusterer`, `AEResNetClusterer`
|
|
246
|
-
|
|
247
|
-
**Usage:**
|
|
248
|
-
```python
|
|
249
|
-
from aeon.classification.deep_learning import InceptionTimeClassifier
|
|
250
|
-
|
|
251
|
-
clf = InceptionTimeClassifier(n_epochs=100, batch_size=32)
|
|
252
|
-
clf.fit(X_train, y_train)
|
|
253
|
-
predictions = clf.predict(X_test)
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
## Datasets and Benchmarking
|
|
257
|
-
|
|
258
|
-
Load standard benchmarks and evaluate performance. See `references/datasets_benchmarking.md`.
|
|
259
|
-
|
|
260
|
-
**Load Datasets:**
|
|
261
|
-
```python
|
|
262
|
-
from aeon.datasets import load_classification, load_gunpoint, load_regression
|
|
263
|
-
|
|
264
|
-
# Classification (generic loader or dataset-specific helper)
|
|
265
|
-
X_train, y_train = load_classification("GunPoint", split="train")
|
|
266
|
-
X_train, y_train = load_gunpoint(split="train") # same UCR dataset
|
|
267
|
-
|
|
268
|
-
# Regression
|
|
269
|
-
X_train, y_train = load_regression("Covid3Month", split="train")
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
**Benchmarking:**
|
|
273
|
-
```python
|
|
274
|
-
from aeon.benchmarking import get_estimator_results
|
|
275
|
-
|
|
276
|
-
# Compare with published results
|
|
277
|
-
published = get_estimator_results("ROCKET", "GunPoint")
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
## Common Workflows
|
|
281
|
-
|
|
282
|
-
### Classification Pipeline
|
|
283
|
-
|
|
284
|
-
```python
|
|
285
|
-
from aeon.transformations.collection import Normalizer
|
|
286
|
-
from aeon.classification.convolution_based import RocketClassifier
|
|
287
|
-
from sklearn.pipeline import Pipeline
|
|
288
|
-
|
|
289
|
-
pipeline = Pipeline([
|
|
290
|
-
('normalize', Normalizer()),
|
|
291
|
-
('classify', RocketClassifier())
|
|
292
|
-
])
|
|
293
|
-
|
|
294
|
-
pipeline.fit(X_train, y_train)
|
|
295
|
-
accuracy = pipeline.score(X_test, y_test)
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
### Feature Extraction + Traditional ML
|
|
299
|
-
|
|
300
|
-
```python
|
|
301
|
-
from aeon.transformations.collection import RocketTransformer
|
|
302
|
-
from sklearn.ensemble import GradientBoostingClassifier
|
|
303
|
-
|
|
304
|
-
# Extract features
|
|
305
|
-
rocket = RocketTransformer()
|
|
306
|
-
X_train_features = rocket.fit_transform(X_train)
|
|
307
|
-
X_test_features = rocket.transform(X_test)
|
|
308
|
-
|
|
309
|
-
# Train traditional ML
|
|
310
|
-
clf = GradientBoostingClassifier()
|
|
311
|
-
clf.fit(X_train_features, y_train)
|
|
312
|
-
predictions = clf.predict(X_test_features)
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
### Anomaly Detection with Visualization
|
|
316
|
-
|
|
317
|
-
```python
|
|
318
|
-
from aeon.anomaly_detection import STOMP
|
|
319
|
-
import matplotlib.pyplot as plt
|
|
320
|
-
|
|
321
|
-
detector = STOMP(window_size=50)
|
|
322
|
-
scores = detector.fit_predict(y)
|
|
323
|
-
|
|
324
|
-
plt.figure(figsize=(15, 5))
|
|
325
|
-
plt.subplot(2, 1, 1)
|
|
326
|
-
plt.plot(y, label='Time Series')
|
|
327
|
-
plt.subplot(2, 1, 2)
|
|
328
|
-
plt.plot(scores, label='Anomaly Scores', color='red')
|
|
329
|
-
plt.axhline(np.percentile(scores, 95), color='k', linestyle='--')
|
|
330
|
-
plt.show()
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
## Best Practices
|
|
334
|
-
|
|
335
|
-
### Data Preparation
|
|
336
|
-
|
|
337
|
-
1. **Normalize**: Most algorithms benefit from z-normalization
|
|
338
|
-
```python
|
|
339
|
-
from aeon.transformations.collection import Normalizer
|
|
340
|
-
normalizer = Normalizer()
|
|
341
|
-
X_train = normalizer.fit_transform(X_train)
|
|
342
|
-
X_test = normalizer.transform(X_test)
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
2. **Handle Missing Values**: Impute before analysis
|
|
346
|
-
```python
|
|
347
|
-
from aeon.transformations.collection import SimpleImputer
|
|
348
|
-
imputer = SimpleImputer(strategy='mean')
|
|
349
|
-
X_train = imputer.fit_transform(X_train)
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
3. **Check Data Format**: Collections use `(n_cases, n_channels, n_timepoints)`; single series use `(n_channels, n_timepoints)` (see [data format](https://www.aeon-toolkit.org/en/stable/api_reference/data_format.html))
|
|
353
|
-
|
|
354
|
-
### Model Selection
|
|
355
|
-
|
|
356
|
-
1. **Start Simple**: Begin with ROCKET variants before deep learning
|
|
357
|
-
2. **Use Validation**: Split training data for hyperparameter tuning
|
|
358
|
-
3. **Compare Baselines**: Test against simple methods (1-NN Euclidean, Naive)
|
|
359
|
-
4. **Consider Resources**: ROCKET for speed, deep learning if GPU available
|
|
360
|
-
|
|
361
|
-
### Algorithm Selection Guide
|
|
362
|
-
|
|
363
|
-
**For Fast Prototyping:**
|
|
364
|
-
- Classification: `MiniRocketClassifier`
|
|
365
|
-
- Regression: `MiniRocketRegressor`
|
|
366
|
-
- Clustering: `TimeSeriesKMeans` with Euclidean
|
|
367
|
-
|
|
368
|
-
**For Maximum Accuracy:**
|
|
369
|
-
- Classification: `HIVECOTEV2`, `InceptionTimeClassifier`
|
|
370
|
-
- Regression: `InceptionTimeRegressor`
|
|
371
|
-
- Forecasting: `AutoARIMA`, `AutoETS`, `TCNForecaster` (requires `[all_extras]` for deep learning)
|
|
372
|
-
|
|
373
|
-
**For Interpretability:**
|
|
374
|
-
- Classification: `ShapeletTransformClassifier`, `Catch22Classifier`
|
|
375
|
-
- Features: `Catch22`, `TSFresh`
|
|
376
|
-
|
|
377
|
-
**For Small Datasets:**
|
|
378
|
-
- Distance-based: `KNeighborsTimeSeriesClassifier` with DTW
|
|
379
|
-
- Avoid: Deep learning (requires large data)
|
|
380
|
-
|
|
381
|
-
## Reference Documentation
|
|
382
|
-
|
|
383
|
-
Detailed information available in `references/`:
|
|
384
|
-
- `classification.md` - All classification algorithms
|
|
385
|
-
- `regression.md` - Regression methods
|
|
386
|
-
- `clustering.md` - Clustering algorithms
|
|
387
|
-
- `forecasting.md` - Forecasting approaches
|
|
388
|
-
- `anomaly_detection.md` - Anomaly detection methods
|
|
389
|
-
- `segmentation.md` - Segmentation algorithms
|
|
390
|
-
- `similarity_search.md` - Pattern matching and motif discovery
|
|
391
|
-
- `transformations.md` - Feature extraction and preprocessing
|
|
392
|
-
- `distances.md` - Time series distance metrics
|
|
393
|
-
- `networks.md` - Deep learning architectures
|
|
394
|
-
- `datasets_benchmarking.md` - Data loading and evaluation tools
|
|
395
|
-
|
|
396
|
-
## Additional Resources
|
|
397
|
-
|
|
398
|
-
- Documentation: https://www.aeon-toolkit.org/
|
|
399
|
-
- GitHub: https://github.com/aeon-toolkit/aeon
|
|
400
|
-
- Examples: https://www.aeon-toolkit.org/en/stable/examples.html
|
|
401
|
-
- API Reference: https://www.aeon-toolkit.org/en/stable/api_reference.html
|
|
402
|
-
|