Funded scientific challenge

Awarded

DREAM Olfactory Mixtures Prediction Challenge 2024

Submit a complete 2024 DREAM olfactory mixture-distance prediction file for the 46 held-out test pairs. Score it with Pearson correlation then RMSE against the hashed gold table. Guardians do not collect new psychophysics.

Submission deadline
Sep 11, 2026, 12:30 PM UTC
Judging deadline
Sep 11, 2026, 3:30 PM UTC
Settlement timeout
Sep 11, 2026, 6:30 PM UTC
On-chain record
View bounty creation

Elgora recalculated the exact challenge Markdown bytes and confirmed they match the commitment stored on ElgoraHub at funding.

Hash method: Keccak-256 of exact UTF-8 Markdown bytes

On-chain commitment0x2e5d8a53f2a52a4ebcb26a8d38063ebb3b9875227f5a8554ed1e58b212efabc6
Challenge matches the fingerprint recorded when this bounty was funded.

Payout receipt · settled

Paid to winning Solver

0.95USDC

0x5c3f8da8...853eed25 ↗

  • Winning Solver· 95.00%0.95 USDC
  • Treasury fee· 1.50%0.015 USDC
  • Guardian fee· 3.50%0.035 USDC

Escrow distributed1.00 USDC

Your wallet

Connect an eligible wallet

Connect the eligible wallet to claim from ElgoraHub.

Pinned Guardian roster

Guardian Verdicts

Every selected Guardian must record a Verdict. ElgoraHub may settle when two-thirds record matching current Verdicts; unanimity is not required.

3 of 3 Guardians matched the final result. Threshold 2. Two-thirds met.

Winning Submission
0x36612c26...d641b9be
ElgoraHub settlement
0xda8c11c9...6a53daed

Solver Submissions

6 Submissions

On-chain Submissions recorded for this bounty.

#SolverSubmittedBlockTransaction
1
0x5c3f...3eed25Winning Solver
Sep 11, 2026, 10:08 AM UTC#466765060xdd04eb6b...2678e194
2
0x706c...1466b3
Sep 11, 2026, 10:08 AM UTC#466764960x680cd8ae...f35f0579
3
0x7ce3...59ad90
Sep 11, 2026, 10:07 AM UTC#466764910x8d48f528...b0533d74
4
0xb240...4da1d2
Sep 11, 2026, 10:08 AM UTC#466765110x7e4bc339...6d820399
5
0xf2ce...886013
Sep 11, 2026, 10:08 AM UTC#466765010x5471b00a...b66e1e19
6
0xf465...df79bd
Sep 11, 2026, 10:07 AM UTC#466764860x20a70e66...84dcaad6

Committed challenge

Challenge details & success criteria

The approved challenge, byte for byte as committed at funding. Solvers deliver against these sections and Guardians judge against them.

Summary

Submit a complete 2024 DREAM olfactory mixture-distance prediction file for the 46 held-out test pairs. Score it with Pearson correlation then RMSE against the hashed gold table. Guardians do not collect new psychophysics.

Challenge details

The 2024 DREAM Olfactory Mixtures Prediction Challenge asked teams to predict perceptual discriminability of unpublished mixture pairs. Organizers scored a 46-pair hidden test set. Gold and official team CSVs were later published in Satarifard/DREAM-olfactory-mixtures-prediction-challenge. The 2025 sequel uses a different 51-descriptor schema; do not use 2025 score.py (Pearson + cosine on stimulus columns) on this 2024 file.

This bounty purchases one competitive official test-set prediction table scored against the hashed gold bytes. It does not purchase a new sensory study and it does not purchase authenticated psychophysics provenance. Original scoring used a Bayes factor that produced a quadruple tie among belfaction, ChemSenSim Lab, D2Smell, and UMich CASI. This historical bounty ranks with Pearson then RMSE on the hashed gold so Guardians can compute a result from those bytes without the R Bayes-factor script.

Definitions And Scope

A pair is (Dataset, Mixture_1, Mixture_2). Dataset is the cell text after CSV unquoting with ASCII whitespace stripped from both ends. Mixture ids in both gold and predictions are parsed as follows: take the unquoted cell, strip ASCII whitespace from both ends, then call Python 3 int(text, 10). That accepts an optional leading + or - and leading zeros (int("01", 10) is 1). If int(..., 10) raises ValueError (empty string, 1.0, 1e2, letters, or any other rejected form), that gold row makes the gold file unusable and judgment is blocked; that prediction row makes the Submission invalid. Do not use float(). Do not Unicode-casefold. Success means predictions.csv covers every gold pair and is scored as specified against fields in the hashed gold file. It does not establish that those gold fields are authentic measured discriminability.

