agentsclimarketplace

Csv format validation

Skill HolobiomicsLab/asb-skill-collections/collections/metabolomics/v2/skills/csv-format-validation

Curated, evidence-grounded skill and software-tool collections for scientific AI agents, generated by the AgenticScienceBuilder

Install
npx -y skills add HolobiomicsLab/asb-skill-collections --skill csv-format-validation

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

  • 14 stars14 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 author says it does

Copied from the file, not written here

Use when when you have a .csv file intended as input to CypReact containing SMILES strings and need to verify it meets the required comma-separated format specification and that each SMILES string is syntactically valid before processing molecules through CYP isoform testing.

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

5.5 KB, 924 tokens by cl100k_base, as published. Nobody here has run it

CSV format validation

License: restricted — no clear open-source license detected for the underlying tool; verify licensing before commercial use or redistribution. <!-- asb-license-banner -->

Summary

Validates that comma-separated SMILES input files (.csv) conform to CypReact's required format and contain syntactically correct molecular structure representations. This skill ensures molecules can be successfully ingested before running CYP isoform reactivity predictions.

When to use

When you have a .csv file intended as input to CypReact containing SMILES strings and need to verify it meets the required comma-separated format specification and that each SMILES string is syntactically valid before processing molecules through CYP isoform testing.

When NOT to use

  • Input is already a .sdf file (use direct .sdf input to CypReact instead)
  • SMILES strings are already validated and formatted in a structured database or data object
  • Molecules are in a different format not requiring CSV parsing (e.g., InChI, molecular name lists)

Inputs

  • .csv file containing SMILES strings separated by commas
  • raw SMILES string sequences

Outputs

  • validated .csv file with deduplicated, syntactically correct SMILES
  • validated .json file with structured molecule records and metadata
  • validation report documenting SMILES correctness and format compliance

How to apply

Load the .csv file using a CSV parser (e.g., pandas) and extract all SMILES strings. Validate each SMILES string for syntactic correctness using RDKit or an equivalent molecular structure validator to confirm it represents a valid chemical structure. Check that molecules are comma-separated as required by CypReact's specification. Deduplicate the molecule list to remove redundant entries. Format the validated molecule list as a structured data object (DataFrame or JSON) compatible with CypReact input specifications. Write the parsed and validated molecule list to an output file (CSV or JSON) with validated SMILES and metadata fields.

Related tools

  • CypReact (Target tool that ingests and processes the validated CSV-formatted SMILES input for CYP isoform reactivity prediction) — github:bitbucket.org__Leon_Ti__cypreact
  • RDKit (Molecular structure validator used to verify syntactic correctness of each SMILES string)
  • pandas (CSV parser and data structure tool for loading, deduplicating, and formatting molecule lists)

Examples

import pandas as pd
from rdkit import Chem

df = pd.read_csv('molecules.csv')
valid_smiles = [s for s in df['SMILES'] if Chem.MolFromSmiles(s) is not None]
valid_df = pd.DataFrame({'SMILES': list(set(valid_smiles))})
valid_df.to_csv('validated_molecules.csv', index=False)

Evaluation signals

  • All SMILES strings parse successfully without RDKit errors or syntax exceptions
  • Output .csv/.json contains deduplicated molecule list with no empty or malformed SMILES entries
  • File structure matches CypReact input specification (comma-separated format with valid metadata fields)
  • Validated output can be successfully loaded by CypReact without pre-processing errors
  • Comparison of input vs. output record counts shows deduplication was applied and all remaining SMILES are valid

Limitations

  • Validation only confirms syntactic SMILES correctness; does not verify chemical feasibility or drug-likeness
  • Large CSV files may require chunked or streaming parsing to avoid memory exhaustion
  • Deduplication is exact-match only; stereoisomers or different canonical forms are not detected as duplicates
  • No changelog documented for CypReact format version changes; format specification may drift between releases

Evidence

  • [intro] csv_format_requirement: "If the user input a .csv file, it should contains the SMILEs of all molecules and split them with ","."
  • [other] validation_and_parsing_workflow: "Validate each SMILES string for syntactic correctness using RDKit or equivalent molecular structure validator. Extract and deduplicate the molecule list. Format the parsed molecule list as a"
  • [intro] output_format_specification: "The user can output a .sdf file or a .csv file."
  • [intro] csv_input_alternative: "The user can either input a .sdf file or a .csv. If the user input a .csv file, it should contains the SMILEs of all molecules and split them with ","."

What ships with it

Read from the repository

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

Keep looking

Skills are one crate of 328,083. 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.