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.
+
+
+
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 weightsLULA-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
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