agentsclimarketplace

Molecular dataset partitioning and preprocessing

Skill HolobiomicsLab/asb-skill-collections/collections/metabolomics/v1/skills/molecular-dataset-partitioning-and-preprocessing

Use when you have raw molecular datasets (e.g., METLIN-CCS, CCSBase) with SMILES strings, 3D coordinates, adduct information, and ground-truth collision cross section labels, and you need to format them for GNN training and held-out test evaluation with consistent standardization.From its SKILL.md

Install
npx -y skills add HolobiomicsLab/asb-skill-collections --skill molecular-dataset-partitioning-and-preprocessing

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as CC-BY-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

8.4 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it

molecular-dataset-partitioning-and-preprocessing

Summary

Prepare molecular structure and collision cross section data for training and evaluating graph neural network models by applying standardized preprocessing and partitioning into train/validation/test splits. This skill ensures data consistency and reproducibility across GNN generalizability studies.

When to use

You have raw molecular datasets (e.g., METLIN-CCS, CCSBase) with SMILES strings, 3D coordinates, adduct information, and ground-truth collision cross section labels, and you need to format them for GNN training and held-out test evaluation with consistent standardization.

When NOT to use

  • Data is already in standardized parquet format with verified column alignment — proceed directly to model training.
  • You are evaluating a pre-trained GNN on predictions without retraining — load pre-computed prediction outputs instead.
  • Input lacks ground-truth CCS labels or adduct information — preprocessing cannot proceed without complete molecular metadata.

Inputs

  • Raw molecular database (CSV/Excel format) — METLIN or CCSBase database
  • SMILES strings for each molecule
  • 3D coordinates (optional, generated from SMILES if not provided)
  • Adduct type labels
  • Ground-truth collision cross section values
  • Parameter configuration file (JSON) specifying model hyperparameters

Outputs

  • Formatted training dataset (parquet file, e.g., metlin_train_3d.parquet)
  • Formatted test dataset (parquet file, e.g., ccsbase_3d.parquet)
  • Train/validation/test data splits with consistent column schema
  • Preprocessed molecular features ready for GNN input

How to apply

Load the raw molecular database (CSV/Excel) and reformat it according to the expected schema: SMILES column, optional 3D coordinates column, adduct column, and CCS label column (see notebooks/data_processing/2_data_splits.ipynb for format details). Apply any required preprocessing or standardization consistent with training (e.g., coordinate normalization, SMILES canonicalization, adduct encoding). Partition data into train/validation/test splits or load a pre-defined held-out test set. The repository provides wrapper functions and example commands in the Makefile that specify input/output parquet files, column names (smiles-column-name, coordinates-column-name, adduct-column-name, ccs-column-name), and preprocessing flags (coordinates-present) to standardize the workflow.

Related tools

Examples

poetry run python scripts/train-test.py --prefix "train-metlin-test-ccsbase" --train-input-file "ccs-prediction/metlin_train_3d.parquet" --test-input-file "ccs-prediction/ccsbase_3d.parquet" --smiles-column-name "smiles" --adduct-column-name "adduct" --ccs-column-name "ccs" --coordinates-column-name "coordinates" --coordinates-present

Evaluation signals

  • Output parquet files contain all required columns (smiles, coordinates/adduct, ccs) with no missing values in critical fields
  • Row counts and data distributions in train/test splits match documented split ratios and match those used in reproducibility notebooks
  • SMILES strings parse correctly and canonicalize consistently (no formatting drift across partitions)
  • CCS values fall within expected ranges for the source database (e.g., METLIN vs. CCSBase ranges) with no outliers exceeding documented extrema
  • Column names and data types match those specified in parameter configuration (e.g., coordinates-column-name, ccs-column-name) and are consistent with train-test.py invocation arguments

Limitations

  • Original METLIN-CCS and CCSBase datasets must be downloaded separately by the user under their respective licenses; the repository does not bundle them
  • 3D coordinates are optionally generated from SMILES using an unspecified coordinate generation method if not pre-computed; results may vary by coordinate generation tool
  • Preprocessing scripts assume specific input CSV/Excel structures; nonstandard database formats require manual schema mapping before partition scripts will execute correctly
  • Data processing notebooks are exploratory and must be manually executed; no automated pipeline currently enforces version-controlled preprocessing across all raw datasets

Evidence

  • [readme] Each user should download the raw database (as excel/csv) and read them in the two notebooks for each database located at https://github.com/enveda/ccs-prediction/tree/main/notebooks/data_processing. Each notebook reads the csv/excel and formats it according to the input of Mol2CCS.: "Each user should download the raw database (as excel/csv) and read them in the two notebooks for each database located at https://github.com/enveda/ccs-prediction/tree/main/notebooks/data_processing."
  • [other] Load the CCS dataset and apply any required preprocessing or standardization consistent with training. Partition data into train/validation/test splits or load the held-out test set as specified in the repository.: "Load the CCS dataset and apply any required preprocessing or standardization consistent with training. Partition data into train/validation/test splits or load the held-out test set as specified in"
  • [readme] See the commands in the Makefile to train the models. Run them as make train-metlin-test-metlin: "See the commands in the Makefile to train the models. Run them as make train-metlin-test-metlin"
  • [readme] train-input-file is the training set (see notebooks/data_processing/2_data_splits.ipynb for details on the format)/ test-input-file test set (see notebooks/data_processing/2_data_splits.ipynb for details on the format): "train-input-file is the training set (see notebooks/data_processing/2_data_splits.ipynb for details on the format)/"
  • [readme] smiles-column-name column name of the smiles adduct-column-name column name of the adduct ccs-column-name column name of the ccs coordinates-column-name column name of the 3d coordinates for each smiles: "smiles-column-name column name of the smiles adduct-column-name column name of the adduct ccs-column-name column name of the ccs"
  • [readme] coordinates-present if the coordinates are present (if not given, the model will use the smiles to generate the 3d coordinates): "coordinates-present if the coordinates are present (if not given, the model will use the smiles to generate the 3d coordinates)"

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.