Request access to LULA-1.1 weights

Access requests are reviewed individually by Om Therapeutics.

For testing without downloading model weights, use hosted LULA at https://omtx.ai
and contact dmc@omtx.ai to request tester Wallet Credits.

Downloading or using these materials is governed by the Om LULA Community
License 1.3. Submitting this form does not grant access or any commercial
rights. Commercial use outside Permitted Om Fulfillment requires a separate
written Om commercial license.

Log in or Sign Up to review the conditions and access this model content.

License notice. By downloading, accessing, using, distributing, or creating a derivative of LULA-1.1, you agree to the Om LULA Community License 1.3. LULA-1.1 is open-weight, not OSI open source. It may be used for research, evaluation, benchmarking, teaching, local inference, local fine-tuning, and Permitted Om Fulfillment Use. Commercial local/open-weight use outside Om Fulfillment, hosted API/SaaS access, resale, paid support or deployment, product bundling, and competing model services require a separate written Om commercial license. You may not publish, distribute, or make available raw or bulk LULA-1.1 Outputs, including scores, predictions, rankings, embeddings, screened molecule lists, or benchmark datasets, unless Om gives prior written approval. Public disclosure rights are limited to customer-derived experimental data, analyses, conclusions, and reports from molecules purchased through Om Fulfillment. For commercial licensing, contact dmc@omtx.ai.

Protein and ligand visualization
+ + +

omtx.ai

Open-weight release track

LULA-1.1 sequence-only protein-ligand scoring.

Protein amino-acid sequence plus ligand SMILES in, binding score out. No structure input, no docking, no folding step.

Sequence-only Local inference Open weights

Model at a glance

1.7M parameters 6.8 MB 6.14M training pairs 13,368 proteins Sequence-only Local inference Open weights

LULA-1.1

LULA-1.1 is a lightweight, sequence-only protein-ligand binding scorer from Om Therapeutics. It takes a protein amino-acid sequence and ligand SMILES and returns a binding score. There is no structure input, docking, or folding step.

This release uses the same ConPLex-style two-tower scoring architecture as the original LULA-1 open-weight release, with an updated target-balanced training recipe and expanded training coverage. The customer-facing model name is LULA-1.1.

What Changed From LULA-1

LULA-1.1 keeps the LULA-1 two-tower architecture while updating the weights, training coverage, sampling, and protein-context handling.

Compared with LULA-1, LULA-1.1 increases supervised protein-ligand training coverage from 2,763,260 to 6,137,835 pairs, adding 3,374,575 protein-ligand training pairs.

Coverage LULA-1 LULA-1.1
Supervised protein-ligand training pairs 2,763,260 6,137,835
Binder-labeled training pairs 2,132,861 4,816,392
Non-binder-labeled training pairs 630,399 1,321,443

The updated sampling recipe is target-balanced to avoid letting high-row-count targets dominate the update stream. LULA-1.1 also uses complete protein-context inference: 1,022-residue ESM windows with 256-residue overlap, C-terminal coverage, overlap-averaged residues, and full-sequence mean pooling excluding BOS/EOS tokens.

The validation evidence for this release is mixed across panels. LULA-1.1 is published as the next open-weight release for research and evaluation; users should benchmark it against their own targets before relying on rank ordering.

Protein Coverage

LULA-1.1 represents 13,368 protein source entities across model-ready release inputs.

Example proteins represented include EGFR, JAK2, RET, CDK2, MAPK1, GSK3B, DRD2, OPRM1, CHRM2, HTR2A, ESR1, AR, PPARG, BACE1, and thrombin.

Example protein classes include kinases, GPCRs, nuclear receptors, proteases/peptidases, ion channels and transporters, phosphatases, epigenetic/chromatin regulators, immune/complement/coagulation proteins, and cell-surface receptors.

This release reports aggregate coverage only. It does not include protein-level source manifests, amino-acid sequence tables, ligand rows, per-pair training rows, source object paths, internal private dataset/vintage identifiers, or customer data.

