R/create3dGenomicSignals.R
create3dGenomicSignals.Rd
Create a 3d Geometry by given genomic signals for target 3d positions.
The Genomic signals. An object of GRanges, Pairs, or GInteractions with scores or an object of track.
The GRanges object with mcols x0, y0, z0, x1, y1, and z1
The transformation function for genomic signals.
The transformation function for the coordinates. The function must have input as a data.frame with colnames x0, y0, z0, x1, y1, and z1. And it must have output as same dimension data.frame.
The genomic signals range.
Plot the genomic signals in reverse values.
The Geometry type.See threeJsGeometry
The tag used to group geometries.
The prefix for the name of the geometries.
The color of the signal. If there is metadata 'color' in GenoSig this parameter will be ignored.
The rotations in the x, y and z axis in radians.
the parameters for each different type of geometries. If type is 'segments', lwd.maxGenomicSigs (the maximal lwd of the line) is required. If type is 'circle', radius (the radius of the circle) and the maxVal (the value for 2*pi) is required. If type is 'sphere', 'dodecahedron', 'icosahedron', 'octahedron', or 'tetrahedron', radius is required. If type is 'box', 'capsule', 'cylinder', 'cone', or 'torus', if the properties of correspond geometry is not set, they will be set to the transformed score value. If type is 'json', please refer the documentation about BufferGeometryLoader at threejs.org If input 'GenoSig' is an object of Pairs or GInteractions, the type will be set to 'polygon' and topN is used to set how many top events will be plot.
threeJsGeometry objects or NULL
library(GenomicRanges)
#> Loading required package: stats4
#> Loading required package: BiocGenerics
#> Loading required package: generics
#>
#> Attaching package: 'generics'
#> The following objects are masked from 'package:base':
#>
#> as.difftime, as.factor, as.ordered, intersect, is.element, setdiff,
#> setequal, union
#>
#> Attaching package: 'BiocGenerics'
#> The following objects are masked from 'package:stats':
#>
#> IQR, mad, sd, var, xtabs
#> The following objects are masked from 'package:base':
#>
#> Filter, Find, Map, Position, Reduce, anyDuplicated, aperm, append,
#> as.data.frame, basename, cbind, colnames, dirname, do.call,
#> duplicated, eval, evalq, get, grep, grepl, is.unsorted, lapply,
#> mapply, match, mget, order, paste, pmax, pmax.int, pmin, pmin.int,
#> rank, rbind, rownames, sapply, saveRDS, table, tapply, unique,
#> unsplit, which.max, which.min
#> Loading required package: S4Vectors
#>
#> Attaching package: 'S4Vectors'
#> The following object is masked from 'package:utils':
#>
#> findMatches
#> The following objects are masked from 'package:base':
#>
#> I, expand.grid, unname
#> Loading required package: IRanges
#> Loading required package: GenomeInfoDb
GenoSig <- GRanges("chr1", IRanges(seq(1, 100, by = 10), width = 10),
score = seq.int(10)
)
pos <- matrix(rnorm(303), ncol = 3)
pos <- cbind(
x0 = pos[seq.int(100), 1],
x1 = pos[seq.int(101)[-1], 1],
y0 = pos[seq.int(100), 2],
y1 = pos[seq.int(101)[-1], 2],
z0 = pos[seq.int(100), 3],
z1 = pos[seq.int(101)[-1], 3]
)
targetObj <- GRanges("chr1", IRanges(seq.int(100), width = 1))
mcols(targetObj) <- pos
ds <- create3dGenomicSignals(GenoSig, targetObj,
signalTransformFun = function(x) {
log2(x + 1)
},
reverseGenomicSigs = FALSE,
type = "segment",
lwd.maxGenomicSigs = 8,
name = "test",
tag = "test"
)
threeJsViewer(ds)