molfeat – skill Dữ liệu & Khoa học cho agent AI
Trích xuất đặc trưng phân tử nhỏ bằng Molfeat cho QSAR/QSPR, độ tương đồng hóa học, sàng lọc ảo và ML phân tử. Bao gồm fingerprint ECFP/MACCS, descriptor RDKit, pharmacophore, embedding huấn luyện sẵn, lưu cấu hình và căn chỉnh phân tử với nhãn.
Cài skill molfeat bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/molfeat-1ab9d.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /molfeat – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/molfeat-1ab9d.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $molfeat – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/molfeat-1ab9d.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /molfeat – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/molfeat-1ab9d.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /molfeat – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Molfeat — Small-molecule featurization
When to use
Use this skill to turn SMILES or RDKit molecules into fingerprints, descriptors,
pharmacophores, or pretrained embeddings for molecular machine learning and similarity
search. Compare representations on the same molecular split and assay endpoint.
This skill targets Molfeat 1.0.0. The previous 0.11 runtime guidance is obsolete:
1.x supports modern Python and removes DGL/DGLLife, legacy Graphormer, and protein
adapters. Historical model-store cards can still name removed adapters. The tagged
[1.0 migration guide](https://github.com/datamol-io/molfeat/blob/1.0.0/docs/migration.md)
and source take precedence over older pages still served at the documentation's
stable URL.
Installation
Create an isolated environment. Core examples were executed on Python 3.13.3/macOS
Apple Silicon with Molfeat 1.0.0, datamol 0.13.0, RDKit 2026.03.6, and PyTorch 2.14.1.
uv venv --python 3.13 .venv-molfeat
uv pip install --python .venv-molfeat/bin/python "molfeat==1.0.0"On Windows use .venv-molfeat\Scripts\python.exe as the interpreter path. Upstream
supports Python 3.11–3.14; macOS Intel uses Python 3.11–3.12, PyTorch 2.2.x, NumPy<2,
and Transformers<5. Other platforms require PyTorch>=2.5. Let Molfeat's platform
markers resolve these constraints; do not copy Apple Silicon pins to Intel.
Install only needed extras with the same interpreter: molfeat[transformer]==1.0.0
for Hugging Face models, [mordred] for mordredcommunity, [pyg] for graph tensors,
[fcd] for ChemNet embeddings, [selfies] for SELFIES conversion, [cache] for
HDF5/Parquet, [viz] for visualization, and [cloud] for S3/GCS stores. DGL and
Graphormer extras no longer exist. Pretrained inference may download substantial
weights; check model licensing, disk space, and device requirements first.
Workflow
1. Preserve source record IDs, labels, original structures, and a declared policy for
salts, stereochemistry, tautomers, charge, and duplicate compounds. Standardization
changes chemical identity; apply the same policy to training and prediction.
2. Start with an explicit ECFP baseline. A calculator processes one molecule;
MoleculeTransformer batches it. datamol.Mol is RDKit's molecule type.
3. Record rejected positions and align every associated array. Inspect descriptor
NaN/Inf separately: successful parsing does not guarantee finite features.
4. Fit any feature selection, imputation, scaling, and model inside the training fold.
Prefer scaffold/group or temporal splits appropriate to the scientific question;
random splits can leak close analogues or repeated measurements.
5. Save the featurizer state, ordered feature names, package versions, molecular
preprocessing policy, and input IDs. Revalidate old state after migrating to 1.x.
Fingerprint baseline and invalid records
import numpy as np
from molfeat.calc import FPCalculator
from molfeat.trans import MoleculeTransformer
smiles = ["CCO", "invalid", "CC(=O)O", "c1ccccc1"]
record_ids = np.array(["ethanol", "rejected", "acetate", "benzene"])
y = np.array([0.1, 9.9, 0.2, 0.3]) # toy labels only
calc = FPCalculator("ecfp", radius=2, fpSize=2048, includeChirality=True)
transformer = MoleculeTransformer(calc, n_jobs=1, dtype=np.float32)
X, valid_ids = transformer(smiles, ignore_errors=True)
assert X.shape == (3, 2048)
X_ids, y_valid = record_ids[valid_ids], y[valid_ids]
assert valid_ids == [0, 2, 3]
assert np.isfinite(X).all()ignore_errors belongs on the call, not the constructor. With True, __call__
returns filtered features and original input positions; with False, it raises on
failed molecules. transform(..., ignore_errors=True) preserves positions using
None for failures. Never filter each feature block independently and then concatenate.
ECFP radius is a bond radius: radius=2 means ECFP4; radius 3 means ECFP6. In 1.0.0
FPCalculator("ecfp") defaults to radius 2 and 2048 bits. FPVecTransformer has a
*different* default length of 2000, so specify length=2048 when using it.
Configuration round trip
transformer.to_state_yaml_file("featurizer.yml")
loaded = MoleculeTransformer.from_state_yaml_file("featurizer.yml")
np.testing.assert_array_equal(loaded(["CCO"]), transformer(["CCO"]))Load only trusted configuration/artifacts. State can identify Python classes and
custom serialized callables; YAML/JSON does not make arbitrary third-party state safe.
State saves configuration, not assay labels, preprocessing decisions, or a trained QSAR model.
Pretrained embeddings
Illustrative; imports and signatures were checked, but no model weights were downloaded:
from molfeat.trans.pretrained import PretrainedHFTransformer
embedder = PretrainedHFTransformer(
kind="ChemBERTa-77M-MLM", pooling="mean", concat_layers=-1,
device="cpu", max_length=128, preload=False,
)
# First inference downloads/loads the model.
# embeddings = embedder(["CCO", "c1ccccc1"])PretrainedMolTransformer is a base class, not a model-name factory. Use the concrete
adapter. Embedding width depends on checkpoint, pooling, and selected layers; do not
assume 768. Inspect token lengths: truncation at max_length can discard chemical
information. Keep the model revision, tokenizer, notation, pooling, and maximum
length with every saved embedding cache.
Select and discover representations
| Need | Starting point | Check |
| --- | --- | --- |
| Fingerprint baseline | FPCalculator("ecfp", radius=2, fpSize=2048) | Chirality, bit collisions, fixed parameters |
| Structural keys | FPCalculator("maccs") | 167 entries, including unused bit zero |
| Named descriptors | RDKitDescriptors2D() | Columns depend on RDKit; inspect nonfinite values |
| Pharmacophore pairs | CATS() | Distance bins determine width; 2D default is 189 |
| 3D shape | USRDescriptors() / USRDescriptors("USRCAT") | Conformer needed; 12 / 60 entries |
| Pretrained language model | PretrainedHFTransformer(...) | Weights, license, tokenization, pooling |
See [available featurizers](references/available_featurizers.md) for valid names and
optional backends, [API contracts](references/api_reference.md) for batch/store
semantics, [worked examples](references/examples.md) for preprocessing, concatenation,
3D and similarity, and [model selection](references/choosing_a_featurizer.md) for
leakage-aware QSAR and bounded-memory screening.
For discovery, construct ModelStore() and inspect available_models or use exact
search(name=...). The first discovery call reads public HTTPS metadata. A card's
usage() returns code as a string; review it rather than execute it automatically.
store.load(...) returns (artifact, ModelInfo), not a featurizer. Historical cards
are not proof that an adapter is supported.
Performance and reproducibility
Use n_jobs=1 for small jobs and debugging. Benchmark bounded parallelism on the actual
workload; n_jobs=-1 can multiply memory use and nested scikit-learn parallelism.
Persist each chunk or score it before moving on; accumulating every chunk and calling
vstack still requires the full matrix in memory. Cache keys must include molecule
identity, preprocessing, all featurizer settings, package/model versions, and row order.
Sources and verification
Reviewed 2026-10-01 against the [release](https://github.com/datamol-io/molfeat/releases/tag/1.0.0),
[package metadata](https://pypi.org/project/molfeat/1.0.0/), and
[tagged source](https://github.com/datamol-io/molfeat/tree/1.0.0/molfeat).
Local tests cover core featurization contracts and small synthetic workflows; they do
not establish predictive validity or pretrained/optional-backend inference support.
Citing Scientific Agent Skills
This skill is part of Scientific Agent Skills by K-Dense. If it materially contributed to a
manuscript, report, presentation, or code release, add the paper to the references or
software section and tell the user you did so:
> Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent
> Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065.
> https://doi.org/10.48550/arXiv.2609.00065
Always cite the current version. The DOI and https://arxiv.org/abs/2609.00065 resolve to the
latest arXiv version, so never append a version suffix such as v1. When network access is
available, fetch https://arxiv.org/abs/2609.00065 (or
http://export.arxiv.org/api/query?id_list=2609.00065) before writing the reference and take
the author list, year, and version from that record. If the record lists a journal reference
or publisher DOI, cite the published version instead.
Skill liên quan
- neurokit2 – Xây dựng và kiểm tra quy trình nghiên cứu NeuroKit2 có thể tái lập cho tiền xử lý chuỗi…
- hyperliquid – Dữ liệu thị trường Hyperliquid, lịch sử tài khoản, đánh giá giao dịch.
- neuropixels-analysis – Phân tích toàn bộ quy trình dữ liệu ghi điện ngoại bào Neuropixels với SpikeInterface…
- data-quality-auditor – Kiểm tra dữ liệu về độ đầy đủ, tính nhất quán, độ chính xác và tính hợp lệ. Lập hồ sơ…
- database-designer – Dùng khi người dùng yêu cầu thiết kế schema cơ sở dữ liệu, lập kế hoạch migration dữ…
- database-schema-designer – Dùng khi người dùng yêu cầu tạo sơ đồ ERD, chuẩn hóa schema cơ sở dữ liệu, thiết kế quan…
- onekgpd – Truy vấn bộ dữ liệu 1000 Genomes Project (3.202 cá thể đã giải trình tự toàn bộ bộ gen…
- deep-research – Thực hiện một cuộc nghiên cứu bài bản, đa nguồn cho câu hỏi hoặc quyết định quan trọng…