What you need to submit (Deliverables)

Required Outputs And Format

FileRequiredFormatMax sizePurpose
predictions.csvyesUTF-8 CSV, official 2024 submission columns64 KiBMixture-distance predictions
methods.mdyesUTF-8 Markdown100 KiBTeam or method disclosure

Identify columns by header name after CSV unquoting, not position. Required prediction headers, each exactly once: Dataset, Mixture_1, Mixture_2, Predicted_Experimental_Values. If any of those names appears more than once, predictions.csv is invalid. Extra columns, including an empty first-column header, are ignored. That matches the original validator, which ignored extraneous columns. Gold required headers, each exactly once: Dataset, Mixture 1, Mixture 2, Experimental values. If any gold required header appears more than once, the gold file cannot be used and judgment is blocked.

There must be exactly 46 prediction data rows. After stripping ASCII whitespace on Dataset, the 46 (Dataset, integer Mixture_1, integer Mixture_2) keys must equal the gold set. Every Predicted_Experimental_Values must parse as a finite number.

Gold must also have exactly 46 data rows. Form gold identity keys the same way from gold Dataset, Mixture 1, and Mixture 2. Those 46 keys must be unique. If gold has any other row count, a duplicate identity key, or a mixture id that fails int(text, 10), the gold file cannot be used and judgment is blocked. Guardians then cannot score any Submission.

methods.md must contain this exact sentence, including the period:

These predictions are the team's published DREAM 2024 test-set file.

Package rules:

  • archive format: none; one flat directory;
  • only predictions.csv and methods.md;
  • do not include Docker images.
Input Files References
FileWhy it is neededHow to get itSHA-256 content hash
Test_set_mixturedist.csv46-pair gold mixture distances at this git blobPublic HTTPS GET, no login: https://raw.githubusercontent.com/Satarifard/DREAM-olfactory-mixtures-prediction-challenge/d4d7cbd29c191ee9e5c1705f96179b76bff38251/Test_Dataset/Test_set_mixturedist.csvb8953a3895d8168ab318805ecb63a0b5fc3e97ac601740301db3f7c9814563e3

Access And Known Limitations

Guardians fetch that git blob and check SHA-256 of the raw bytes, with no decode before hashing. Never substitute a later revision. The 2025 Sage score.py is not an input. Missing access or a hash mismatch blocks judgment. There is no GitHub or DREAM signature for this blob. Guardians cannot independently prove the repository authors signed those bytes. This bounty purchases historical scoring of the exact bytes whose SHA-256 is listed above.

Parse gold and predictions.csv the same way. Decode as UTF-8 (no BOM expected; if a UTF-8 BOM is present, strip it only for parse). Then read records with Python 3 csv.reader using the excel dialect and no other options: delimiter is the ASCII comma ,; quote character is "; doublequote is true; skipinitialspace is false; quoting is csv.QUOTE_MINIMAL. Identify columns by header name after CSV unquoting, not by position. The first record is the header. Every later record is one data row. If csv.reader raises csv.Error, or a record has fewer fields than that file's header, that file fails parse.

Gold headers after unquoting are Dataset, Mixture 1, Mixture 2, Experimental values (spaces in the mixture and values headers). Prediction required headers after unquoting are Dataset, Mixture_1, Mixture_2, Predicted_Experimental_Values. Each required name must appear exactly once. Duplicate required headers: gold cannot be used (judgment blocked); predictions are invalid. Extra prediction columns, including an empty first-column header, are ignored. Join gold to predictions by stripped Dataset plus mixture ids parsed with int(text, 10) as specified in Definitions.

Acceptance Criteria

Pass/Fail Checks

