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
npx -y skills add HolobiomicsLab/asb-skill-collections --skill csv-format-validationAssembled 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.