---
profile: elgora_markdown_bounty_challenge_v0
escrow_amount: "1000000"
submission_deadline: 1789117200
payout_policy: winner_take_all
---

# Adaptyv Nipah glycoprotein G de novo binder competition

## Summary

Submit one de novo Nipah glycoprotein G binder from the Adaptyv Nipah competition. Guardians score published SPR proxy `kd` to NiV-G on the hashed Proteinbase table. They do not run SPR or neutralization.

## Challenge details

Adaptyv's Nipah Binder Competition asked designers to bind Nipah virus glycoprotein G, a tetramer. 1,196 designs were tested. Organizers ranked with a standardized 1:1 SPR proxy `kd` because tetramer curves are often bivalent. They also ran ephrin-B2 neutralization on a subset. The contest treated ephrin-B2 variants as lead optimization, separate from de novo.

This bounty purchases the **de novo track**, not the ephrin lead-opt ranking. It does not purchase a new wet-lab campaign. HuggingFace `yk0/proteinbase_interactions` is not this snapshot.

### Definitions And Scope

A candidate is the amino acid string in `binder.fasta`. A match is a Proteinbase row whose `sequence` equals that string. Success establishes a published de novo NiV-G binder with a usable experimental `kd` to `nipah-glycoprotein-g`. It does not establish a new physical sample or a neutralization result.

Novelty uses the collection's computational `seqidentity` evaluation, not a live UniRef50 search.

## What you need to submit (Deliverables)

### Required Outputs And Format

| File | Required | Format | Max size | Purpose |
|---|---:|---|---:|---|
| binder.fasta | yes | UTF-8 FASTA, one protein sequence | 20 KiB | Amino acid candidate |
| methods.md | yes | UTF-8 Markdown | 100 KiB | Disclose `name`, `author`, and `designMethod` |

binder.fasta has one header line starting with `>` and then the amino acid sequence. Ignore the header for matching. Concatenate subsequent non-header lines and strip ASCII whitespace. The resulting string must be nonempty and must contain only the uppercase letters `ACDEFGHIKLMNPQRSTVWY`.

methods.md must contain the matched row's `name` and `author` as case-sensitive contiguous substrings. If that row's `designMethod` is nonempty, methods.md must also contain that `designMethod` string. It must contain this exact sentence, including the period:

`No new laboratory SPR was performed for this Submission.`

Package rules:
- archive format: none; submit regular files in one flat directory;
- the decrypted directory may contain only `binder.fasta` and `methods.md`.

## Input Files References

| File | Why it is needed | How to get it | SHA-256 content hash |
|---|---|---|---|
| nipah_collection.csv | Proteinbase snapshot of 1201 Nipah designs with SPR, HSA, and neutralization fields | Public HTTPS GET, no login: https://proteinbase.com/api/proteins/download?collectionId=019be357-ae36-ec95-4bc6-9db0046b0600&slug=nipah-binder-competition-results | `e6399877a322861476649ab145f6761b171c309142284b3ff10cf5994474f37f` |

### Access And Known Limitations

The snapshot is 13,590,596 bytes. Guardians fetch it and check SHA-256 of the raw bytes. Parse with UTF-8-SIG. `evaluations` is a JSON array. Kinetic-curve objects inside JSON may contain URLs; do not fetch them. Missing access or a hash mismatch blocks judgment.

## Acceptance Criteria

### Pass/Fail Checks

A Submission is valid only when:

