Agent Skills: Julia Scientific Package Mapping Skill

Julia package equivalents for 137 K-Dense-AI scientific skills. Maps Python bioinformatics, chemistry, ML, quantum, and data science packages to native Julia ecosystem.

UncategorizedID: plurigrid/asi/julia-scientific

Install this agent skill to your local

pnpm dlx add-skill https://github.com/plurigrid/asi/tree/HEAD/plugins/asi/skills/julia-scientific

Skill Files

Browse the full folder contents for julia-scientific.

Download Skill

Loading file tree…

plugins/asi/skills/julia-scientific/SKILL.md

Skill Metadata

Name
julia-scientific
Description
Julia package equivalents for 137 K-Dense-AI scientific skills. Maps Python bioinformatics, chemistry, ML, quantum, and data science packages to native Julia ecosystem.

Julia Scientific Package Mapping Skill

"Two languages diverged in a scientific wood, and Julia—Julia took the one with multiple dispatch."

bmorphism Contributions

"We are building cognitive infrastructure for the next trillion minds"Plurigrid: the story thus far

"complexity of information / the burden of integrating it in real time makes technology an indispensable part of our cognitive infrastructure"@bmorphism

Key References from Plurigrid:

Overview

This skill provides comprehensive mappings from 137 K-Dense-AI Python scientific skills to their Julia package equivalents. Coverage is ~85% native Julia, with the remainder accessible via PyCall.jl interop.

Quick Reference

| Category | Skills | Coverage | Key Packages | |----------|--------|----------|--------------| | Bioinformatics | 25 | 92% | BioJulia ecosystem | | Chemistry | 17 | 85% | JuliaMolSim, Chemellia | | Quantum | 4 | 100% | Yao.jl, QuantumToolbox.jl | | ML/AI | 10 | 95% | Flux.jl, MLJ.jl, Lux.jl | | Data/Stats | 11 | 100% | DataFrames.jl, Turing.jl | | Visualization | 6 | 100% | Makie.jl, Plots.jl | | Physics/Astro | 6 | 90% | JuliaAstro ecosystem | | Clinical/DB | 13 | 60% | JuliaHealth, HTTP.jl | | Symbolic/Geo | 3 | 100% | Symbolics.jl, GeoDataFrames.jl | | Lab Automation | 8 | 50% | DrWatson.jl, Dagger.jl | | Documents | 5 | 80% | PDFIO.jl, Weave.jl |

GF(3) Conservation

Julia scientific triads maintain balance:

bioinformatics (-1) ⊗ visualization (0) ⊗ quantum (+1) = 0 ✓
chemistry (-1) ⊗ data-science (0) ⊗ ml-ai (+1) = 0 ✓
physics (-1) ⊗ symbolic (0) ⊗ clinical (+1) = 0 ✓

Core Mappings

Bioinformatics (BioJulia)

| Python | Julia | Performance | |--------|-------|-------------| | biopython | BioSequences.jl + FASTX.jl | 2-5x faster | | scanpy | SingleCellProjections.jl | 10x faster | | anndata | Muon.jl | Native H5AD | | cobrapy | COBREXA.jl | GPU support | | pysam | XAM.jl | 3x faster BAM |

Chemistry (JuliaMolSim + Chemellia)

| Python | Julia | Notes | |--------|-------|-------| | rdkit | MolecularGraph.jl | Pure Julia SMILES | | deepchem | AtomicGraphNets.jl | GNN molecular ML | | pymatgen | DFTK.jl + AtomsBase.jl | DFT calculations | | pyopenms | mzML.jl | Mass spec data |

Quantum (QuantumBFS)

| Python | Julia | Advantage | |--------|-------|-----------| | qiskit | Yao.jl | Native differentiable | | cirq | Yao.jl + QuantumClifford.jl | Faster simulation | | pennylane | JuliVQC.jl | 2-5x faster VQC | | qutip | QuantumToolbox.jl | GPU + autodiff |

ML/AI (FluxML + MLJ)

| Python | Julia | Notes | |--------|-------|-------| | pytorch-lightning | FluxTraining.jl + Lux.jl | Explicit params | | transformers | Transformers.jl | Pretrained loading | | stable-baselines3 | ReinforcementLearning.jl | Modular RL | | shap | ShapML.jl + ExplainableAI.jl | Native Shapley | | torch_geometric | GraphNeuralNetworks.jl | PyG-inspired |

Data Science (JuliaData + JuliaStats)

| Python | Julia | Performance | |--------|-------|-------------| | polars | DataFrames.jl | Comparable | | dask | Dagger.jl | DAG scheduler | | pymc | Turing.jl | Often faster | | statsmodels | GLM.jl + MixedModels.jl | Native | | networkx | Graphs.jl | Much faster |

Visualization (Makie + Plots)

| Python | Julia | Notes | |--------|-------|-------| | matplotlib | Plots.jl + CairoMakie.jl | Multi-backend | | plotly | PlotlyJS.jl + WGLMakie.jl | Interactive | | seaborn | AlgebraOfGraphics.jl | Grammar-of-graphics |

