Skip to main content

README.md

🧬 Blixa Research Language (Blixa) - Core Syntax v1.0

Blixa is a domain-specific programming language designed exclusively for biological researchers[cite: 1]. It provides a seamless, unified syntax to perform complex bioinformatics, single-cell analytics, structural biology, and statistical computations without requiring deep knowledge of the underlying scientific libraries or algorithms[cite: 1].

🏗️ Architecture & Philosophy

The language operates on a layered architecture: Researcher -> Biological Syntax -> Language Runtime -> Python Bridge -> Scientific Libraries -> Computation[cite: 1]. Every command is highly contextualized to biological objects, returning usable results and preserving immutability[cite: 1]. Analytical details, data transformations, and algorithm parameters are managed internally by the Runtime[cite: 1].

Project Layout

  • core/: Contains the primary runtime objects (DNA, RNA, Protein, Gene, Cell, Cells, Experiment, Workflow, Result) and shared abstractions[cite: 1].
  • modules/: Specialized scientific libraries loaded dynamically (genomics, singlecell, proteomics, crispr, epigenetics, etc.)[cite: 1].
  • transpiler/: Houses the custom DSL parser (BioParser) and the AST executor (PythonBridge)[cite: 1].
  • exceptions/: Strict biological and sequence validation handlers (BioError, SequenceValidationError)[cite: 1].

🧬 Core Objects

You can instantiate biological objects directly[cite: 1]:

  • dna("ATGCGT") - DNA sequences[cite: 1].
  • rna("AUGCGU") - RNA sequences[cite: 1].
  • protein("MEEPQSD") - Amino acid sequences[cite: 1].
  • gene("PAX6") - Biological genes[cite: 1].
  • cell("stem") - Single-cell instances[cite: 1].
  • cells("experiment.h5ad") - Cell populations / scRNA-seq datasets[cite: 1].
  • experiment("name") - Multi-condition experiment design[cite: 1].
  • workflow("name") - Automated analytical pipelines[cite: 1].

Shared Universal Methods

All biological objects share a universal interface[cite: 1]:

  • .value(), .len(), .at(pos), .slice(start, end), .head(n), .tail(n)[cite: 1]
  • .find(seq), .find_all(seq), .rep(seq)[cite: 1]
  • .valid(), .validate(), .info(), .summary(), .graph(type), .save(file)[cite: 1]

General & Statistical Functions

  • len(), mean(), median(), std(), distribution()[cite: 1]
  • compare(), correlation(), align(), t_test(), anova(), fdr_correct()[cite: 1]
  • load(file), save(data, file), export(data, file), integrate(), parallel()[cite: 1]

🧪 Domain-Specific Capabilities

1. Genomics (DNA & RNA)

  • DNA Methods: .gc(), .rev(), .comp(), .rev_comp(), .set(), .insert(), .delete(), .mutate(), .composition(), .codons(), .motifs(), .motif(), .promoter(), .orfs(), .transcribe(), .translate(), .methylation(), .snp()[cite: 1]
  • RNA Methods: .gc(), .rev(), .comp(), .rev_comp(), .translate(), .dna(), .fold(), .structure()[cite: 1]

2. Proteomics

  • Protein Methods: .weight(), .charge(), .pi(), .hydrophobicity(), .hydro(), .domains(), .structure(), .mutate(), .interact(), .bind(), .complex()[cite: 1]

3. Single-Cell Transcriptomics

  • Cell Population (cells): .filter(min_genes, max_mito), .normalize(), .variable_genes(), .reduce("pca"), .cluster("leiden"), .umap(), .trajectory(), .pseudotime(), .find_cells(), .expression(), .distribution(), .correlation(), .markers(), .classify(), .de(), .gsea(), .batch_correct(), .integrate(), .lineage(), .variants(), .histone_mods(), .chromatin_state(), .atac_seq(), .pca_variance()[cite: 1]
  • Single Cell (cell): .expression(), .markers(), .state(), .type, .label, .pluripotency_score(), .differentiate(), .reprogram(), .lineage()[cite: 1]

4. Gene Analysis & CRISPR Engineering

  • Gene Methods: .dna(), .rna(), .protein(), .promoter(), .exons(), .introns(), .expression(), .cells(), .compare(), .query(), .enrich()[cite: 1]
  • CRISPR (requires use crispr): .crispr_design(), .knockout(), .knockin(seq)[cite: 1]

5. Experiment & Results Management

  • Experiment: .add(sample, cond), .get(name), .compare(c1, c2), .compare_all(), .timecourse(), .filter(), .normalize(), .cluster(), .t_test(), .anova(), .report()[cite: 1]
  • Results: Analytical operations natively return a result object supporting: .info(), .summary(), .top(n), .sort(), .filter(), .select(), .at(idx), .column(name), .graph(), .fdr_correct(), .enrich(), .gsea(), .confusion_matrix()[cite: 1]

🧩 Specialized Modules

To keep the core language stable, advanced domain capabilities are loaded dynamically[cite: 1]:

use genomics
use transcriptomics
use singlecell
use proteomics
use structure
use stemcell
use crispr
use epigenetics
use statistics
use pathways
use variants
use integration
use visualization

⚙️ Workflows & Python Integration

Automating Pipelines

Workflows record abstract operations to be executed on multiple datasets[cite: 1]:

workflow1 = workflow("neural_analysis")
with workflow1:
    sample.filter(min_genes=300)
    sample.normalize()
    sample.reduce("pca")
    sample.cluster("leiden")
    sample.umap()

workflow1.run(new_sample)
workflow1.save("neural_analysis")

Native Python Integration

Blixa supports native Python logic seamlessly inside a python: block[cite: 1]:

python:
    for cell in sample:
        if cell.expression("pax6") > 3:
            print(cell.id)

🚀 Execution

To run a Blixa script .blx or enter the interactive REPL[cite: 1]:

# Execute a script
python run.py analysis.blx

# Start the interactive REPL
python run.py

Metadata

Release files for blixa 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for blixa 1.0.4
File Size Uploaded
blixa-1.0.4.tar.gz 423.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for blixa 1.0.4
File Interpreter ABI Platform
blixa-1.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 600.7 kB

Release files / blixa-1.0.4.tar.gz

Download URL blixa-1.0.4.tar.gz
Size 423.2 kB
Tags Source
SHA-256 checksum
How to use checksums
6209482ac8868ae80b31c09e34a21e9d9b87d8b00c6f15c7a1861a0618bbee12
BLAKE2b-256 checksum
How to use checksums
53ce95ceae8b379ed0399af43b9f4f731fce9b64cfcbf14cb040b5c58fba685a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / blixa-1.0.4-py3-none-any.whl

Download URL blixa-1.0.4-py3-none-any.whl
Size 177.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f67b084fea56d882ad5a663d0f8b64c12ecdb40de8469374c1400f301f2f920
BLAKE2b-256 checksum
How to use checksums
539db15ca89841ece9568dcde9b89fa5388faf0aeef2bea32ecd5f3c049275c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

This release

1.0.4 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page