Workspace CLI Commands
The nirs4all CLI provides workspace management commands for organizing experiments, querying results, and managing saved models.
Installation
The CLI is available after installing nirs4all:
pip install nirs4all
Usage
nirs4all workspace <command> [options]
Commands
init - Initialize Workspace
Create a new workspace with the standard directory structure.
Usage:
nirs4all workspace init <path>
Example:
nirs4all workspace init my_workspace
Output:
✓ Workspace initialized at: my_workspace
Created directories:
- runs/
- exports/full_pipelines/
- exports/best_predictions/
- library/templates/
- library/trained/filtered/
- library/trained/pipeline/
- library/trained/fullrun/
- catalog/
list-runs - List Runs
List all experimental runs in a workspace.
Usage:
nirs4all workspace list-runs [--workspace <path>]
Options:
--workspace: Workspace root directory (default:workspace)
Example:
nirs4all workspace list-runs --workspace my_workspace
Output:
Found 3 run(s):
wheat_sample1_baseline
Dataset: wheat
corn_sample1
Dataset: corn
query-best - Query Best Pipelines
Query the catalog for top-performing pipelines by a specific metric.
Usage:
nirs4all workspace query-best [options]
Options:
--workspace <path>: Workspace root (default:workspace)--dataset <name>: Filter by dataset name--metric <name>: Metric to sort by (default:test_score)-n <number>: Number of results (default: 10)--ascending: Sort ascending (lower is better)
Examples:
# Get top 10 by test_score
nirs4all workspace query-best --workspace my_workspace
# Get top 5 wheat models by validation score
nirs4all workspace query-best --workspace my_workspace --dataset wheat --metric val_score -n 5
# Get worst 3 models (ascending)
nirs4all workspace query-best --workspace my_workspace -n 3 --ascending
Output:
✓ Loaded 142 predictions from catalog
Top 10 pipelines by test_score:
================================================================================
prediction_id dataset_name config_name test_score
a1b2c3d4-5678-90ab-cdef-1234567890ab wheat_sample1 advanced_pls 0.5234
e5f6g7h8-9012-34ab-cdef-5678901234cd wheat_sample1 optimized_rf 0.5198
...
filter - Filter Predictions
Filter predictions by multiple criteria (dataset, score thresholds).
Usage:
nirs4all workspace filter [options]
Options:
--workspace <path>: Workspace root (default:workspace)--dataset <name>: Filter by dataset name--test-score <value>: Minimum test score--train-score <value>: Minimum train score--val-score <value>: Minimum validation score
Examples:
# Find all predictions with test_score >= 0.50
nirs4all workspace filter --workspace my_workspace --test-score 0.50
# Find wheat predictions with good train and test scores
nirs4all workspace filter --workspace my_workspace --dataset wheat --test-score 0.45 --train-score 0.40
# Find predictions meeting all criteria
nirs4all workspace filter --workspace my_workspace --test-score 0.50 --val-score 0.48 --train-score 0.45
Output:
Found 23 predictions matching criteria
prediction_id dataset_name test_score train_score val_score
a1b2c3d4-5678-90ab-cdef-1234567890ab wheat_sample1 0.5234 0.4876 0.5012
...
stats - Catalog Statistics
Show summary statistics for the catalog.
Usage:
nirs4all workspace stats [options]
Options:
--workspace <path>: Workspace root (default:workspace)--metric <name>: Metric for statistics (default:test_score)
Example:
nirs4all workspace stats --workspace my_workspace --metric test_score
Output:
Catalog Statistics
============================================================
Total predictions: 142
Datasets: 3
- wheat_sample1: 58 predictions
- corn_sample1: 45 predictions
- barley_sample1: 39 predictions
test_score statistics:
Min: 0.3245
Max: 0.5234
Mean: 0.4512
Median: 0.4498
Std: 0.0456
list-library - List Library Items
List templates and saved models in the library.
Usage:
nirs4all workspace list-library [--workspace <path>]
Options:
--workspace: Workspace root directory (default:workspace)
Example:
nirs4all workspace list-library --workspace my_workspace
Output:
Templates: 2
- baseline_pls: Baseline PLS configuration
- advanced_rf: Random Forest with feature selection
Filtered pipelines: 5
- wheat_experiment_001: First wheat experiment
- corn_baseline_v1: Baseline model for corn
Full pipelines: 3
- production_wheat_v1: Production-ready wheat model
- deployment_corn_v2: Corn model for deployment
Full runs: 1
- wheat_baseline_complete: Complete baseline experiment
Programmatic Usage
All CLI commands can also be used programmatically:
from nirs4all.pipeline.storage import WorkspaceStore
# Initialize workspace
store = WorkspaceStore("my_workspace")
# Query best predictions
top = store.top_predictions(n=10, metric="test_score")
See examples/workspace_integration_example.py for a complete example.
Workflow Example
# 1. Initialize workspace
nirs4all workspace init my_project
# 2. Run experiments (using Python API)
# ... your training code ...
# 3. Query results
nirs4all workspace query-best --workspace my_project -n 5
# 4. Filter good models
nirs4all workspace filter --workspace my_project --test-score 0.50
# 5. View statistics
nirs4all workspace stats --workspace my_project
# 6. Check saved models
nirs4all workspace list-library --workspace my_project
Notes
All commands default to
workspace/if--workspaceis not specifiedThe catalog must be populated using
Predictions.archive_to_catalog()before queryingUse
--helpwith any command for detailed options:nirs4all workspace <command> --help