Document Processing (Papers/OCR)

| Python | Julia | Use | |--------|-------|-----| | pdfminer | PDFIO.jl | Native PDF parsing | | pytesseract | Tesseract.jl | OCR wrapper | | markdown | Weave.jl + Literate.jl | Literate programming | | latex | TikzPictures.jl + PGFPlotsX.jl | Publication quality |

Mathpix Integration

using HTTP, JSON3

function mathpix_ocr(image_path; app_id, app_key)
    headers = ["app_id" => app_id, "app_key" => app_key,
               "Content-type" => "application/json"]
    body = JSON3.write(Dict(
        "src" => "data:image/png;base64," * base64encode(read(image_path)),
        "formats" => ["latex_styled", "text"]
    ))
    resp = HTTP.post("https://api.mathpix.com/v3/text", headers, body)
    JSON3.read(resp.body)
end

Key Julia Organizations

| Org | Focus | Packages | |-----|-------|----------| | BioJulia | Bioinformatics | 90+ packages | | JuliaMolSim | Molecular simulation | Molly, DFTK, AtomsBase | | Chemellia | Chemistry ML | AtomicGraphNets, ChemistryFeaturization | | QuantumBFS | Quantum computing | Yao, YaoBlocks | | FluxML | Deep learning | Flux, Zygote, FluxTraining | | JuliaStats | Statistics | GLM, Distributions, Turing | | JuliaAstro | Astronomy | AstroLib, FITSIO, SkyCoords | | JuliaHealth | Medical/clinical | BioMedQuery, OMOP | | JuliaGeo | Geospatial | GeoDataFrames, ArchGDAL | | SciML | Scientific ML | DifferentialEquations, ModelingToolkit |

Usage Examples

Single-Cell Analysis (scanpy → SingleCellProjections.jl)

using SingleCellProjections, Muon

# Load AnnData
adata = readh5ad("pbmc3k.h5ad")

# Process (10x faster than scanpy)
adata = normalize_total(adata)
adata = log1p(adata)
adata = highly_variable_genes(adata)
adata = pca(adata)
adata = umap(adata)

Quantum Circuit (qiskit → Yao.jl)

using Yao

# Bell state
circuit = chain(2, put(1=>H), control(1, 2=>X))

# Measure
result = measure(zero_state(2) |> circuit, nshots=1000)

# Differentiable!
grad = expect'(Z ⊗ Z, zero_state(2) => circuit)

Molecular GNN (deepchem → Chemellia)

using AtomicGraphNets, ChemistryFeaturization

# Featurize molecules
mol = smilestomol("CCO")  # ethanol
fg = featurize(mol, GraphNodeFeaturization())

# Train GNN
model = CGCGNModel(fg, target_prop=:logP)
train!(model, molecules, targets)

Bayesian Inference (pymc → Turing.jl)

using Turing

@model function linear_regression(x, y)
    α ~ Normal(0, 10)
    β ~ Normal(0, 10)
    σ ~ truncated(Normal(0, 1), 0, Inf)
    for i in eachindex(y)
        y[i] ~ Normal(α + β * x[i], σ)
    end
end

chain = sample(linear_regression(x, y), NUTS(), 1000)

Full Mapping Document

See: JULIA_PACKAGE_MAPPING.md

The Homoiconic Bridge: Scheme ↔ SMILES ↔ ACSet

Deep structural insight: S-expressions (Scheme), SMILES strings (chemistry), and ACSets share a common foundation — trees/graphs with recursive self-reference.

Scheme S-expr:   (+ (* 2 3) (- 4 1))     → AST tree
SMILES:          CC(=O)Oc1ccccc1C(=O)O   → Molecular graph
ACSet:           Graph{V,E,src,tgt}       → Typed graph functor

All three: linearized representations of graph structure

What Comes After SMILES: Learnable Chemical Structure

The evolution of molecular representation — 7 parallel streams colored via Gay.jl (seed=137):

| Gen | Color | Representation | Julia Package | Properties | |-----|-------|----------------|---------------|------------| | 1 | #43D9E1 | SMILES string | MolecularGraph.jl | Canonical, not learnable | | 2 | #18CDEF | SELFIES | PyCall+selfies | Robust, generative-friendly | | 3 | #18D6D0 | Fingerprints | MolecularGraph.jl | Fixed-dim vectors | | 4 | #C70D22 | Graph features | ChemistryFeaturization.jl | Handcrafted node/edge | | 5 | #E44ABB | GNN (MPNN/GAT/SchNet) | GraphNeuralNetworks.jl | Fully learnable | | 6 | #58A021 | 3D coordinates | Chemfiles.jl, DFTK.jl | Geometry-aware | | 7 | #BDB223 | Foundation models | Coming | Pre-trained, transferable |

