ai-startup-skills
创业公司做 AI 产品的 7 步 Agent Skill 合集:验证 → BP → 政策 → 路演 → 获客 → 定价 → 注册。
Translation pending
Interactive tool to explore how many possible molecules exist as you adjust elements and atom count
AI summary · revised during review
OtherHTML · PythonGitHub @Autonomous-Scientific-AgentsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Rough estimates of the number of chemically stable molecules made of a given set of elements, for every size up to a maximum number of heavy atoms. Counting follows GDB conventions:
pip install -e ".[test]"
python -m chemuniverse --max-atoms 11 --elements C N O F --exact-up-to 6 --samples 10 --seed 0
n molecules ± SE mode cumulative
1 4 exact 4
...
6 8738 exact 1.027e+04
7 6.695e+04 2.1e+03 estimate 7.722e+04
...
11 5.73e+08 4.2e+07 estimate 6.291e+08
total: 6.291e+08 ± 4.2e+07 (95.7 s)
From Python: chemuniverse.estimate(max_atoms, elements, RuleConfig(...), k_exact, samples, seed, method, jobs) returns one result per size.
--jobs N runs exact subtrees and sampling passes in N worker processes, or N threads with the Rust core. The results are identical for any N.
rust/ is a Rust port of the hot paths: tree, canonical labeling, payload and SMILES. It produces exactly the same tree, counts, SMILES and estimates as the Python code.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # once, if Rust is not installed
pip install ./rust # builds and installs chemuniverse-core
CHEMUNIVERSE_BACKEND=python forces the pure-Python code.--jobs 10.design/prd/0002-performance.md.Any run can be split into independent shards for a task farm. The reduced result is identical to a single-machine run.
python -m chemuniverse shard plan runs/cnof12 --kind exact --max-atoms 12 --elements C N O F --shards 4000
python -m chemuniverse shard run runs/cnof12 --jobs 10 # locally, or one task per shard on a cluster
python -m chemuniverse shard reduce runs/cnof12
--kind is exact, export (SMILES) or passes (stratified sampling, with one shard per pass).scripts/hpc/run_ensemble.py runs the shards with ensemble_launcher.scripts/hpc/crux/iri_job.py. See ADR 0012.Exact enumeration builds every molecule exactly once, so it can write them out as a GDB-style dataset:
python -m chemuniverse export --max-atoms 9 --elements C N O F --out data/cnof9 --jobs 10
n{size}_part{k}.smi.gz, with one Kekulé SMILES per line, plus a manifest.json that records the elements, the rules and the count per size.docs/ is a static page, published with GitHub Pages: https://autonomous-scientific-agents.github.io/Chemical-Universe/
chemuniverse results: exact, or sampled with ±2 SE.A step-by-step guide to the method (graphs, stability rules, canonical augmentation and tree sampling) is at https://autonomous-scientific-agents.github.io/Chemical-Universe/method/
The data in docs/data.js is generated by:
python scripts/build_site_data.py --max-atoms 17 --samples 12 --jobs 10 # ~25 min with the Rust core
All halogens obey the same rules, so the 128 possible element choices reduce to 40 runs. Each run is cached in build/site/, so an interrupted build resumes.
design/ holds the reasons behind the code:
design/adr/;design/prd/;design/README.md.The AI coding sessions that built this project are archived in agent-traces/. Their replays are published at https://autonomous-scientific-agents.github.io/Chemical-Universe/agent-traces/
Skeleton tree. The nodes are connected graphs whose vertices are labeled by element.
Payload. For each skeleton, the program:
(element, H) labelings up to symmetry.Resonance/Kekulé structures (e.g. benzene) therefore count once.
Exact counts up to --exact-up-to heavy atoms come from a full traversal of the tree.
Estimates for larger sizes come from sampling the tree below the exact frontier.
--samples passes.--method knuth): random root-to-leaf walks, each weighted by the product of branching factors along the way.
Each group can be turned off from the command line.
| Group | Rules | Flag |
|---|---|---|
| Valence | C4, N3, O2, S2, P3, Si4, B3, halogens 1; optional S 4/6 and P 5 | --hypervalent |
| Bond orders | ≤ 3; no triple bonds on O, S or halogens | --no-bond-order-limits |
| Strain | no triple bond in a ring < 8 atoms; no double bond in a 3- or 4-membered ring; no cumulated bonds at an atom in a ring < 9; Bredt (no multiple bond at a bridgehead of rings ≤ 7) | --no-strain |
| Heteroatoms | no O–O, N–O or halogen–(N, O, S, halogen) bonds; no enols; no hemiacetals, hemiaminals or gem-diols | --no-heteroatom, --allow-n-o |
| Validation | acyclic only / single bonds only | --no-rings, --no-multiple-bonds |
Strict tier (--rules strict, off by default) | S1 no heteroatom chains X–X–X; S2 no S–O; S3 no 3/4-ring with ≥ 2 heteroatoms; S4 no enethiols, NH-enamines, ynols/ynamines, imidic/thiono acids, ketenes; S5 no hemithioacetals; S6 no thioaldehydes/thioketones. Keeps 24% of C,N,O,S and 56% of C,N,O,F molecules at 8 atoms (ADR 0015) | --no-hetero-chains, --allow-s-o, --no-small-ring-heteroatoms, --no-tautomer-filter, --no-thio-gem, --no-thiocarbonyl-filter |
pytest checks:
With C, N, O, F up to 11 atoms there are exactly 698,073,917 molecules (6.98×10⁸; 8,303,267,373 up to 12 atoms). This is about 27× GDB-11 (2.6×10⁷), which uses much stricter functional-group and ring filters.
Exact C, N, O, F counts per size, computed on ALCF Crux (sizes 10–12 for the first time; 12 atoms took 86 core-hours on 4 nodes):
| n | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|
| molecules | 67,403 | 583,112 | 5,526,145 | 56,997,371 | 634,889,614 | 7,605,193,456 |
Exact C, N, O, S counts (exported as a dataset; see below):
| n | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|
| molecules | 219,566 | 2,129,403 | 22,382,806 | 253,018,485 | 3,057,059,302 | 39,320,382,465 |
| Dataset | Molecules | Size | Manifest |
|---|---|---|---|
chemuniverse-CNOS-le12: all C, N, O, S molecules up to 12 heavy atoms, basic rules | 42,655,220,742 | 132 GB (74 gzip SMILES chunks) | results/chemuniverse-CNOS-le12/manifest.json |
chemuniverse-CNOS-le12-strict: the same with the strict tier (ADR 0015) | 8,060,129,218 | 26 GB (23 chunks) | results/chemuniverse-CNOS-le12-strict/manifest.json |