Smiles inchi fasta format recognition
Use when when you have a mixed batch of chemical structure queries in unknown or variable formats (e.From its SKILL.md
npx -y skills add HolobiomicsLab/asb-skill-collections --skill smiles-inchi-fasta-format-recognitionAssembled 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
7.2 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
smiles-inchi-fasta-format-recognition
License: noncommercial — confirm your use is a permitted (noncommercial) purpose before applying; commercial use requires a separate license (see
metadata.tool_license). <!-- asb-license-banner -->
Summary
Detect and classify chemical structure input formats (SMILES, InChI, IUPAC name, or FASTA) from raw query strings to route them to the appropriate ClassyFire API endpoint. This skill enables automated dispatch of heterogeneous structural representations without manual reformatting.
When to use
When you have a mixed batch of chemical structure queries in unknown or variable formats (e.g., user-submitted compound identifiers paired with Daylight SMILES, InChI strings, IUPAC nomenclature, or peptide/nucleotide FASTA sequences) and need to submit them to the ClassyFire API for automatic compound classification without prior format standardization.
When NOT to use
- Input is already classified and routed to a specific ClassyFire endpoint — use direct submission instead.
- Structural representation is malformed or does not conform to any recognized syntax (SMILES, InChI, IUPAC, FASTA) — preprocessing or manual curation is needed first.
- Query string does not contain a structural representation component — validation or user clarification is required before classification.
Inputs
- Query string with optional compound identifier and structural representation (tab-delimited)
- Daylight SMILES format string
- InChI format string
- IUPAC chemical name string
- FASTA format string (peptide or nucleotide sequences)
Outputs
- Classified query object with detected format type
- HTTP POST request object dispatched to ClassyFire API
- API response object from ClassyFire service
How to apply
Parse the input query string by splitting on a tab delimiter to extract an optional compound identifier and a structural representation component. Apply pattern matching against known syntax rules: test for SMILES compliance with Daylight conventions, check for InChI prefix markers (e.g., 'InChI='), detect FASTA format indicators (header lines starting with '>' for peptide or nucleotide sequences), or fall back to IAPIC nomenclature patterns. Once the structural type is identified, dispatch the parsed query to the corresponding ClassyFire POST endpoint using the rest-client gem in Ruby, submitting via the appropriate parameter key (e.g., 'smiles', 'inchi', 'fasta'). Capture and return the dispatched request object or API response for downstream validation.
Related tools
- rest-client gem (Dispatch parsed queries to ClassyFire API endpoints via REST POST requests)
- Ruby (Execution environment for parsing, pattern matching, and API client logic)
- ClassyFire API (Target service receiving routed queries; returns compound classification results) — bitbucket.org/wishartlab/classyfire_api
Evaluation signals
- Correctly identified format type matches the expected structural syntax (SMILES parses without Daylight rule violations, InChI begins with 'InChI=' prefix, FASTA header lines are present, IUPAC names are recognized by nomenclature patterns).
- HTTP POST request is dispatched to the correct ClassyFire API endpoint for the detected format (no misrouting or 400-level API errors).
- API response contains a valid classification result or acknowledgment (HTTP 200 or 201 status), not a parsing or parameter error.
- Compound identifier (if present) is preserved and returned in the API response metadata or downstream output.
- Tab-delimited parsing preserves both identifier and structural components without truncation or loss of special characters.
Limitations
- Format detection relies on pattern matching heuristics; ambiguous or malformed inputs may be misclassified (e.g., a short SMILES string resembling IUPAC nomenclature).
- IUPAC name recognition is not fully formalized in the article; classification may default to IUPAC only after SMILES, InChI, and FASTA patterns are ruled out.
- The tab delimiter is mandatory for separating compound identifier and structural representation; queries without this delimiter may not parse correctly if an identifier is expected.
- No changelog or version history is documented, limiting understanding of API stability and backwards compatibility across rest-client gem versions.
Evidence
- [other] The ClassyFire API accepts query input consisting of an optional compound identifier and structural representation separated by a tab, with the structural representation dispatched according to its type: Daylight SMILES format, InChI format, IUPAC name, or FASTA format for peptide or nucleotide sequences.: "The ClassyFire API accepts query input consisting of an optional compound identifier and structural representation separated by a tab, with the structural representation dispatched according to its"
- [other] Detect the structural representation type by pattern matching against SMILES syntax rules, InChI prefix conventions, FASTA format indicators, or IUPAC nomenclature patterns.: "Detect the structural representation type by pattern matching against SMILES syntax rules, InChI prefix conventions, FASTA format indicators, or IUPAC nomenclature patterns."
- [other] Dispatch the parsed query to the corresponding ClassyFire API endpoint using the REST-client gem in Ruby, submitting via POST method with the appropriate parameter key for the detected structure type.: "Dispatch the parsed query to the corresponding ClassyFire API endpoint using the REST-client gem in Ruby, submitting via POST method with the appropriate parameter key for the detected structure type."
- [intro] A query can be submitted using the POST method: "A query can be submitted using the POST method"
- [intro] ClassyFire is a resource that allows you to automatically classify any chemical compound based on its structure: "ClassyFire is a resource that allows you to automatically classify any chemical compound based on its structure"
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.