Files
obitools4/autodoc/docmd/pkg/obiformats/csv_writer.md
T
Eric Coissac 8c7017a99d ⬆️ version bump to v4.5
- Update obioptions.Version from "Release 4.4.29" to "/v/ Release v5"
- Update version.txt from 4.29 → .30
(automated by Makefile)
2026-04-13 13:34:53 +02:00

1.5 KiB

CSVSequenceRecord Function Description

The CSVSequenceRecord function converts a biological sequence object (*obiseq.BioSequence) into a slice of strings suitable for CSV output. It dynamically constructs the record based on user-defined options (opt Options), enabling flexible column selection.

Core Features

  • Sequence ID: Includes the sequence identifier if opt.CSVId() is enabled.
  • Abundance Count: Appends the sequence count (e.g., read depth) if opt.CSVCount() is true.
  • Taxonomic Information: Adds both NCBI taxid and scientific name (retrieved from attributes or fallback via opt.CSVNAValue()).
  • Definition Line: Includes the sequence definition/description if requested via opt.CSVDefinition().
  • Custom Attributes: Iterates over keys from opt.CSVKeys() and appends corresponding attribute values (or NA if missing).
  • Nucleotide Sequence: Appends the raw sequence string when opt.CSVSequence() is enabled.
  • Quality Scores: Converts Phred-quality scores to ASCII characters (using a configurable shift) if available; otherwise inserts NA.

Design Highlights

  • Uses obiutils.InterfaceToString() for safe type conversion of arbitrary attribute values.
  • Handles missing data consistently via opt.CSVNAValue().
  • Supports both standard and user-defined metadata fields.
  • Adapts quality encoding to common formats (e.g., Sanger/Illumina) via obidefault.WriteQualitiesShift().

This function enables interoperable, configurable export of sequence data to tabular formats.