A Submission is valid only when:

  • the decrypted directory contains exactly predictions.csv and methods.md;
  • size limits: predictions.csv ≤ 65,536 bytes, methods.md ≤ 102,400 bytes;
  • methods.md contains the exact disclosure sentence from Deliverables, including the period;
  • predictions.csv parses with the Access CSV rules;
  • the four required prediction column names are present, each exactly once;
  • there are exactly 46 data rows;
  • every prediction mixture id parses with int(text, 10) after ASCII strip;
  • the 46 identity keys match the gold set exactly (no missing, no extras, no duplicates);
  • gold itself has exactly 46 unique identity keys; if not, judgment is blocked and this Submission is not scored;
  • every prediction is finite after Python 3 float() on the unquoted cell with surrounding ASCII whitespace stripped. If float() raises ValueError, TypeError, or OverflowError, the Submission is invalid. After that parse, math.isfinite(f) must be true and abs(f) <= 1e6. Values outside that box are invalid so later squares stay in binary64 range.

Wrong keys, row count, or missing disclosure sentence: invalid.

Scoring And Calculations

Build two aligned length-46 vectors in gold-file row order. For each gold row, look up the prediction whose stripped Dataset and int(text, 10) mixture ids match. y_i is gold Experimental values parsed with Python 3 float() then checked with math.isfinite and abs(y) <= 1e6. f_i is Predicted_Experimental_Values parsed and bounded the same way. If a gold y_i fails that check, the gold file cannot be used and judgment is blocked.

Use CPython 3.12 IEEE-754 binary64. Accumulate with left-to-right + only:

def add(xs):
    s = 0.0
    for x in xs:
        s = s + x
    return s

Do not use the builtin sum, math.fsum, NumPy, or pairwise summation. n is the integer 46. Then:

mx = add(f) / n
my = add(y) / n
num = add((fi - mx) * (yi - my) for each i in gold order)
den_f = add((fi - mx) ** 2 for each i in gold order)
den_y = add((yi - my) ** 2 for each i in gold order)
r = num / (math.sqrt(den_f) * math.sqrt(den_y))
rmse = math.sqrt(add((fi - yi) ** 2 for each i in gold order) / n)

If den_f is 0.0 or den_y is 0.0, the Submission is invalid. If mx, my, num, den_f, den_y, r, or rmse is not finite (math.isfinite is false, including inf and NaN), the Submission is invalid.

Primary score is r (higher is better). If two Pearson values are equal in binary64, lower RMSE wins. If RMSE also ties, lowercase Solver address ascending.

Do not use 2025 cosine distance. Do not use Bayes factor.

Missing, Invalid, And Conflicting Results

  • Dataset labels with trailing spaces must still match after strip.
  • Unavailable gold fetch is an operational blocker.

Evidence And Provenance

The Poster selects the Satarifard repository at git commit d4d7cbd29c191ee9e5c1705f96179b76bff38251 as the source of this historical gold table. File identity is the SHA-256 on this page. Guardians fetch the bytes and check the hash. That verifies the selected snapshot only. It does not prove DREAM, Sage, GitHub, or the repository authors authored those bytes, and it does not prove the gold fields are authentic psychophysics. Scoring uses only fields in that hashed file. There is no separate producer authentication commitment.

How is the winner selected?
  • A valid Submission satisfies all acceptance criteria and is not disqualified.
  • Highest Pearson wins; binary64 Pearson ties use lowest RMSE; remaining ties use lowercase Solver address ascending.
  • If no Submission is valid, the outcome is no_valid_submission.
Disqualification Conditions
  • required artifacts missing after successful retrieval and decryption;
  • the decrypted directory contains any filename other than predictions.csv and methods.md.

UTF-8 decode failure or CSV parse failure fails the corresponding Pass/Fail check. There is no separate “corrupt artifact” disqualification.

Out Of Scope

Guardians must not use 2025 cosine distance or Bayes factor. methods.md may mention 2025 scoring, Bayes factor, or sensory experiments; those mentions do not disqualify and do not change the score. Guardians still score Pearson then RMSE on the hashed 2024 gold. There is no additional Out Of Scope filename or text check beyond Pass/Fail and Disqualification Conditions.

Allowed Resources And Reuse

Published 2024 team prediction files may be submitted.

Guardian Verdict Instructions

Judge only submitted artifacts, this page, and the listed gold CSV. Do not fetch Synapse.

Evaluation Procedure And Limits

  1. Fetch Test_set_mixturedist.csv and check SHA-256.
  2. Open predictions.csv and methods.md.
  3. Apply Pass/Fail Checks.
  4. Compute Pearson then RMSE on the 46 aligned pairs.
  5. Apply the winner rule.

Do not train models. One pass over 46 pairs is enough.