What This Release Contains

LULA-1.1 ships as a compact scoring head that runs on top of two public pretrained encoders. Om distributes the LULA-1.1 scoring head in this repository; the third-party encoders remain governed by their own upstream terms.

Component Parameters Source
LULA-1.1 scoring head 1,705,984 this repository
ESM-2 650M protein encoder 652,358,616 facebook/esm2_t33_650M_UR50D
ChemBERTa-77M-MTR ligand encoder about 3,500,000 DeepChem/ChemBERTa-77M-MTR

Usage

pip install "omtx[lula]>=2.0.20"

hf auth login
omtx lula download --model lula1.1
omtx lula verify --model lula1.1

Open in Colab

Full workflow cookbooks: LULA Score To Order, Om Accessible Space To Order, and Explicit SMILES.

Version Selection

Use the public model selector to choose the release:

omtx lula download --model lula1     # original LULA-1 open-weight release
omtx lula download --model lula1.1   # LULA-1.1
omtx lula download --model lula2     # LULA-2 cross-attention release
from omtx.lula import load_model

model = load_model("lula1")    # original LULA-1
model = load_model("lula1.1")  # LULA-1.1
model = load_model("lula2")    # LULA-2
from omtx.lula import load_model

model = load_model("lula1.1")
rows = model.score(
    protein_sequence="MSHHWGYGKHNGPEHWHKDFPIAKGERQSPVDIDTHTAKYDPSLKPLSVSYDQA",
    smiles=["CCO", "CC(=O)Nc1nnc(s1)S(N)(=O)=O"],
)
print(rows)

Batch scoring returns, per molecule: score, rank, and top_percentile_in_batch. Scores are intended for relative prioritization within a candidate set and are not calibrated binding probabilities.

Common Workflows

Use smiles=[...] when you want to score molecules you already have. This is local open-weight scoring after model and encoder setup.

from omtx.lula import load_model

protein_sequence = "MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQANN"
smiles = [
    "CCOc1ccc2nc(S(N)(=O)=O)sc2c1",
    "Cn1ccnc1CCNCc1cn(-c2ccc(F)c(Cl)c2)nn1",
    "CCO",
]

model = load_model("lula1.1")
scores = model.score(protein_sequence=protein_sequence, smiles=smiles)

Use source="om" and a Wallet Credit tier when you want Om to return orderable molecules from Om Accessible Space. This requires an Om API key. For local open-weight scoring, the SDK fetches the authenticated molecule slice without sending your protein sequence to Om.

from omtx import OmClient
from omtx.lula import load_model

protein_sequence = "MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQANN"

with OmClient(api_key="your-api-key") as client:
    model = load_model("lula1.1")
    scores = model.score(
        protein_sequence=protein_sequence,
        source="om",
        tier=50,
        n=50000,
        client=client,
    )

Only Om Accessible Space rows include source_metadata and can be ordered directly with Wallet Credits:

from uuid import uuid4
from omtx import OmClient

selected = sorted(scores, key=lambda row: row["score"], reverse=True)[:96]

with OmClient(api_key="your-api-key") as client:
    order = client.molecules.order(
        items=selected,
        shipping_address_id="your-shipping-address-id",
        idempotency_key=f"order-round-1-{uuid4()}",
    )

Om Accessible Space Without LULA

Install omtx>=2.0.23 when using the molecule-only helpers.

You can also fetch Om Accessible Space molecules, score or filter them with your own tools, and order selected rows through Om:

from omtx import OmClient

with OmClient(api_key="your-api-key") as client:
    pool = client.molecules.accessible_space(
        tier=50,
        n=50000,
        seed=123,
        idempotency_key="target-a-om-space-slice-1",
    )

    # smiles is a plain list[str], one SMILES per molecule.
    smiles = client.molecules.smiles(pool)

    # scores must be a same-length list[float], one score per SMILES.
    scores = score_with_your_model(smiles)

    # with_scores adds your scores back to the orderable Om rows.
    scored_rows = client.molecules.with_scores(pool, scores)

    selected = sorted(scored_rows, key=lambda row: row["score"], reverse=True)[:96]

    order = client.molecules.order(
        items=selected,
        shipping_address_id="your-shipping-address-id",
        idempotency_key="molecule-order-1",
    )

