chore: update metadata for scientific skills
- Added version "1.0" and skill author information to multiple SKILL.md files across various scientific skills. - Enhanced documentation consistency and clarity by standardizing metadata formatting. - Ensured all skills now include versioning for better tracking of updates and changes.
This commit is contained in:
8
AGENTS.md
Normal file
8
AGENTS.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# Repository Guidance
|
||||
|
||||
- Every `SKILL.md` must include a skill version in YAML frontmatter under the Agent Skills spec-compatible `metadata` mapping:
|
||||
```yaml
|
||||
metadata:
|
||||
version: "1.0"
|
||||
```
|
||||
- When updating an existing skill, increment its `metadata.version` in the same change. Use quoted numeric strings and advance the visible version sequence (for example, `1.0` to `1.1`). Use a new major version only for a breaking or substantial redesign.
|
||||
@@ -2,6 +2,8 @@
|
||||
name: adaptyv
|
||||
author: "K-Dense, Inc."
|
||||
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`."
|
||||
metadata:
|
||||
version: "1.0"
|
||||
---
|
||||
|
||||
# Adaptyv Bio Foundry API
|
||||
|
||||
@@ -5,7 +5,8 @@ license: BSD-3-Clause license
|
||||
allowed-tools: Read Write Edit Bash
|
||||
compatibility: Requires Python 3.10+ and the aeon package (uv pip install). Optional aeon[all_extras] for deep learning and extended dependencies.
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Aeon Time Series Machine Learning
|
||||
|
||||
@@ -3,7 +3,8 @@ name: anndata
|
||||
description: Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
|
||||
license: BSD-3-Clause license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# AnnData
|
||||
|
||||
@@ -3,7 +3,8 @@ name: arboreto
|
||||
description: Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.
|
||||
license: BSD-3-Clause license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Arboreto
|
||||
|
||||
@@ -3,7 +3,8 @@ name: astropy
|
||||
description: Comprehensive Python library for astronomy and astrophysics. This skill should be used when working with astronomical data including celestial coordinates, physical units, FITS files, cosmological calculations, time systems, tables, world coordinate systems (WCS), and astronomical data analysis. Use when tasks involve coordinate transformations, unit conversions, FITS file manipulation, cosmological distance calculations, time scale conversions, or astronomical data processing.
|
||||
license: BSD-3-Clause license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Astropy
|
||||
|
||||
@@ -4,8 +4,9 @@ description: Observe the user's screen via screenpipe, detect repeated research
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
requires: screenpipe
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
requires: screenpipe
|
||||
---
|
||||
|
||||
# autoskill
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Benchling R&D platform integration. Access registry (DNA, proteins)
|
||||
license: Unknown
|
||||
compatibility: Requires a Benchling account and API key
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Benchling Integration
|
||||
|
||||
@@ -4,9 +4,10 @@ description: Search scientific papers and retrieve structured experimental data
|
||||
allowed-tools: Bash
|
||||
license: MIT
|
||||
metadata:
|
||||
skill-author: BGPT
|
||||
website: https://bgpt.pro/mcp
|
||||
github: https://github.com/connerlambden/bgpt-mcp
|
||||
version: "1.0"
|
||||
skill-author: BGPT
|
||||
website: https://bgpt.pro/mcp
|
||||
github: https://github.com/connerlambden/bgpt-mcp
|
||||
---
|
||||
|
||||
# BGPT Paper Search
|
||||
|
||||
@@ -8,7 +8,8 @@ description: >
|
||||
creating BIDS derivatives.
|
||||
license: https://creativecommons.org/licenses/by/4.0/
|
||||
metadata:
|
||||
skill-author: Yaroslav Halchenko
|
||||
version: "1.0"
|
||||
skill-author: Yaroslav Halchenko
|
||||
---
|
||||
|
||||
# Brain Imaging Data Structure (BIDS)
|
||||
|
||||
@@ -3,7 +3,8 @@ name: biopython
|
||||
description: Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Biopython: Computational Molecular Biology in Python
|
||||
|
||||
@@ -5,7 +5,8 @@ license: GPLv3 license
|
||||
allowed-tools: [Read, Write, Edit, Bash]
|
||||
compatibility: Requires Python 3.9–3.12 and internet access to 40+ bioinformatics web APIs. NCBI BLAST requires a contact email (`NCBI_EMAIL` env var or explicit parameter).
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# BioServices
|
||||
|
||||
@@ -3,7 +3,8 @@ name: cellxgene-census
|
||||
description: Query the CELLxGENE Census (61M+ cells) programmatically. Use when you need expression data across tissues, diseases, or cell types from the largest curated single-cell atlas. Best for population-scale queries, reference atlas comparisons. For analyzing your own data use scanpy or scvi-tools.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# CZ CELLxGENE Census
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Google quantum computing framework. Use when targeting Google Quant
|
||||
license: Apache-2.0 license
|
||||
allowed-tools: Read Write Edit Bash
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Cirq - Quantum Computing with Python
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Comprehensive citation management for academic research. Search Goo
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: MIT License
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Citation Management
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Generate professional clinical decision support (CDS) documents for
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: MIT License
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Clinical Decision Support Documents
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Write comprehensive clinical reports including case reports (CARE g
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: MIT License
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Clinical Report Writing
|
||||
|
||||
@@ -5,7 +5,8 @@ license: GPL-2.0 license
|
||||
allowed-tools: [Read, Write, Edit, Bash]
|
||||
compatibility: Requires Python 3.9+ (cobra 0.30+ dropped 3.8). Install with uv pip install. GLPK (swiglpk) is the default solver; CPLEX/Gurobi optional. load_model fetches from bundled data, BiGG, or BioModels (network required for remote models).
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# COBRApy - Constraint-Based Reconstruction and Analysis
|
||||
|
||||
@@ -4,6 +4,7 @@ description: Run a multi-perspective Mind Council deliberation on any question,
|
||||
allowed-tools: Read Write
|
||||
license: MIT license
|
||||
metadata:
|
||||
version: "1.0"
|
||||
skill-author: AHK Strategies (ashrafkahoush-ux)
|
||||
---
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ name: dask
|
||||
description: Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.
|
||||
license: BSD-3-Clause license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Dask
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name: database-lookup
|
||||
description: Search 78 public scientific, biomedical, materials science, and economic databases via REST APIs. Covers physics/astronomy (NASA, NIST, SDSS, SIMBAD), earth/environment (USGS, NOAA, EPA), chemistry/drugs (PubChem, ChEMBL, DrugBank, FDA, KEGG, ZINC, BindingDB), materials (Materials Project, COD), biology/genomics (Reactome, UniProt, STRING, Ensembl, NCBI Gene, GEO, GTEx, PDB, AlphaFold, InterPro, BioGRID, Gene Ontology, dbSNP, gnomAD, ENCODE, Human Protein Atlas, Human Cell Atlas), disease/clinical (COSMIC, Open Targets, ClinicalTrials.gov, OMIM, ClinVar, GDC/TCGA, cBioPortal, DisGeNET, GWAS Catalog), regulatory (FDA, USPTO, SEC EDGAR), economics/finance (FRED, World Bank, US Treasury), demographics (US Census, Eurostat, WHO). Use when looking up compounds, genes, proteins, pathways, variants, clinical trials, patents, economic indicators, or any public database API query.
|
||||
metadata:
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
|
||||
@@ -5,7 +5,8 @@ license: Apache-2.0 license
|
||||
allowed-tools: Read Write Edit Bash
|
||||
compatibility: Requires Python 3.8+ and datamol (uv pip install). RDKit is installed automatically as a datamol dependency (since 0.12.2). Optional s3fs/gcsfs for cloud I/O via fsspec.
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Datamol Cheminformatics Skill
|
||||
|
||||
@@ -5,7 +5,8 @@ license: MIT license
|
||||
allowed-tools: [Read, Write, Edit, Bash]
|
||||
compatibility: Requires Python 3.7–3.11 (PyPI 2.8.0 caps at <3.12). Install PyTorch, TensorFlow, or JAX before the matching deepchem extra. RDKit is a core dependency.
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# DeepChem
|
||||
|
||||
@@ -3,7 +3,8 @@ name: deeptools
|
||||
description: NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.
|
||||
license: BSD license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# deepTools: NGS Data Analysis Toolkit
|
||||
|
||||
@@ -3,7 +3,8 @@ name: depmap
|
||||
description: Query the Cancer Dependency Map (DepMap) for cancer cell line gene dependency scores (CRISPR Chronos), drug sensitivity data, and gene effect profiles. Use for identifying cancer-specific vulnerabilities, synthetic lethal interactions, and validating oncology drug targets.
|
||||
license: CC-BY-4.0
|
||||
metadata:
|
||||
skill-author: Kuan-lin Huang
|
||||
version: "1.0"
|
||||
skill-author: Kuan-lin Huang
|
||||
---
|
||||
|
||||
# DepMap — Cancer Dependency Map
|
||||
|
||||
@@ -4,6 +4,7 @@ description: Extract cognitive patterns and thinking fingerprints from any text.
|
||||
allowed-tools: Read Write
|
||||
license: MIT license
|
||||
metadata:
|
||||
version: "1.0"
|
||||
skill-author: AHK Strategies (ashrafkahoush-ux)
|
||||
---
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ name: diffdock
|
||||
description: Diffusion-based molecular docking. Predict protein-ligand binding poses from PDB/SMILES, confidence scores, virtual screening, for structure-based drug design. Not for affinity prediction.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# DiffDock: Molecular Docking with Diffusion Models
|
||||
|
||||
@@ -4,7 +4,8 @@ description: DNAnexus cloud genomics platform. Build apps/applets, manage data (
|
||||
license: Unknown
|
||||
compatibility: Requires a DNAnexus account
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# DNAnexus Integration
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
name: docx
|
||||
description: "Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation."
|
||||
license: Proprietary. LICENSE.txt has complete terms
|
||||
metadata:
|
||||
version: "1.0"
|
||||
---
|
||||
|
||||
# DOCX creation, editing, and analysis
|
||||
|
||||
@@ -3,7 +3,8 @@ name: esm
|
||||
description: Comprehensive toolkit for EvolutionaryScale protein language models including ESM3 (generative multimodal design across sequence, structure, and function) and ESM C (efficient embeddings). Use for protein sequence/structure/function tasks, inverse folding, embeddings, variant design, and ESMFold2 structure prediction via Biohub. Supports local open weights (Python 3.12, esm on PyPI) and cloud Forge/Biohub APIs with ESM_API_KEY authentication.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# ESM: Evolutionary Scale Modeling
|
||||
|
||||
@@ -3,7 +3,8 @@ name: etetoolkit
|
||||
description: Phylogenetic tree toolkit (ETE). Tree manipulation (Newick/NHX), evolutionary event detection, orthology/paralogy, NCBI taxonomy, visualization (PDF/SVG), for phylogenomics.
|
||||
license: GPL-3.0 license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# ETE Toolkit Skill
|
||||
|
||||
@@ -4,6 +4,7 @@ description: "Web toolkit powered by Exa, tuned for scientific and technical con
|
||||
compatibility: Requires exa-py Python SDK, an EXA_API_KEY, and internet access.
|
||||
license: MIT
|
||||
metadata:
|
||||
version: "1.0"
|
||||
skill-author: Exa
|
||||
website: https://exa.ai
|
||||
docs: https://exa.ai/docs
|
||||
|
||||
@@ -3,7 +3,8 @@ name: exploratory-data-analysis
|
||||
description: Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats. This skill should be used when analyzing any scientific data file to understand its structure, content, quality, and characteristics. Automatically detects file type and generates detailed markdown reports with format-specific analysis, quality metrics, and downstream analysis recommendations. Covers chemistry, bioinformatics, microscopy, spectroscopy, proteomics, metabolomics, and general scientific data formats.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Exploratory Data Analysis
|
||||
|
||||
@@ -3,7 +3,8 @@ name: flowio
|
||||
description: Parse FCS (Flow Cytometry Standard) files v2.0-3.1. Extract events as NumPy arrays, read metadata/channels, convert to CSV/DataFrame, for flow cytometry data preprocessing.
|
||||
license: BSD-3-Clause license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# FlowIO: Flow Cytometry Standard File Handler
|
||||
|
||||
@@ -3,7 +3,8 @@ name: fluidsim
|
||||
description: Framework for computational fluid dynamics simulations using Python. Use when running fluid dynamics simulations including Navier-Stokes equations (2D/3D), shallow water equations, stratified flows, or when analyzing turbulence, vortex dynamics, or geophysical flows. Provides pseudospectral methods with FFT, HPC support, and comprehensive output analysis.
|
||||
license: CeCILL FREE SOFTWARE LICENSE AGREEMENT
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# FluidSim
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Generate or edit images using AI models (FLUX, Nano Banana 2). Use
|
||||
license: MIT license
|
||||
compatibility: Requires an OpenRouter API key
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Generate Image
|
||||
|
||||
@@ -3,7 +3,8 @@ name: geniml
|
||||
description: This skill should be used when working with genomic interval data (BED files) for machine learning tasks. Use for training region embeddings (Region2Vec, BEDspace), single-cell ATAC-seq analysis (scEmbed), building consensus peaks (universes), or any ML-based analysis of genomic regions. Applies to BED file collections, scATAC-seq data, chromatin accessibility datasets, and region-based genomic feature learning.
|
||||
license: BSD-2-Clause license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Geniml: Genomic Interval Machine Learning
|
||||
|
||||
@@ -1,365 +1,366 @@
|
||||
---
|
||||
name: geomaster
|
||||
description: Comprehensive geospatial science skill covering remote sensing, GIS, spatial analysis, machine learning for earth observation, and 30+ scientific domains. Supports satellite imagery processing (Sentinel, Landsat, MODIS, SAR, hyperspectral), vector and raster data operations, spatial statistics, point cloud processing, network analysis, cloud-native workflows (STAC, COG, Planetary Computer), and 8 programming languages (Python, R, Julia, JavaScript, C++, Java, Go, Rust) with 500+ code examples. Use for remote sensing workflows, GIS analysis, spatial ML, Earth observation data processing, terrain analysis, hydrological modeling, marine spatial analysis, atmospheric science, and any geospatial computation task.
|
||||
license: MIT License
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# GeoMaster
|
||||
|
||||
Comprehensive geospatial science skill covering GIS, remote sensing, spatial analysis, and ML for Earth observation across 70+ topics with 500+ code examples in 8 programming languages.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
# Core Python stack (conda recommended)
|
||||
conda install -c conda-forge gdal rasterio fiona shapely pyproj geopandas
|
||||
|
||||
# Remote sensing & ML
|
||||
uv pip install rsgislib torchgeo earthengine-api
|
||||
uv pip install scikit-learn xgboost torch-geometric
|
||||
|
||||
# Network & visualization
|
||||
uv pip install osmnx networkx folium keplergl
|
||||
uv pip install cartopy contextily mapclassify
|
||||
|
||||
# Big data & cloud
|
||||
uv pip install xarray rioxarray dask-geopandas
|
||||
uv pip install pystac-client planetary-computer
|
||||
|
||||
# Point clouds
|
||||
uv pip install laspy pylas open3d pdal
|
||||
|
||||
# Databases
|
||||
conda install -c conda-forge postgis spatialite
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
### NDVI from Sentinel-2
|
||||
|
||||
```python
|
||||
import rasterio
|
||||
import numpy as np
|
||||
|
||||
with rasterio.open('sentinel2.tif') as src:
|
||||
red = src.read(4).astype(float) # B04
|
||||
nir = src.read(8).astype(float) # B08
|
||||
ndvi = (nir - red) / (nir + red + 1e-8)
|
||||
ndvi = np.nan_to_num(ndvi, nan=0)
|
||||
|
||||
profile = src.profile
|
||||
profile.update(count=1, dtype=rasterio.float32)
|
||||
|
||||
with rasterio.open('ndvi.tif', 'w', **profile) as dst:
|
||||
dst.write(ndvi.astype(rasterio.float32), 1)
|
||||
```
|
||||
|
||||
### Spatial Analysis with GeoPandas
|
||||
|
||||
```python
|
||||
import geopandas as gpd
|
||||
|
||||
# Load and ensure same CRS
|
||||
zones = gpd.read_file('zones.geojson')
|
||||
points = gpd.read_file('points.geojson')
|
||||
|
||||
if zones.crs != points.crs:
|
||||
points = points.to_crs(zones.crs)
|
||||
|
||||
# Spatial join and statistics
|
||||
joined = gpd.sjoin(points, zones, how='inner', predicate='within')
|
||||
stats = joined.groupby('zone_id').agg({
|
||||
'value': ['count', 'mean', 'std', 'min', 'max']
|
||||
}).round(2)
|
||||
```
|
||||
|
||||
### Google Earth Engine Time Series
|
||||
|
||||
```python
|
||||
import ee
|
||||
import pandas as pd
|
||||
|
||||
ee.Initialize(project='your-project')
|
||||
roi = ee.Geometry.Point([-122.4, 37.7]).buffer(10000)
|
||||
|
||||
s2 = (ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
|
||||
.filterBounds(roi)
|
||||
.filterDate('2020-01-01', '2023-12-31')
|
||||
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)))
|
||||
|
||||
def add_ndvi(img):
|
||||
return img.addBands(img.normalizedDifference(['B8', 'B4']).rename('NDVI'))
|
||||
|
||||
s2_ndvi = s2.map(add_ndvi)
|
||||
|
||||
def extract_series(image):
|
||||
stats = image.reduceRegion(ee.Reducer.mean(), roi.centroid(), scale=10, maxPixels=1e9)
|
||||
return ee.Feature(None, {'date': image.date().format('YYYY-MM-dd'), 'ndvi': stats.get('NDVI')})
|
||||
|
||||
series = s2_ndvi.map(extract_series).getInfo()
|
||||
df = pd.DataFrame([f['properties'] for f in series['features']])
|
||||
df['date'] = pd.to_datetime(df['date'])
|
||||
```
|
||||
|
||||
## Core Concepts
|
||||
|
||||
### Data Types
|
||||
|
||||
| Type | Examples | Libraries |
|
||||
|------|----------|-----------|
|
||||
| Vector | Shapefile, GeoJSON, GeoPackage | GeoPandas, Fiona, GDAL |
|
||||
| Raster | GeoTIFF, NetCDF, COG | Rasterio, Xarray, GDAL |
|
||||
| Point Cloud | LAS, LAZ | Laspy, PDAL, Open3D |
|
||||
|
||||
### Coordinate Systems
|
||||
|
||||
- **EPSG:4326** (WGS 84) - Geographic, lat/lon, use for storage
|
||||
- **EPSG:3857** (Web Mercator) - Web maps only (don't use for area/distance!)
|
||||
- **EPSG:326xx/327xx** (UTM) - Metric calculations, <1% distortion per zone
|
||||
- Use `gdf.estimate_utm_crs()` for automatic UTM detection
|
||||
|
||||
```python
|
||||
# Always check CRS before operations
|
||||
assert gdf1.crs == gdf2.crs, "CRS mismatch!"
|
||||
|
||||
# For area/distance calculations, use projected CRS
|
||||
gdf_metric = gdf.to_crs(gdf.estimate_utm_crs())
|
||||
area_sqm = gdf_metric.geometry.area
|
||||
```
|
||||
|
||||
### OGC Standards
|
||||
|
||||
- **WMS**: Web Map Service - raster maps
|
||||
- **WFS**: Web Feature Service - vector data
|
||||
- **WCS**: Web Coverage Service - raster coverage
|
||||
- **STAC**: Spatiotemporal Asset Catalog - modern metadata
|
||||
|
||||
## Common Operations
|
||||
|
||||
### Spectral Indices
|
||||
|
||||
```python
|
||||
def calculate_indices(image_path):
|
||||
"""NDVI, EVI, SAVI, NDWI from Sentinel-2."""
|
||||
with rasterio.open(image_path) as src:
|
||||
B02, B03, B04, B08, B11 = [src.read(i).astype(float) for i in [1,2,3,4,5]]
|
||||
|
||||
ndvi = (B08 - B04) / (B08 + B04 + 1e-8)
|
||||
evi = 2.5 * (B08 - B04) / (B08 + 6*B04 - 7.5*B02 + 1)
|
||||
savi = ((B08 - B04) / (B08 + B04 + 0.5)) * 1.5
|
||||
ndwi = (B03 - B08) / (B03 + B08 + 1e-8)
|
||||
|
||||
return {'NDVI': ndvi, 'EVI': evi, 'SAVI': savi, 'NDWI': ndwi}
|
||||
```
|
||||
|
||||
### Vector Operations
|
||||
|
||||
```python
|
||||
# Buffer (use projected CRS!)
|
||||
gdf_proj = gdf.to_crs(gdf.estimate_utm_crs())
|
||||
gdf['buffer_1km'] = gdf_proj.geometry.buffer(1000)
|
||||
|
||||
# Spatial relationships
|
||||
intersects = gdf[gdf.geometry.intersects(other_geometry)]
|
||||
contains = gdf[gdf.geometry.contains(point_geometry)]
|
||||
|
||||
# Geometric operations
|
||||
gdf['centroid'] = gdf.geometry.centroid
|
||||
gdf['simplified'] = gdf.geometry.simplify(tolerance=0.001)
|
||||
|
||||
# Overlay operations
|
||||
intersection = gpd.overlay(gdf1, gdf2, how='intersection')
|
||||
union = gpd.overlay(gdf1, gdf2, how='union')
|
||||
```
|
||||
|
||||
### Terrain Analysis
|
||||
|
||||
```python
|
||||
def terrain_metrics(dem_path):
|
||||
"""Calculate slope, aspect, hillshade from DEM."""
|
||||
with rasterio.open(dem_path) as src:
|
||||
dem = src.read(1)
|
||||
|
||||
dy, dx = np.gradient(dem)
|
||||
slope = np.arctan(np.sqrt(dx**2 + dy**2)) * 180 / np.pi
|
||||
aspect = (90 - np.arctan2(-dy, dx) * 180 / np.pi) % 360
|
||||
|
||||
# Hillshade
|
||||
az_rad, alt_rad = np.radians(315), np.radians(45)
|
||||
hillshade = (np.sin(alt_rad) * np.sin(np.radians(slope)) +
|
||||
np.cos(alt_rad) * np.cos(np.radians(slope)) *
|
||||
np.cos(np.radians(aspect) - az_rad))
|
||||
|
||||
return slope, aspect, hillshade
|
||||
```
|
||||
|
||||
### Network Analysis
|
||||
|
||||
```python
|
||||
import osmnx as ox
|
||||
import networkx as nx
|
||||
|
||||
# Download and analyze street network
|
||||
G = ox.graph_from_place('San Francisco, CA', network_type='drive')
|
||||
G = ox.add_edge_speeds(G).add_edge_travel_times(G)
|
||||
|
||||
# Shortest path
|
||||
orig = ox.distance.nearest_nodes(G, -122.4, 37.7)
|
||||
dest = ox.distance.nearest_nodes(G, -122.3, 37.8)
|
||||
route = nx.shortest_path(G, orig, dest, weight='travel_time')
|
||||
```
|
||||
|
||||
## Image Classification
|
||||
|
||||
```python
|
||||
from sklearn.ensemble import RandomForestClassifier
|
||||
import rasterio
|
||||
from rasterio.features import rasterize
|
||||
|
||||
def classify_imagery(raster_path, training_gdf, output_path):
|
||||
"""Train RF and classify imagery."""
|
||||
with rasterio.open(raster_path) as src:
|
||||
image = src.read()
|
||||
profile = src.profile
|
||||
transform = src.transform
|
||||
|
||||
# Extract training data
|
||||
X_train, y_train = [], []
|
||||
for _, row in training_gdf.iterrows():
|
||||
mask = rasterize([(row.geometry, 1)],
|
||||
out_shape=(profile['height'], profile['width']),
|
||||
transform=transform, fill=0, dtype=np.uint8)
|
||||
pixels = image[:, mask > 0].T
|
||||
X_train.extend(pixels)
|
||||
y_train.extend([row['class_id']] * len(pixels))
|
||||
|
||||
# Train and predict
|
||||
rf = RandomForestClassifier(n_estimators=100, max_depth=20, n_jobs=-1)
|
||||
rf.fit(X_train, y_train)
|
||||
|
||||
prediction = rf.predict(image.reshape(image.shape[0], -1).T)
|
||||
prediction = prediction.reshape(profile['height'], profile['width'])
|
||||
|
||||
profile.update(dtype=rasterio.uint8, count=1)
|
||||
with rasterio.open(output_path, 'w', **profile) as dst:
|
||||
dst.write(prediction.astype(rasterio.uint8), 1)
|
||||
|
||||
return rf
|
||||
```
|
||||
|
||||
## Modern Cloud-Native Workflows
|
||||
|
||||
### STAC + Planetary Computer
|
||||
|
||||
```python
|
||||
import pystac_client
|
||||
import planetary_computer
|
||||
import odc.stac
|
||||
|
||||
# Search Sentinel-2 via STAC
|
||||
catalog = pystac_client.Client.open(
|
||||
"https://planetarycomputer.microsoft.com/api/stac/v1",
|
||||
modifier=planetary_computer.sign_inplace,
|
||||
)
|
||||
|
||||
search = catalog.search(
|
||||
collections=["sentinel-2-l2a"],
|
||||
bbox=[-122.5, 37.7, -122.3, 37.9],
|
||||
datetime="2023-01-01/2023-12-31",
|
||||
query={"eo:cloud_cover": {"lt": 20}},
|
||||
)
|
||||
|
||||
# Load as xarray (cloud-native!)
|
||||
data = odc.stac.load(
|
||||
list(search.get_items())[:5],
|
||||
bands=["B02", "B03", "B04", "B08"],
|
||||
crs="EPSG:32610",
|
||||
resolution=10,
|
||||
)
|
||||
|
||||
# Calculate NDVI on xarray
|
||||
ndvi = (data.B08 - data.B04) / (data.B08 + data.B04)
|
||||
```
|
||||
|
||||
### Cloud-Optimized GeoTIFF (COG)
|
||||
|
||||
```python
|
||||
import rasterio
|
||||
from rasterio.session import AWSSession
|
||||
|
||||
# Read COG directly from cloud (partial reads)
|
||||
session = AWSSession(aws_access_key_id=..., aws_secret_access_key=...)
|
||||
with rasterio.open('s3://bucket/path.tif', session=session) as src:
|
||||
# Read only window of interest
|
||||
window = ((1000, 2000), (1000, 2000))
|
||||
subset = src.read(1, window=window)
|
||||
|
||||
# Write COG
|
||||
with rasterio.open('output.tif', 'w', **profile,
|
||||
tiled=True, blockxsize=256, blockysize=256,
|
||||
compress='DEFLATE', predictor=2) as dst:
|
||||
dst.write(data)
|
||||
|
||||
# Validate COG
|
||||
from rio_cogeo.cogeo import cog_validate
|
||||
cog_validate('output.tif')
|
||||
```
|
||||
|
||||
## Performance Tips
|
||||
|
||||
```python
|
||||
# 1. Spatial indexing (10-100x faster queries)
|
||||
gdf.sindex # Auto-created by GeoPandas
|
||||
|
||||
# 2. Chunk large rasters
|
||||
with rasterio.open('large.tif') as src:
|
||||
for i, window in src.block_windows(1):
|
||||
block = src.read(1, window=window)
|
||||
|
||||
# 3. Dask for big data
|
||||
import dask.array as da
|
||||
dask_array = da.from_rasterio('large.tif', chunks=(1, 1024, 1024))
|
||||
|
||||
# 4. Use Arrow for I/O
|
||||
gdf.to_file('output.gpkg', use_arrow=True)
|
||||
|
||||
# 5. GDAL caching
|
||||
from osgeo import gdal
|
||||
gdal.SetCacheMax(2**30) # 1GB cache
|
||||
|
||||
# 6. Parallel processing
|
||||
rf = RandomForestClassifier(n_jobs=-1) # All cores
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Always check CRS** before spatial operations
|
||||
2. **Use projected CRS** for area/distance calculations
|
||||
3. **Validate geometries**: `gdf = gdf[gdf.is_valid]`
|
||||
4. **Handle missing data**: `gdf['geometry'] = gdf['geometry'].fillna(None)`
|
||||
5. **Use efficient formats**: GeoPackage > Shapefile, Parquet for large data
|
||||
6. **Apply cloud masking** to optical imagery
|
||||
7. **Preserve lineage** for reproducible research
|
||||
8. **Use appropriate resolution** for your analysis scale
|
||||
|
||||
## Detailed Documentation
|
||||
|
||||
- **[Coordinate Systems](references/coordinate-systems.md)** - CRS fundamentals, UTM, transformations
|
||||
- **[Core Libraries](references/core-libraries.md)** - GDAL, Rasterio, GeoPandas, Shapely
|
||||
- **[Remote Sensing](references/remote-sensing.md)** - Satellite missions, spectral indices, SAR
|
||||
- **[Machine Learning](references/machine-learning.md)** - Deep learning, CNNs, GNNs for RS
|
||||
- **[GIS Software](references/gis-software.md)** - QGIS, ArcGIS, GRASS integration
|
||||
- **[Scientific Domains](references/scientific-domains.md)** - Marine, hydrology, agriculture, forestry
|
||||
- **[Advanced GIS](references/advanced-gis.md)** - 3D GIS, spatiotemporal, topology
|
||||
- **[Big Data](references/big-data.md)** - Distributed processing, GPU acceleration
|
||||
- **[Industry Applications](references/industry-applications.md)** - Urban planning, disaster management
|
||||
- **[Programming Languages](references/programming-languages.md)** - Python, R, Julia, JS, C++, Java, Go, Rust
|
||||
- **[Data Sources](references/data-sources.md)** - Satellite catalogs, APIs
|
||||
- **[Troubleshooting](references/troubleshooting.md)** - Common issues, debugging, error reference
|
||||
- **[Code Examples](references/code-examples.md)** - 500+ examples
|
||||
|
||||
---
|
||||
|
||||
**GeoMaster covers everything from basic GIS operations to advanced remote sensing and machine learning.**
|
||||
---
|
||||
name: geomaster
|
||||
description: Comprehensive geospatial science skill covering remote sensing, GIS, spatial analysis, machine learning for earth observation, and 30+ scientific domains. Supports satellite imagery processing (Sentinel, Landsat, MODIS, SAR, hyperspectral), vector and raster data operations, spatial statistics, point cloud processing, network analysis, cloud-native workflows (STAC, COG, Planetary Computer), and 8 programming languages (Python, R, Julia, JavaScript, C++, Java, Go, Rust) with 500+ code examples. Use for remote sensing workflows, GIS analysis, spatial ML, Earth observation data processing, terrain analysis, hydrological modeling, marine spatial analysis, atmospheric science, and any geospatial computation task.
|
||||
license: MIT License
|
||||
metadata:
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# GeoMaster
|
||||
|
||||
Comprehensive geospatial science skill covering GIS, remote sensing, spatial analysis, and ML for Earth observation across 70+ topics with 500+ code examples in 8 programming languages.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
# Core Python stack (conda recommended)
|
||||
conda install -c conda-forge gdal rasterio fiona shapely pyproj geopandas
|
||||
|
||||
# Remote sensing & ML
|
||||
uv pip install rsgislib torchgeo earthengine-api
|
||||
uv pip install scikit-learn xgboost torch-geometric
|
||||
|
||||
# Network & visualization
|
||||
uv pip install osmnx networkx folium keplergl
|
||||
uv pip install cartopy contextily mapclassify
|
||||
|
||||
# Big data & cloud
|
||||
uv pip install xarray rioxarray dask-geopandas
|
||||
uv pip install pystac-client planetary-computer
|
||||
|
||||
# Point clouds
|
||||
uv pip install laspy pylas open3d pdal
|
||||
|
||||
# Databases
|
||||
conda install -c conda-forge postgis spatialite
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
### NDVI from Sentinel-2
|
||||
|
||||
```python
|
||||
import rasterio
|
||||
import numpy as np
|
||||
|
||||
with rasterio.open('sentinel2.tif') as src:
|
||||
red = src.read(4).astype(float) # B04
|
||||
nir = src.read(8).astype(float) # B08
|
||||
ndvi = (nir - red) / (nir + red + 1e-8)
|
||||
ndvi = np.nan_to_num(ndvi, nan=0)
|
||||
|
||||
profile = src.profile
|
||||
profile.update(count=1, dtype=rasterio.float32)
|
||||
|
||||
with rasterio.open('ndvi.tif', 'w', **profile) as dst:
|
||||
dst.write(ndvi.astype(rasterio.float32), 1)
|
||||
```
|
||||
|
||||
### Spatial Analysis with GeoPandas
|
||||
|
||||
```python
|
||||
import geopandas as gpd
|
||||
|
||||
# Load and ensure same CRS
|
||||
zones = gpd.read_file('zones.geojson')
|
||||
points = gpd.read_file('points.geojson')
|
||||
|
||||
if zones.crs != points.crs:
|
||||
points = points.to_crs(zones.crs)
|
||||
|
||||
# Spatial join and statistics
|
||||
joined = gpd.sjoin(points, zones, how='inner', predicate='within')
|
||||
stats = joined.groupby('zone_id').agg({
|
||||
'value': ['count', 'mean', 'std', 'min', 'max']
|
||||
}).round(2)
|
||||
```
|
||||
|
||||
### Google Earth Engine Time Series
|
||||
|
||||
```python
|
||||
import ee
|
||||
import pandas as pd
|
||||
|
||||
ee.Initialize(project='your-project')
|
||||
roi = ee.Geometry.Point([-122.4, 37.7]).buffer(10000)
|
||||
|
||||
s2 = (ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
|
||||
.filterBounds(roi)
|
||||
.filterDate('2020-01-01', '2023-12-31')
|
||||
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)))
|
||||
|
||||
def add_ndvi(img):
|
||||
return img.addBands(img.normalizedDifference(['B8', 'B4']).rename('NDVI'))
|
||||
|
||||
s2_ndvi = s2.map(add_ndvi)
|
||||
|
||||
def extract_series(image):
|
||||
stats = image.reduceRegion(ee.Reducer.mean(), roi.centroid(), scale=10, maxPixels=1e9)
|
||||
return ee.Feature(None, {'date': image.date().format('YYYY-MM-dd'), 'ndvi': stats.get('NDVI')})
|
||||
|
||||
series = s2_ndvi.map(extract_series).getInfo()
|
||||
df = pd.DataFrame([f['properties'] for f in series['features']])
|
||||
df['date'] = pd.to_datetime(df['date'])
|
||||
```
|
||||
|
||||
## Core Concepts
|
||||
|
||||
### Data Types
|
||||
|
||||
| Type | Examples | Libraries |
|
||||
|------|----------|-----------|
|
||||
| Vector | Shapefile, GeoJSON, GeoPackage | GeoPandas, Fiona, GDAL |
|
||||
| Raster | GeoTIFF, NetCDF, COG | Rasterio, Xarray, GDAL |
|
||||
| Point Cloud | LAS, LAZ | Laspy, PDAL, Open3D |
|
||||
|
||||
### Coordinate Systems
|
||||
|
||||
- **EPSG:4326** (WGS 84) - Geographic, lat/lon, use for storage
|
||||
- **EPSG:3857** (Web Mercator) - Web maps only (don't use for area/distance!)
|
||||
- **EPSG:326xx/327xx** (UTM) - Metric calculations, <1% distortion per zone
|
||||
- Use `gdf.estimate_utm_crs()` for automatic UTM detection
|
||||
|
||||
```python
|
||||
# Always check CRS before operations
|
||||
assert gdf1.crs == gdf2.crs, "CRS mismatch!"
|
||||
|
||||
# For area/distance calculations, use projected CRS
|
||||
gdf_metric = gdf.to_crs(gdf.estimate_utm_crs())
|
||||
area_sqm = gdf_metric.geometry.area
|
||||
```
|
||||
|
||||
### OGC Standards
|
||||
|
||||
- **WMS**: Web Map Service - raster maps
|
||||
- **WFS**: Web Feature Service - vector data
|
||||
- **WCS**: Web Coverage Service - raster coverage
|
||||
- **STAC**: Spatiotemporal Asset Catalog - modern metadata
|
||||
|
||||
## Common Operations
|
||||
|
||||
### Spectral Indices
|
||||
|
||||
```python
|
||||
def calculate_indices(image_path):
|
||||
"""NDVI, EVI, SAVI, NDWI from Sentinel-2."""
|
||||
with rasterio.open(image_path) as src:
|
||||
B02, B03, B04, B08, B11 = [src.read(i).astype(float) for i in [1,2,3,4,5]]
|
||||
|
||||
ndvi = (B08 - B04) / (B08 + B04 + 1e-8)
|
||||
evi = 2.5 * (B08 - B04) / (B08 + 6*B04 - 7.5*B02 + 1)
|
||||
savi = ((B08 - B04) / (B08 + B04 + 0.5)) * 1.5
|
||||
ndwi = (B03 - B08) / (B03 + B08 + 1e-8)
|
||||
|
||||
return {'NDVI': ndvi, 'EVI': evi, 'SAVI': savi, 'NDWI': ndwi}
|
||||
```
|
||||
|
||||
### Vector Operations
|
||||
|
||||
```python
|
||||
# Buffer (use projected CRS!)
|
||||
gdf_proj = gdf.to_crs(gdf.estimate_utm_crs())
|
||||
gdf['buffer_1km'] = gdf_proj.geometry.buffer(1000)
|
||||
|
||||
# Spatial relationships
|
||||
intersects = gdf[gdf.geometry.intersects(other_geometry)]
|
||||
contains = gdf[gdf.geometry.contains(point_geometry)]
|
||||
|
||||
# Geometric operations
|
||||
gdf['centroid'] = gdf.geometry.centroid
|
||||
gdf['simplified'] = gdf.geometry.simplify(tolerance=0.001)
|
||||
|
||||
# Overlay operations
|
||||
intersection = gpd.overlay(gdf1, gdf2, how='intersection')
|
||||
union = gpd.overlay(gdf1, gdf2, how='union')
|
||||
```
|
||||
|
||||
### Terrain Analysis
|
||||
|
||||
```python
|
||||
def terrain_metrics(dem_path):
|
||||
"""Calculate slope, aspect, hillshade from DEM."""
|
||||
with rasterio.open(dem_path) as src:
|
||||
dem = src.read(1)
|
||||
|
||||
dy, dx = np.gradient(dem)
|
||||
slope = np.arctan(np.sqrt(dx**2 + dy**2)) * 180 / np.pi
|
||||
aspect = (90 - np.arctan2(-dy, dx) * 180 / np.pi) % 360
|
||||
|
||||
# Hillshade
|
||||
az_rad, alt_rad = np.radians(315), np.radians(45)
|
||||
hillshade = (np.sin(alt_rad) * np.sin(np.radians(slope)) +
|
||||
np.cos(alt_rad) * np.cos(np.radians(slope)) *
|
||||
np.cos(np.radians(aspect) - az_rad))
|
||||
|
||||
return slope, aspect, hillshade
|
||||
```
|
||||
|
||||
### Network Analysis
|
||||
|
||||
```python
|
||||
import osmnx as ox
|
||||
import networkx as nx
|
||||
|
||||
# Download and analyze street network
|
||||
G = ox.graph_from_place('San Francisco, CA', network_type='drive')
|
||||
G = ox.add_edge_speeds(G).add_edge_travel_times(G)
|
||||
|
||||
# Shortest path
|
||||
orig = ox.distance.nearest_nodes(G, -122.4, 37.7)
|
||||
dest = ox.distance.nearest_nodes(G, -122.3, 37.8)
|
||||
route = nx.shortest_path(G, orig, dest, weight='travel_time')
|
||||
```
|
||||
|
||||
## Image Classification
|
||||
|
||||
```python
|
||||
from sklearn.ensemble import RandomForestClassifier
|
||||
import rasterio
|
||||
from rasterio.features import rasterize
|
||||
|
||||
def classify_imagery(raster_path, training_gdf, output_path):
|
||||
"""Train RF and classify imagery."""
|
||||
with rasterio.open(raster_path) as src:
|
||||
image = src.read()
|
||||
profile = src.profile
|
||||
transform = src.transform
|
||||
|
||||
# Extract training data
|
||||
X_train, y_train = [], []
|
||||
for _, row in training_gdf.iterrows():
|
||||
mask = rasterize([(row.geometry, 1)],
|
||||
out_shape=(profile['height'], profile['width']),
|
||||
transform=transform, fill=0, dtype=np.uint8)
|
||||
pixels = image[:, mask > 0].T
|
||||
X_train.extend(pixels)
|
||||
y_train.extend([row['class_id']] * len(pixels))
|
||||
|
||||
# Train and predict
|
||||
rf = RandomForestClassifier(n_estimators=100, max_depth=20, n_jobs=-1)
|
||||
rf.fit(X_train, y_train)
|
||||
|
||||
prediction = rf.predict(image.reshape(image.shape[0], -1).T)
|
||||
prediction = prediction.reshape(profile['height'], profile['width'])
|
||||
|
||||
profile.update(dtype=rasterio.uint8, count=1)
|
||||
with rasterio.open(output_path, 'w', **profile) as dst:
|
||||
dst.write(prediction.astype(rasterio.uint8), 1)
|
||||
|
||||
return rf
|
||||
```
|
||||
|
||||
## Modern Cloud-Native Workflows
|
||||
|
||||
### STAC + Planetary Computer
|
||||
|
||||
```python
|
||||
import pystac_client
|
||||
import planetary_computer
|
||||
import odc.stac
|
||||
|
||||
# Search Sentinel-2 via STAC
|
||||
catalog = pystac_client.Client.open(
|
||||
"https://planetarycomputer.microsoft.com/api/stac/v1",
|
||||
modifier=planetary_computer.sign_inplace,
|
||||
)
|
||||
|
||||
search = catalog.search(
|
||||
collections=["sentinel-2-l2a"],
|
||||
bbox=[-122.5, 37.7, -122.3, 37.9],
|
||||
datetime="2023-01-01/2023-12-31",
|
||||
query={"eo:cloud_cover": {"lt": 20}},
|
||||
)
|
||||
|
||||
# Load as xarray (cloud-native!)
|
||||
data = odc.stac.load(
|
||||
list(search.get_items())[:5],
|
||||
bands=["B02", "B03", "B04", "B08"],
|
||||
crs="EPSG:32610",
|
||||
resolution=10,
|
||||
)
|
||||
|
||||
# Calculate NDVI on xarray
|
||||
ndvi = (data.B08 - data.B04) / (data.B08 + data.B04)
|
||||
```
|
||||
|
||||
### Cloud-Optimized GeoTIFF (COG)
|
||||
|
||||
```python
|
||||
import rasterio
|
||||
from rasterio.session import AWSSession
|
||||
|
||||
# Read COG directly from cloud (partial reads)
|
||||
session = AWSSession(aws_access_key_id=..., aws_secret_access_key=...)
|
||||
with rasterio.open('s3://bucket/path.tif', session=session) as src:
|
||||
# Read only window of interest
|
||||
window = ((1000, 2000), (1000, 2000))
|
||||
subset = src.read(1, window=window)
|
||||
|
||||
# Write COG
|
||||
with rasterio.open('output.tif', 'w', **profile,
|
||||
tiled=True, blockxsize=256, blockysize=256,
|
||||
compress='DEFLATE', predictor=2) as dst:
|
||||
dst.write(data)
|
||||
|
||||
# Validate COG
|
||||
from rio_cogeo.cogeo import cog_validate
|
||||
cog_validate('output.tif')
|
||||
```
|
||||
|
||||
## Performance Tips
|
||||
|
||||
```python
|
||||
# 1. Spatial indexing (10-100x faster queries)
|
||||
gdf.sindex # Auto-created by GeoPandas
|
||||
|
||||
# 2. Chunk large rasters
|
||||
with rasterio.open('large.tif') as src:
|
||||
for i, window in src.block_windows(1):
|
||||
block = src.read(1, window=window)
|
||||
|
||||
# 3. Dask for big data
|
||||
import dask.array as da
|
||||
dask_array = da.from_rasterio('large.tif', chunks=(1, 1024, 1024))
|
||||
|
||||
# 4. Use Arrow for I/O
|
||||
gdf.to_file('output.gpkg', use_arrow=True)
|
||||
|
||||
# 5. GDAL caching
|
||||
from osgeo import gdal
|
||||
gdal.SetCacheMax(2**30) # 1GB cache
|
||||
|
||||
# 6. Parallel processing
|
||||
rf = RandomForestClassifier(n_jobs=-1) # All cores
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Always check CRS** before spatial operations
|
||||
2. **Use projected CRS** for area/distance calculations
|
||||
3. **Validate geometries**: `gdf = gdf[gdf.is_valid]`
|
||||
4. **Handle missing data**: `gdf['geometry'] = gdf['geometry'].fillna(None)`
|
||||
5. **Use efficient formats**: GeoPackage > Shapefile, Parquet for large data
|
||||
6. **Apply cloud masking** to optical imagery
|
||||
7. **Preserve lineage** for reproducible research
|
||||
8. **Use appropriate resolution** for your analysis scale
|
||||
|
||||
## Detailed Documentation
|
||||
|
||||
- **[Coordinate Systems](references/coordinate-systems.md)** - CRS fundamentals, UTM, transformations
|
||||
- **[Core Libraries](references/core-libraries.md)** - GDAL, Rasterio, GeoPandas, Shapely
|
||||
- **[Remote Sensing](references/remote-sensing.md)** - Satellite missions, spectral indices, SAR
|
||||
- **[Machine Learning](references/machine-learning.md)** - Deep learning, CNNs, GNNs for RS
|
||||
- **[GIS Software](references/gis-software.md)** - QGIS, ArcGIS, GRASS integration
|
||||
- **[Scientific Domains](references/scientific-domains.md)** - Marine, hydrology, agriculture, forestry
|
||||
- **[Advanced GIS](references/advanced-gis.md)** - 3D GIS, spatiotemporal, topology
|
||||
- **[Big Data](references/big-data.md)** - Distributed processing, GPU acceleration
|
||||
- **[Industry Applications](references/industry-applications.md)** - Urban planning, disaster management
|
||||
- **[Programming Languages](references/programming-languages.md)** - Python, R, Julia, JS, C++, Java, Go, Rust
|
||||
- **[Data Sources](references/data-sources.md)** - Satellite catalogs, APIs
|
||||
- **[Troubleshooting](references/troubleshooting.md)** - Common issues, debugging, error reference
|
||||
- **[Code Examples](references/code-examples.md)** - 500+ examples
|
||||
|
||||
---
|
||||
|
||||
**GeoMaster covers everything from basic GIS operations to advanced remote sensing and machine learning.**
|
||||
|
||||
@@ -3,7 +3,8 @@ name: geopandas
|
||||
description: Python library for working with geospatial vector data including shapefiles, GeoJSON, and GeoPackage files. Use when working with geographic data for spatial analysis, geometric operations, coordinate transformations, spatial joins, overlay operations, choropleth mapping, or any task involving reading/writing/analyzing vector geographic data. Supports PostGIS databases, interactive maps, and integration with matplotlib/folium/cartopy. Use for tasks like buffer analysis, spatial joins between datasets, dissolving boundaries, clipping data, calculating areas/distances, reprojecting coordinate systems, creating maps, or converting between spatial file formats.
|
||||
license: BSD-3-Clause license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# GeoPandas
|
||||
|
||||
@@ -3,7 +3,8 @@ name: get-available-resources
|
||||
description: This skill should be used at the start of any computationally intensive scientific task to detect and report available system resources (CPU cores, GPUs, memory, disk space). It creates a JSON file with resource information and strategic recommendations that inform computational approach decisions such as whether to use parallel processing (joblib, multiprocessing), out-of-core computing (Dask, Zarr), GPU acceleration (PyTorch, JAX), or memory-efficient strategies. Use this skill before running analyses, training models, processing large datasets, or any task where resource constraints matter.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Get Available Resources
|
||||
|
||||
@@ -3,7 +3,8 @@ name: gget
|
||||
description: "Fast CLI/Python queries to 20+ bioinformatics databases. Use for quick lookups: gene info, BLAST searches, AlphaFold structures, enrichment analysis. Best for interactive exploration, simple queries. For batch processing or advanced BLAST use biopython; for multi-database Python workflows use bioservices."
|
||||
license: BSD-2-Clause license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# gget
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
---
|
||||
name: ginkgo-cloud-lab
|
||||
description: Submit and manage protocols on Ginkgo Bioworks Cloud Lab (cloud.ginkgo.bio), a web-based interface for autonomous lab execution on Reconfigurable Automation Carts (RACs). Use when the user wants to run cell-free protein expression (validation or optimization), generate fluorescent pixel art, or interact with Ginkgo Cloud Lab services. Covers protocol selection, input preparation, pricing, and ordering workflows.
|
||||
metadata:
|
||||
version: "1.0"
|
||||
---
|
||||
|
||||
# Ginkgo Cloud Lab
|
||||
|
||||
@@ -3,7 +3,8 @@ name: glycoengineering
|
||||
description: Analyze and engineer protein glycosylation. Scan sequences for N-glycosylation sequons (N-X-S/T), predict O-glycosylation hotspots, and access curated glycoengineering tools (NetOGlyc, GlycoShield, GlycoWorkbench). For glycoprotein engineering, therapeutic antibody optimization, and vaccine design.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: Kuan-lin Huang
|
||||
version: "1.0"
|
||||
skill-author: Kuan-lin Huang
|
||||
---
|
||||
|
||||
# Glycoengineering
|
||||
|
||||
@@ -3,7 +3,8 @@ name: gtars
|
||||
description: High-performance toolkit for genomic interval analysis in Rust with Python bindings. Use when working with genomic regions, BED files, coverage tracks, overlap detection, tokenization for ML models, or fragment analysis in computational genomics and machine learning applications.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Gtars: Genomic Tools and Algorithms in Rust
|
||||
|
||||
@@ -3,7 +3,8 @@ name: histolab
|
||||
description: Lightweight WSI tile extraction and preprocessing. Use for basic slide processing tissue detection, tile extraction, stain normalization for H&E images. Best for simple pipelines, dataset preparation, quick tile-based analysis. For advanced spatial proteomics, multiplexed imaging, or deep learning pipelines use pathml.
|
||||
license: Apache-2.0 license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Histolab
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
name: hugging-science
|
||||
description: Use when the user is doing AI/ML work in a scientific domain — biology, chemistry, physics, astronomy, climate, genomics, materials science, medicine, ecology, energy, conservation, engineering, mathematics, scientific reasoning, drug discovery, protein design, weather modeling, theorem proving, single-cell, PDE solving, or anything similar. Hugging Science (huggingscience.co) is a curated catalog of scientific datasets, models, blog posts, and interactive Spaces; the `hugging-science` org on Hugging Face hosts community datasets, models, and demo Spaces. This skill helps you discover the right resource AND actually use it — loading datasets via `datasets`, running models via `transformers` or the HF Inference API, calling Spaces like BoltzGen via `gradio_client`, and citing blog posts for methodology. Trigger this skill whenever a user mentions a scientific ML task, asks for "a dataset/model for X" where X is a scientific topic, wants to fine-tune on scientific data, asks about protein / molecule / genome / climate / materials / astronomy / pathology / weather ML, or needs AI tools for research — even if they never say "Hugging Science" explicitly. The catalog is purpose-built for LLM agents (it ships an `llms-full.txt`); prefer it over generic web search for these tasks.
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Hugging Science
|
||||
|
||||
@@ -3,7 +3,8 @@ name: hypogenic
|
||||
description: Automated LLM-driven hypothesis generation and testing on tabular datasets. Use when you want to systematically explore hypotheses about patterns in empirical data (e.g., deception detection, content analysis). Combines literature insights with data-driven hypothesis testing. For manual hypothesis formulation use hypothesis-generation; for creative ideation use scientific-brainstorming.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Hypogenic
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Structured hypothesis formulation from observations. Use when you h
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Scientific Hypothesis Generation
|
||||
|
||||
@@ -3,11 +3,12 @@ name: imaging-data-commons
|
||||
description: Query and download public cancer imaging data from NCI Imaging Data Commons using idc-index. Use for accessing large-scale radiology (CT, MR, PET) and pathology datasets for AI training or research. No authentication required. Query by metadata, visualize in browser, check licenses.
|
||||
license: This skill is provided under the MIT License. IDC data itself has individual licensing (mostly CC-BY, some CC-NC) that must be respected when using the data.
|
||||
metadata:
|
||||
version: 1.4.0
|
||||
skill-author: Andrey Fedorov, @fedorov
|
||||
idc-index: "0.11.14"
|
||||
idc-data-version: "v23"
|
||||
repository: https://github.com/ImagingDataCommons/idc-claude-skill
|
||||
version: "1.0"
|
||||
version: 1.4.0
|
||||
skill-author: Andrey Fedorov, @fedorov
|
||||
idc-index: "0.11.14"
|
||||
idc-data-version: "v23"
|
||||
repository: https://github.com/ImagingDataCommons/idc-claude-skill
|
||||
---
|
||||
|
||||
# Imaging Data Commons
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
name: infographics
|
||||
description: "Create professional infographics using Nano Banana Pro AI with smart iterative refinement. Uses Gemini 3 Pro for quality review. Integrates research-lookup and web search for accurate data. Supports 10 infographic types, 8 industry styles, and colorblind-safe palettes."
|
||||
allowed-tools: Read Write Edit Bash
|
||||
metadata:
|
||||
version: "1.0"
|
||||
---
|
||||
|
||||
# Infographics
|
||||
|
||||
@@ -3,7 +3,8 @@ name: iso-13485-certification
|
||||
description: Comprehensive toolkit for preparing ISO 13485 certification documentation for medical device Quality Management Systems. Use when users need help with ISO 13485 QMS documentation, including (1) conducting gap analysis of existing documentation, (2) creating Quality Manuals, (3) developing required procedures and work instructions, (4) preparing Medical Device Files, (5) understanding ISO 13485 requirements, or (6) identifying missing documentation for medical device certification. Also use when users mention medical device regulations, QMS certification, FDA QMSR, EU MDR, or need help with quality system documentation.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# ISO 13485 Certification Documentation Assistant
|
||||
|
||||
@@ -3,7 +3,8 @@ name: labarchive-integration
|
||||
description: Electronic lab notebook API integration. Access notebooks, manage entries/attachments, backup notebooks, integrate with Protocols.io/Jupyter/REDCap, for programmatic ELN workflows.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# LabArchives Integration
|
||||
|
||||
@@ -3,7 +3,8 @@ name: lamindb
|
||||
description: This skill should be used when working with LaminDB, an open-source data framework for biology that makes data queryable, traceable, reproducible, and FAIR. Use when managing biological datasets (scRNA-seq, spatial, flow cytometry, etc.), tracking computational workflows, curating and validating data with biological ontologies, building data lakehouses, or ensuring data lineage and reproducibility in biological research. Covers data management, annotation, ontologies (genes, cell types, diseases, tissues), schema validation, integrations with workflow managers (Nextflow, Snakemake) and MLOps platforms (W&B, MLflow), and deployment strategies.
|
||||
license: Apache-2.0 license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# LaminDB
|
||||
|
||||
@@ -3,7 +3,8 @@ name: latchbio-integration
|
||||
description: Latch platform for bioinformatics workflows. Build pipelines with Latch SDK, @workflow/@task decorators, deploy serverless workflows, LatchFile/LatchDir, Nextflow/Snakemake integration.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# LatchBio Integration
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
name: latex-posters
|
||||
description: "Create professional research posters in LaTeX using beamerposter, tikzposter, or baposter. Support for conference presentations, academic posters, and scientific communication. Includes layout design, color schemes, multi-column formats, figure integration, and poster-specific best practices for visual communication."
|
||||
allowed-tools: Read Write Edit Bash
|
||||
metadata:
|
||||
version: "1.0"
|
||||
---
|
||||
|
||||
# LaTeX Research Posters
|
||||
|
||||
@@ -5,7 +5,8 @@ license: Apache-2.0
|
||||
allowed-tools: Read Write Edit Bash
|
||||
compatibility: Python 3.10+. Optional LibreOffice (Office formats) and ImageMagick (images). Bundled Tesseract for OCR. All processing is local — no cloud API required.
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# LiteParse — Local Document Parsing
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Conduct comprehensive, systematic literature reviews using multiple
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Literature Review
|
||||
|
||||
@@ -4,6 +4,7 @@ description: Comprehensive markdown and Mermaid diagram writing skill. Use when
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: Apache-2.0
|
||||
metadata:
|
||||
version: "1.0"
|
||||
skill-author: Clayton Young / Superior Byte Works, LLC (@borealBytes)
|
||||
skill-source: https://github.com/SuperiorByteWorks-LLC/agent-project
|
||||
skill-version: "1.0.0"
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Generate comprehensive market research reports (50+ pages) in the s
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Market Research Reports
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Convert files and office documents to Markdown. Supports PDF, DOCX,
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# MarkItDown - File to Markdown Conversion
|
||||
|
||||
@@ -3,7 +3,8 @@ name: matchms
|
||||
description: Spectral similarity and compound identification for metabolomics. Use for comparing mass spectra, computing similarity scores (cosine, modified cosine), and identifying unknown compounds from spectral libraries. Best for metabolite identification, spectral matching, library searching. For full LC-MS/MS proteomics pipelines use pyopenms.
|
||||
license: Apache-2.0 license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Matchms
|
||||
|
||||
@@ -4,7 +4,8 @@ description: MATLAB and GNU Octave numerical computing for matrix operations, da
|
||||
license: For MATLAB (https://www.mathworks.com/pricing-licensing.html) and for Octave (GNU General Public License version 3)
|
||||
compatibility: Requires either MATLAB or Octave to be installed for testing, but not required for just generating scripts.
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# MATLAB/Octave Scientific Computing
|
||||
|
||||
@@ -3,7 +3,8 @@ name: matplotlib
|
||||
description: Low-level plotting library for full customization. Use when you need fine-grained control over every plot element, creating novel plot types, or integrating with specific scientific workflows. Export to PNG/PDF/SVG for publication. For quick statistical plots use seaborn; for interactive plots use plotly; for publication-ready multi-panel figures with journal styling, use scientific-visualization.
|
||||
license: https://github.com/matplotlib/matplotlib/tree/main/LICENSE
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Matplotlib
|
||||
|
||||
@@ -5,7 +5,8 @@ license: Apache-2.0 license
|
||||
allowed-tools: [Read, Write, Edit, Bash]
|
||||
compatibility: Requires Python 3.9+ and datamol (installed with medchem). Optional Lilly demerit filter requires separate `lilly-medchem-rules` conda package.
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Medchem
|
||||
|
||||
@@ -3,6 +3,7 @@ name: modal
|
||||
description: Cloud computing platform for running Python on GPUs and serverless infrastructure. Use when deploying AI/ML models, running GPU-accelerated workloads, serving web endpoints, scheduling batch jobs, or scaling Python code to the cloud. Use this skill whenever the user mentions Modal, serverless GPU compute, deploying ML models to the cloud, serving inference endpoints, running batch processing in the cloud, or needs to scale Python workloads beyond their local machine. Also use when the user wants to run code on H100s, A100s, or other cloud GPUs, or needs to create a web API for a model.
|
||||
license: Apache-2.0
|
||||
metadata:
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ name: molecular-dynamics
|
||||
description: Run and analyze molecular dynamics simulations with OpenMM and MDAnalysis. Set up protein/small molecule systems, define force fields, run energy minimization and production MD, analyze trajectories (RMSD, RMSF, contact maps, free energy surfaces). For structural biology, drug binding, and biophysics.
|
||||
license: MIT
|
||||
metadata:
|
||||
skill-author: Kuan-lin Huang
|
||||
version: "1.0"
|
||||
skill-author: Kuan-lin Huang
|
||||
---
|
||||
|
||||
# Molecular Dynamics
|
||||
|
||||
@@ -5,7 +5,8 @@ license: Apache-2.0 license
|
||||
allowed-tools: Read Write Edit Bash
|
||||
compatibility: Requires Python 3.9–3.10 (molfeat 0.11.0 does not support 3.11+). Requires datamol, PyTorch, and optional extras for GNN/transformer models.
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Molfeat - Molecular Featurization Hub
|
||||
|
||||
@@ -3,7 +3,8 @@ name: networkx
|
||||
description: Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
|
||||
license: 3-clause BSD license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# NetworkX
|
||||
|
||||
@@ -3,7 +3,8 @@ name: neurokit2
|
||||
description: Comprehensive biosignal processing toolkit for analyzing physiological data including ECG, EEG, EDA, RSP, PPG, EMG, and EOG signals. Use this skill when processing cardiovascular signals, brain activity, electrodermal responses, respiratory patterns, muscle activity, or eye movements. Applicable for heart rate variability analysis, event-related potentials, complexity measures, autonomic nervous system assessment, psychophysiology research, and multi-modal physiological signal integration.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# NeuroKit2
|
||||
|
||||
@@ -3,7 +3,8 @@ name: neuropixels-analysis
|
||||
description: Neuropixels neural recording analysis. Load SpikeGLX/OpenEphys data, preprocess, motion correction, Kilosort4 spike sorting, quality metrics, Allen/IBL curation, AI-assisted visual analysis, for Neuropixels 1.0/2.0 extracellular electrophysiology. Use when working with neural recordings, spike sorting, extracellular electrophysiology, or when the user mentions Neuropixels, SpikeGLX, Open Ephys, Kilosort, quality metrics, or unit curation.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Neuropixels Data Analysis
|
||||
|
||||
@@ -3,7 +3,8 @@ name: omero-integration
|
||||
description: Microscopy data management platform. Access images via Python, retrieve datasets, analyze pixels, manage ROIs/annotations, batch processing, for high-content screening and microscopy workflows.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# OMERO Integration
|
||||
|
||||
@@ -3,7 +3,8 @@ name: open-notebook
|
||||
description: Self-hosted, open-source alternative to Google NotebookLM for AI-powered research and document analysis. Use when organizing research materials into notebooks, ingesting diverse content sources (PDFs, videos, audio, web pages, Office documents), generating AI-powered notes and summaries, creating multi-speaker podcasts from research, chatting with documents using context-aware AI, searching across materials with full-text and vector search, or running custom content transformations. Supports 16+ AI providers including OpenAI, Anthropic, Google, Ollama, Groq, and Mistral with complete data privacy through self-hosting.
|
||||
license: MIT
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Open Notebook
|
||||
|
||||
@@ -3,7 +3,8 @@ name: opentrons-integration
|
||||
description: Official Opentrons Protocol API for OT-2 and Flex robots. Use when writing protocols specifically for Opentrons hardware with full access to Protocol API v2 features. Best for production Opentrons protocols, official API compatibility. For multi-vendor automation or broader equipment control use pylabrobot.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Opentrons Integration
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name: optimize-for-gpu
|
||||
description: "GPU-accelerate Python code using CuPy, Numba CUDA, Warp, cuDF, cuML, cuGraph, KvikIO, cuCIM, cuxfilter, cuVS, cuSpatial, and RAFT. Use whenever the user mentions GPU/CUDA/NVIDIA acceleration, or wants to speed up NumPy, pandas, scikit-learn, scikit-image, NetworkX, GeoPandas, or Faiss workloads. Covers physics simulation, differentiable rendering, mesh ray casting, particle systems (DEM/SPH/fluids), vector/similarity search, GPUDirect Storage file IO, interactive dashboards, geospatial analysis, medical imaging, and sparse eigensolvers. Also use when you see CPU-bound Python code (loops, large arrays, ML pipelines, graph analytics, image processing) that would benefit from GPU acceleration, even if not explicitly requested."
|
||||
metadata:
|
||||
version: "1.0"
|
||||
author: K-Dense, Inc.
|
||||
---
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ name: pacsomatic
|
||||
description: Operator toolkit for nf-core/pacsomatic matched tumor-normal workflows from BAM inputs. Use this skill when the user needs to validate run inputs, generate pacsomatic-compliant samplesheets, prepare reproducible Nextflow launch artifacts, run locally or submit to schedulers (LSF/Slurm/PBS/SGE), and triage execution failures. Triggers on requests to run pacsomatic, prepare launch commands/scripts, perform dry-run checks, or troubleshoot pipeline startup and scheduler submission errors.
|
||||
license: MIT
|
||||
metadata:
|
||||
version: "1.0"
|
||||
skill-author: Beifang Niu
|
||||
contributors: Haidong, Wenchao
|
||||
upstream-pipeline: https://github.com/nf-core/pacsomatic
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name: paper-lookup
|
||||
description: Search 10 academic paper databases via REST APIs for research papers, preprints, and scholarly articles. Covers PubMed, PMC (full text), bioRxiv, medRxiv, arXiv, OpenAlex, Crossref, Semantic Scholar, CORE, Unpaywall. Use when searching for papers, citations, DOI/PMID lookups, abstracts, full text, open access, preprints, citation graphs, author search, or any scholarly literature query. Triggers on mentions of any supported database or requests like "find papers on X" or "look up this DOI".
|
||||
metadata:
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ name: paperzilla
|
||||
description: Chat with your agent about projects, recommendations, and canonical papers in Paperzilla. Use when users ask for recent project recommendations, canonical paper details, markdown-based summaries, recommendation feedback, feed export, or Atom feed URLs.
|
||||
license: MIT
|
||||
metadata:
|
||||
version: "1.0"
|
||||
skill-author: "Paperzilla Inc"
|
||||
---
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ name: parallel-web
|
||||
description: "All-in-one web toolkit powered by parallel-cli, with a strong emphasis on academic and scientific sources. Use this skill whenever the user needs to search the web, fetch/extract URL content, enrich data with web-sourced fields, or run deep research reports. Covers: web search (fast lookups, research, current info — prioritizing peer-reviewed papers, preprints, and scholarly databases), URL extraction (fetching pages, articles, academic PDFs), bulk data enrichment (adding fields to CSV/lists from the web), and deep research (exhaustive multi-source reports grounded in academic literature). Also handles setup, status checks, and result retrieval. Use this skill for ANY web-related task — even if the user doesn't mention 'parallel' or 'web' explicitly. If they want to look something up, fetch a page, enrich a dataset, investigate a topic, find academic papers, check citations, or review scientific literature, this is the skill to use."
|
||||
compatibility: Requires parallel-cli and internet access.
|
||||
metadata:
|
||||
version: "1.0"
|
||||
author: K-Dense, Inc.
|
||||
---
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pathml
|
||||
description: Full-featured computational pathology toolkit. Use for advanced WSI analysis including multiplexed immunofluorescence (CODEX, Vectra), nucleus segmentation, tissue graph construction, and ML model training on pathology data. Supports 160+ slide formats. For simple tile extraction from H&E slides, histolab may be simpler.
|
||||
license: GPL-2.0 license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# PathML
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
name: pdf
|
||||
description: Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.
|
||||
license: Proprietary. LICENSE.txt has complete terms
|
||||
metadata:
|
||||
version: "1.0"
|
||||
---
|
||||
|
||||
# PDF Processing Guide
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Structured manuscript/grant review with checklist-based evaluation.
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Scientific Critical Evaluation and Peer Review
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pennylane
|
||||
description: Hardware-agnostic quantum ML framework with automatic differentiation. Use when training quantum circuits via gradients, building hybrid quantum-classical models, or needing device portability across IBM/Google/Rigetti/IonQ. Best for variational algorithms (VQE, QAOA), quantum neural networks, and integration with PyTorch/JAX/TensorFlow. For hardware-specific optimizations use qiskit (IBM) or cirq (Google); for open quantum systems use qutip.
|
||||
license: Apache-2.0 license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# PennyLane
|
||||
|
||||
@@ -3,7 +3,8 @@ name: phylogenetics
|
||||
description: Build and analyze phylogenetic trees using MAFFT (multiple alignment), IQ-TREE 2 (maximum likelihood), and FastTree (fast NJ/ML). Visualize with ETE3 or FigTree. For evolutionary analysis, microbial genomics, viral phylodynamics, protein family analysis, and molecular clock studies.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: Kuan-lin Huang
|
||||
version: "1.0"
|
||||
skill-author: Kuan-lin Huang
|
||||
---
|
||||
|
||||
# Phylogenetics
|
||||
|
||||
@@ -5,7 +5,8 @@ license: Apache-2.0
|
||||
allowed-tools: Read Write Edit Bash
|
||||
compatibility: Requires Python 3.11–3.14 and polars-bio (uv pip install). Cloud I/O uses standard AWS/GCS/Azure SDK env vars when paths use s3://, gs://, or az:// URIs.
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# polars-bio
|
||||
|
||||
@@ -3,7 +3,8 @@ name: polars
|
||||
description: Fast in-memory DataFrame library for datasets that fit in RAM. Use when pandas is too slow but data still fits in memory. Lazy evaluation, parallel execution, Apache Arrow backend. Best for 1-100GB datasets, ETL pipelines, faster pandas replacement. For larger-than-RAM data use dask or vaex.
|
||||
license: https://github.com/pola-rs/polars/blob/main/LICENSE
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Polars
|
||||
|
||||
@@ -4,7 +4,8 @@ description: Create research posters using HTML/CSS that can be exported to PDF
|
||||
allowed-tools: Read Write Edit Bash
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# PPTX Research Posters (HTML-Based)
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
name: pptx
|
||||
description: "Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill."
|
||||
license: Proprietary. LICENSE.txt has complete terms
|
||||
metadata:
|
||||
version: "1.0"
|
||||
---
|
||||
|
||||
# PPTX Skill
|
||||
|
||||
@@ -3,7 +3,8 @@ name: primekg
|
||||
description: Query the Precision Medicine Knowledge Graph (PrimeKG) for multiscale biological data including genes, drugs, diseases, phenotypes, and more.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: K-Dense Inc. (PrimeKG original from Harvard MIMS)
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc. (PrimeKG original from Harvard MIMS)
|
||||
---
|
||||
|
||||
# PrimeKG Knowledge Graph Skill
|
||||
|
||||
@@ -3,7 +3,8 @@ name: protocolsio-integration
|
||||
description: Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
|
||||
license: Unknown
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Protocols.io Integration
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pufferlib
|
||||
description: High-performance reinforcement learning framework optimized for speed and scale. Use when you need fast parallel training, vectorized environments, multi-agent systems, or integration with game environments (Atari, Procgen, NetHack). Achieves 2-10x speedups over standard implementations. For quick prototyping or standard algorithm implementations with extensive documentation, use stable-baselines3 instead.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# PufferLib - High-Performance Reinforcement Learning
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pydeseq2
|
||||
description: Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# PyDESeq2
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pydicom
|
||||
description: Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.
|
||||
license: https://github.com/pydicom/pydicom/blob/main/LICENSE
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Pydicom
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
name: pyhealth
|
||||
description: Build clinical/healthcare deep-learning pipelines with PyHealth — loading EHR/signal/imaging datasets (MIMIC-III/IV, eICU, OMOP, SleepEDF, ChestXray14, EHRShot), defining tasks (mortality, readmission, length-of-stay, drug recommendation, sleep staging, ICD coding, EEG events), instantiating models (Transformer, RETAIN, GAMENet, SafeDrug, MICRON, StageNet, AdaCare, CNN/RNN/MLP), training with the PyHealth Trainer, computing clinical metrics, and using medical code utilities (ICD/ATC/NDC/RxNorm lookup and cross-mapping). Use this skill whenever the user mentions PyHealth, MIMIC, eICU, OMOP, EHR modeling, clinical prediction, drug recommendation, sleep staging, medical code mapping, ICD/ATC codes, or any healthcare ML pipeline that fits the dataset → task → model → trainer → metrics pattern, even if "PyHealth" isn't named explicitly.
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# PyHealth
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pylabrobot
|
||||
description: Vendor-agnostic lab automation framework. Use when controlling multiple equipment types (Hamilton, Tecan, Opentrons, plate readers, pumps) or needing unified programming across different vendors. Best for complex workflows, multi-vendor setups, simulation. For Opentrons-only protocols with official API, opentrons-integration may be simpler.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# PyLabRobot
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pymatgen
|
||||
description: Materials science toolkit. Crystal structures (CIF, POSCAR), phase diagrams, band structure, DOS, Materials Project integration, format conversion, for computational materials science.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Pymatgen - Python Materials Genomics
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pymc
|
||||
description: Bayesian modeling with PyMC. Build hierarchical models, MCMC (NUTS), variational inference, LOO/WAIC comparison, posterior checks, for probabilistic programming and inference.
|
||||
license: Apache License, Version 2.0
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# PyMC Bayesian Modeling
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pymoo
|
||||
description: Multi-objective optimization framework. NSGA-II, NSGA-III, MOEA/D, Pareto fronts, constraint handling, benchmarks (ZDT, DTLZ), for engineering design and optimization problems.
|
||||
license: Apache-2.0 license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Pymoo - Multi-Objective Optimization in Python
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pyopenms
|
||||
description: Complete mass spectrometry analysis platform. Use for proteomics workflows feature detection, peptide identification, protein quantification, and complex LC-MS/MS pipelines. Supports extensive file formats and algorithms. Best for proteomics, comprehensive MS data processing. For simple spectral comparison and metabolite ID use matchms.
|
||||
license: 3 clause BSD license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# PyOpenMS
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pysam
|
||||
description: Genomic file toolkit. Read/write SAM/BAM/CRAM alignments, VCF/BCF variants, FASTA/FASTQ sequences, extract regions, calculate coverage, for NGS data processing pipelines.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# Pysam
|
||||
|
||||
@@ -3,7 +3,8 @@ name: pytdc
|
||||
description: Therapeutics Data Commons. AI-ready drug discovery datasets (ADME, toxicity, DTI), benchmarks, scaffold splits, molecular oracles, for therapeutic ML and pharmacological prediction.
|
||||
license: MIT license
|
||||
metadata:
|
||||
skill-author: K-Dense Inc.
|
||||
version: "1.0"
|
||||
skill-author: K-Dense Inc.
|
||||
---
|
||||
|
||||
# PyTDC (Therapeutics Data Commons)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user