Skip to contents
0.16.6 documentation

Complete canonical API text; task articles explain the workflows. Tutorials

Site guide · find your task

Reads standard BED3 through BED12. Starts are converted from zero-based half-open intervals to one-based inclusive intervals; accession identifiers are kept verbatim. Blank lines, comments, and custom-track header lines are skipped. Every data row in a file must have the same number of fields. Zero-width insertion records cannot be represented as nonempty genomic intervals and produce an explicit error.

Usage

Code
read_bed(file = NULL, files = NULL, source_file = FALSE)

Arguments

file

Optional path vector or glob patterns; read before files.

files

Optional paths or wildcard patterns for multiple BED files.

source_file

Logical. Add a .source_file column, default FALSE.

Value

A feature data frame with accver, start, end, strand, directionality, original chromStart/chromEnd, optional BED fields, and .source_line (the physical file line). A ggchord_import attribute records the input/output coordinate conventions and files.

Details

BED names are labels, not guaranteed unique feature IDs. Unspecified strand remains "." and directionality = "none"; use geom_feature() for these records. Optional fields retain their BED names and coordinate conventions, including zero-based thickStart, thickEnd, and relative blockStarts. BED12 additionally creates a segments list-column of one-based inclusive block intervals after checking block counts, boundaries and non-overlap. Blocks are retained in genomic order on both strands. No colour or shape is inferred from BED display fields. BED extensions beyond column 12 require an explicit data-frame conversion with as_ggchord_feature().

Examples

Code
library(dplyr)
data(plasmid_example_pUC19)
feature_source <- find_common_features(plasmid_example_pUC19)
features <- feature_source |>
  select(accver, start, end, strand, type, anno)
bed <- tempfile(fileext = ".bed")
bed_rows <- features |>
  transmute(accver, start0 = start - 1L, end)
write.table(bed_rows, bed,
  sep = "\t", quote = FALSE, row.names = FALSE, col.names = FALSE
)
read_bed(bed)
unlink(bed)