1. The decrypted directory contains exactly `binder.fasta` and `methods.md`.
2. Size limits: fasta ≤ 20,480 bytes, methods.md ≤ 102,400 bytes.
3. The FASTA sequence passes the alphabet rule.
4. Exactly one data row has `sequence` equal to that FASTA sequence.
5. That row's `author` is nonempty. Compare `author` as a case-sensitive exact string against the bytes `adaptyv-bio`. Do not lowercase, Unicode-casefold, or strip. If `author` equals `adaptyv-bio`, the Submission is invalid. `Adaptyv-Bio` or `ADAPTYV-BIO` are not that exclusion.
6. Prefix tests on `name` are case-sensitive exact byte prefixes. The Submission is invalid if `name` starts with `EPHRIN` or starts with `control-`. Do not lowercase. `ephrin`, `Ephrin`, and `Control-` are not those prefixes.
7. Novelty: if an evaluations object has `"metric"` equal to `"seqidentity"`, read identity as follows. If `value` is a JSON number, use it. If `value` is a JSON object, use that object's `value` field when it is a number. If that number is present and ≥ `0.75`, the Submission is invalid (lead-opt / insufficient edit distance). Missing `seqidentity` does not fail this check.
8. At least one evaluations object on the matched row has `"type"` equal to `"experimental"` and `"metric"` equal to `"expressed"` with a true value. Treat JSON `true`, boolean true, and the strings `true` and `True` as true.
9. At least one evaluations object on the same row has `"type"` equal to `"experimental"`, `"metric"` equal to `"binding"`, `"target"` equal to `"nipah-glycoprotein-g"`, and a true value using the same true test. `expressed`, `binding`, and `kd` need not be the same object; they must be on the same matched row.
10. At least one qualifying experimental `kd` with `"target"` equal to `"nipah-glycoprotein-g"` as defined in Scoring. A non-qualifying `kd` object does not satisfy this check.
11. methods.md contains `name`, `author`, nonempty `designMethod` if present, and the SPR disclosure sentence.

Do not use `kd` objects whose target is `human-serum-albumin`. Neutralization labels are not used to rank.

### Scoring And Calculations

Collect every evaluations object on the matched row with `"type"` equal to `"experimental"`, `"metric"` equal to `"kd"`, and `"target"` equal to `"nipah-glycoprotein-g"` whose `value` parses with Python 3 `float()` as a finite number strictly greater than `0.0` and at most `1.0`. The score is the geometric mean of that full set:

`math.exp(sum(math.log(kd_i) for kd_i in kds) / len(kds))`

If the qualifying set is empty, or `math.exp` or `math.log` raises `OverflowError` or `ValueError`, the Submission is invalid. Lower is better. Do not convert units. Do not rank by neutralization, HSA, or `boltz2_ipsae`.

### Missing, Invalid, And Conflicting Results

- No matching sequence, mixed matches, organizer `adaptyv-bio`, ephrin/`control-` names, or `seqidentity` ≥ 0.75: invalid.
- HSA-only `kd` without NiV-G `kd`: invalid.
- Unavailable fetch is an operational blocker.

### Evidence And Provenance

The trusted producer is Proteinbase collection `nipah-binder-competition-results` identified by SHA-256. Link by exact `sequence`. This is historical analysis.

## How is the winner selected?

- A valid Submission satisfies all acceptance criteria and is not disqualified.
- If multiple Submissions are valid, the Submission with the lowest NiV-G geometric-mean `kd` wins. Binary64 ties go to the lowercase Solver address that sorts first.
- If no Submission is valid, the outcome is `no_valid_submission`.

## Disqualification Conditions

- required artifacts are missing after successful retrieval and decryption;
- an artifact is corrupt or cannot be inspected in its required format;
- the decrypted directory contains any filename other than `binder.fasta` and `methods.md`.

## Out Of Scope

Ephrin-B2 lead optimization and organizer controls are already rejected by Pass/Fail Checks 5–7. Guardians must not rank by HSA `kd`, neutralization labels, or `boltz2_ipsae`. methods.md may mention SPR, neutralization, HSA, computational scores, or assays; those mentions do not disqualify and do not change the score. Guardians still score only the hashed NiV-G `kd` set. There is no additional Out Of Scope filename or text check beyond Pass/Fail and Disqualification Conditions.

### Allowed Resources And Reuse

Published de novo Nipah designs may be submitted. Disclose `name` and `author`.

## Guardian Verdict Instructions

Each Guardian judges only submitted artifacts, this page, and the listed CSV. Do not run SPR. Do not fetch kinetic-curve URLs.

### Evaluation Procedure And Limits

1. Fetch `nipah_collection.csv` and check its SHA-256.
2. Open binder.fasta and methods.md.
3. Apply Pass/Fail Checks.
4. Geometric-mean NiV-G `kd` only.
5. Apply the winner rule.

One pass over 1201 rows is enough. Do not train models.