Parallel Evolution Insight: Each generation evolves along its own deterministic color stream. Workers 1-3 explore the space in parallel (Strong Parallelism Invariance: same seeds = same colors).

Stream 1 (SMILES):      #43D9E1 → #B78225 → #D54E82  (canonical → extended → stereochem)
Stream 2 (SELFIES):     #18CDEF → #6CBA3C → #EC9426  (robust → constrained → grammar)
Stream 5 (GNN):         #E44ABB → #50CD2E → #942B89  (MPNN → GAT → SchNet/DimeNet)
Stream 7 (Foundation):  #BDB223 → #88ECA7 → #5CDA99  (pretrain → finetune → adapt)
# The homoiconic bridge in code
using LispSyntax, MolecularGraph, Catlab, AtomicGraphNets

# Scheme code → AST → ACSet
sexp = @lisp (defun f (x) (+ x 1))
ast_acset = ast_to_acset(sexp)

# SMILES → Molecular graph → ACSet → GNN embedding
mol = smilestomol("c1ccccc1")  # benzene
mol_acset = mol_to_acset(mol)
embedding = gnn_embed(mol_acset)  # 64-dim learned vector

# Both navigate identically via Specter patterns!
branches_in_ast = select([ALL, pred(is_call_node)], ast_acset)
rings_in_mol = select([ALL, pred(is_ring_atom)], mol_acset)

# The deep insight: code and molecules are both graphs
# → same tools (ACSets, GNNs) work for both

Coloring Parallel Evolution with Gay.jl

using Gay

# 7 generations evolving in parallel streams (seed=137)
struct MolRepGeneration
    name::String
    color::String
    learnable::Bool
    evolution::Vector{String}  # Color stream for sub-generations
end

function color_mol_evolution(seed=137)
    streams = Gay.interleave(seed, n_streams=7, count=3)

    generations = [
        MolRepGeneration("SMILES", streams[1][1], false, streams[1]),
        MolRepGeneration("SELFIES", streams[2][1], false, streams[2]),
        MolRepGeneration("Fingerprints", streams[3][1], false, streams[3]),
        MolRepGeneration("GraphFeatures", streams[4][1], false, streams[4]),
        MolRepGeneration("GNN", streams[5][1], true, streams[5]),      # Learnable!
        MolRepGeneration("3DCoords", streams[6][1], true, streams[6]),
        MolRepGeneration("Foundation", streams[7][1], true, streams[7])
    ]

    # GF(3) balance: non-learnable (-1) + transition (0) + learnable (+1) = 0
    return generations
end

# Visualize evolution paths
for gen in color_mol_evolution()
    trit = gen.learnable ? "+1" : "-1"
    println("$(gen.name) [$(trit)]: $(join(gen.evolution, " → "))")
end

Key Julia Packages for Learnable Chemistry

| Package | Role | From Python | GNN Arch | |---------|------|-------------|----------| | MolecularGraph.jl | SMILES parsing, fingerprints | rdkit | — | | ChemistryFeaturization.jl | Node/edge featurization | deepchem | — | | GraphNeuralNetworks.jl | MPNN, GCN, GAT, GraphSAGE | torch_geometric, dgl | ✓ | | GeometricFlux.jl | Geometric deep learning | PyG | ✓ | | Flux.jl | Training infrastructure | pytorch | — | | Chemfiles.jl | 3D structure I/O | MDAnalysis | — | | DFTK.jl | Electronic structure (DFT) | pymatgen | — | | NNlib.jl | Neural network primitives | torch.nn | — |

GNN Architecture Evolution:

MPNN (2017) → GCN → GAT (attention) → SchNet (3D) → DimeNet → Equivariant GNNs
     ↓              ↓                    ↓
  Message      Graph Attention      Geometry-aware
  Passing      (multi-head)         (E(3) invariant)

Related Skills

  • acsets - Algebraic databases with Gay.jl coloring
  • gay-julia / julia-gay - Deterministic color generation
  • specter-acset - Bidirectional navigation
  • structured-decomp - Sheaf-based decompositions
  • condensed-analytic-stacks - Scholze-Clausen mathematics
  • lispsyntax-acset - S-expression ↔ ACSet bridge

Commands

# Search Julia equivalents
julia -e 'using Pkg; Pkg.status()' | grep -i biojulia

# Install BioJulia stack
julia -e 'using Pkg; Pkg.add(["BioSequences", "FASTX", "XAM", "BioStructures"])'

# Install ML stack
julia -e 'using Pkg; Pkg.add(["Flux", "MLJ", "GraphNeuralNetworks"])'

# Install quantum stack
julia -e 'using Pkg; Pkg.add(["Yao", "QuantumToolbox"])'

GF(3) Skill Triads

julia-scientific (0) ⊗ gay-mcp (+1) ⊗ acsets (-1) = 0 ✓
julia-scientific (0) ⊗ specter-acset (+1) ⊗ structured-decomp (-1) = 0 ✓

Generated from exhaustive parallel search of Julia package ecosystem (2025-12-30)