BedFeatureReader
in package
implements
BedFeatureReaderInterface
A standalone, persistence-independent text reader, in the same spirit as GffFeatureReader : one interval per line, no entry delimiters, no Doctrine entity to persist into.
BED's chromStart/chromEnd are zero-based and half-open ([chromStart, chromEnd)), unlike the 1-based inclusive convention PlasmidFeature and the rest of Domain\Cloning use ; they are converted once here (1-based start = chromStart + 1, 1-based end = chromEnd - the exclusive 0-based upper bound and the inclusive 1-based one are numerically identical). chromStart must be strictly less than chromEnd : a zero-length BED interval has no meaningful 1-based equivalent (naively converting it would produce start > end, which this codebase's convention reserves for an origin-crossing feature - a silent, wrong reinterpretation this reader refuses to make).
BED carries no feature-type column the way GFF3's third column does, so every feature maps to FeatureType::MISC_FEATURE ; the original chromosome/contig name and score, which have no dedicated PlasmidFeature property, are kept in metadata rather than discarded. Only the first six columns (chrom, chromStart, chromEnd, name, score, strand - "BED6") are read : thickStart/ thickEnd/itemRgb and the block/exon columns ("BED12") describe sub-feature structure this reader does not attempt to reconstruct, the same simplification GenbankPlasmidMapper already documents for a GenBank join() location and GffFeatureReader for a spliced Parent/ID relationship. Only the first 3 columns (chrom, chromStart, chromEnd - "BED3") are required ; a missing name falls back to "chrom:chromStart-chromEnd" rather than being rejected, since BED's own spec treats name as optional. Class BedFeatureReader
Tags
Table of Contents
Interfaces
- BedFeatureReaderInterface
- Interface BedFeatureReaderInterface - reads a BED annotation file into PlasmidFeature instances, independently of any specific Plasmid.
Constants
- MINIMUM_COLUMN_COUNT : mixed = 3
Methods
Constants
MINIMUM_COLUMN_COUNT
private
mixed
MINIMUM_COLUMN_COUNT
= 3
Methods
read()
public
read(array<string|int, string> $aLines) : BedImportResult
Parameters
- $aLines : array<string|int, string>
Return values
BedImportResultmapColumns()
private
mapColumns(array<string|int, string> $aColumns) : PlasmidFeature
Parameters
- $aColumns : array<string|int, string>
-
At least the 3 required BED columns, in order