The SDK keeps the Om order metadata needed to revalidate fixed Wallet Credit price and route fulfillment internally. This path still requires an Om API key and Wallet Credits, but it does not require LULA scoring.

Data Locality

Local scoring and fine-tuning run on your machine. Om does not receive your targets, compounds, labels, checkpoints, or scores when you use the local model.

Hosted Om scoring is a separate product surface.

Score To Order

Use LULA Score To Order for Om Accessible Space scoring, explicit SMILES scoring, shipping address lookup, and Wallet Credits-funded Molecule Fulfillment orders.

Free to Use With Om Fulfillment

You may use LULA-1.1 locally, including local fine-tuning, to select, prioritize, order, and test molecules through Om.

If you purchase molecules through Om Fulfillment, you may use the resulting customer-derived experimental data, assay results, validation data, analyses, conclusions, and reports internally and commercially for your own discovery programs, subject to the License and the applicable Om fulfillment, platform, or enterprise agreement.

You may not resell LULA-1.1, host it as an API/SaaS, provide LULA-powered services to third parties, or use LULA-1.1 as a free internal commercial screening engine while ordering or testing outside Om. Those uses require a separate Om commercial license.

You own your targets, compounds, and Customer-Derived Om Fulfillment Data, subject to the applicable Om fulfillment, platform, or enterprise agreement. This does not include a right to publish raw or bulk LULA-1.1 Outputs, scores, predictions, rankings, embeddings, screened molecule lists, virtual screening results, or benchmark datasets without Om's prior written approval.

Files

File Bytes SHA256
model/best.pt 6,826,303 1933bbdf4aa335d52498c754dc961141d10631e38fb4cc1daa9a908e7e4601ba
model/model_config.json 310 de22bc8182d7f5f46454455e0e316296b59fb67f3aa420ce78c2728815806ff6
model/inference_config.json 436 115a343fef54f0d0a108998bb3ce86bd493e29a6518055e5707d896a1ddac36b

License

Weights are released under the Om LULA Community License 1.3. By downloading, accessing, using, distributing, or creating a derivative of LULA-1.1, you agree to that license. See LICENSE for the full terms and NOTICE for third-party components.

Summary (the LICENSE file governs):

  • Allowed without a separate paid model license - non-commercial research, evaluation, benchmarking, teaching, security testing, local inference, local fine-tuning, non-commercial demos, using LULA-1.1 to select, prioritize, order, test, or generate data through Om, and use or publication of Customer-Derived Om Fulfillment Data as allowed by the License and the applicable Om agreement.
  • Output publication restriction - raw or bulk LULA-1.1 Outputs, including scores, predictions, rankings, embeddings, screened molecule lists, virtual screening results, or benchmark datasets, may not be published, distributed, or made available without Om's prior written approval.
  • Requires a separate Om commercial license - commercial use of local/open- weight LULA-1.1 itself outside Om Fulfillment, commercial screening or production discovery not fulfilled through Om, self-hosting, monetized hosting, paid API/SaaS access, reselling model access, support/deployment, third-party services, bundling LULA-1.1 into a paid product, or building a competing model API around Om weights.
  • Commercial licensing contact - email dmc@omtx.ai.
  • Publication attribution required - permitted public papers, preprints, reports, or presentations using Customer-Derived Om Fulfillment Data must cite Om Therapeutics Inc. LULA-1.1, checkpoint lula1.1, and the Hugging Face model page.

Attribution

LULA-1.1 uses a ConPLex-style scoring architecture. See the ConPLex reference implementation at https://github.com/samsledje/ConPLex and the publication DOI 10.1073/pnas.2220778120.

Downloads last month
4
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Space using omtx/lula-1.1 1