Turns a data frame of features into an in-browser track (a
FromConfigAdapter), no files or web server required. This is the natural
way to view results you computed in R — peaks, windows, hits — directly on
the genome.
track_data_frame(data, name, assembly_name = NULL, ...)A data frame with columns chrom (or chr, or refName),
start and end (0-based, half-open). An optional score column makes it
a quantitative track; every other column rides along as a feature
attribute, shown in the feature details and readable by a display's
encoding.
Track display name.
Assembly the track belongs to. Usually left NULL —
JBrowseR() backfills it from the loaded assembly.
Extra config merged into the track. A displays list plots the
columns the way a grammar of graphics does: a LinearMarkDisplay maps a
column to y and another to a colour scale.
a track config list
df <- data.frame(
chrom = c("1", "2"),
start = c(123, 456),
end = c(789, 101112),
name = c("feature1", "feature2")
)
track_data_frame(df, "my_features")
#> $type
#> [1] "FeatureTrack"
#>
#> $trackId
#> [1] "my_features"
#>
#> $name
#> [1] "my_features"
#>
#> $adapter
#> $adapter$type
#> [1] "FromConfigAdapter"
#>
#> $adapter$features
#> $adapter$features[[1]]
#> $adapter$features[[1]]$refName
#> [1] "1"
#>
#> $adapter$features[[1]]$start
#> [1] 123
#>
#> $adapter$features[[1]]$end
#> [1] 789
#>
#> $adapter$features[[1]]$name
#> [1] "feature1"
#>
#> $adapter$features[[1]]$uniqueId
#> [1] "my_features-1"
#>
#>
#> $adapter$features[[2]]
#> $adapter$features[[2]]$refName
#> [1] "2"
#>
#> $adapter$features[[2]]$start
#> [1] 456
#>
#> $adapter$features[[2]]$end
#> [1] 101112
#>
#> $adapter$features[[2]]$name
#> [1] "feature2"
#>
#> $adapter$features[[2]]$uniqueId
#> [1] "my_features-2"
#>
#>
#>
#>
# a point per row at its log2 fold-change, coloured by call
de <- data.frame(
chrom = "7", start = c(1e6, 2e6), end = c(1e6, 2e6) + 6000,
log2fc = c(2.1, -1.7), sig = c("up", "down")
)
track_data_frame(de, "de", displays = list(list(
type = "LinearMarkDisplay",
marks = list(list(
shape = "point",
encoding = list(y = "log2fc", color = list(field = "sig", scale = "categorical"))
))
)))
#> $type
#> [1] "FeatureTrack"
#>
#> $trackId
#> [1] "de"
#>
#> $name
#> [1] "de"
#>
#> $adapter
#> $adapter$type
#> [1] "FromConfigAdapter"
#>
#> $adapter$features
#> $adapter$features[[1]]
#> $adapter$features[[1]]$refName
#> [1] "7"
#>
#> $adapter$features[[1]]$start
#> [1] 1e+06
#>
#> $adapter$features[[1]]$end
#> [1] 1006000
#>
#> $adapter$features[[1]]$log2fc
#> [1] 2.1
#>
#> $adapter$features[[1]]$sig
#> [1] "up"
#>
#> $adapter$features[[1]]$uniqueId
#> [1] "de-1"
#>
#>
#> $adapter$features[[2]]
#> $adapter$features[[2]]$refName
#> [1] "7"
#>
#> $adapter$features[[2]]$start
#> [1] 2e+06
#>
#> $adapter$features[[2]]$end
#> [1] 2006000
#>
#> $adapter$features[[2]]$log2fc
#> [1] -1.7
#>
#> $adapter$features[[2]]$sig
#> [1] "down"
#>
#> $adapter$features[[2]]$uniqueId
#> [1] "de-2"
#>
#>
#>
#>
#> $displays
#> $displays[[1]]
#> $displays[[1]]$type
#> [1] "LinearMarkDisplay"
#>
#> $displays[[1]]$marks
#> $displays[[1]]$marks[[1]]
#> $displays[[1]]$marks[[1]]$shape
#> [1] "point"
#>
#> $displays[[1]]$marks[[1]]$encoding
#> $displays[[1]]$marks[[1]]$encoding$y
#> [1] "log2fc"
#>
#> $displays[[1]]$marks[[1]]$encoding$color
#> $displays[[1]]$marks[[1]]$encoding$color$field
#> [1] "sig"
#>
#> $displays[[1]]$marks[[1]]$encoding$color$scale
#> [1] "categorical"
#>
#>
#>
#>
#>
#>
#>