bedtools_subtract
Description
Subtracts one set of ranges from another, either by position or range.
Usage
1 2 3 4 5 6 7  bedtools_subtract(cmd = "help")
R_bedtools_subtract(a, b, f = 1e09, F = 1e09, r = FALSE, e = FALSE,
s = FALSE, S = FALSE, A = FALSE, N = FALSE,
g = NA_character_)
do_bedtools_subtract(a, b, f = 1e09, F = 1e09, r = FALSE, e = FALSE,
s = FALSE, S = FALSE, A = FALSE, N = FALSE,
g = NA_character_)

Arguments
cmd 
String of bedtools command line arguments, as they would be entered at the shell. There are a few incompatibilities between the docopt parser and the bedtools style. See argument parsing. 
a 
Path to a BAM/BED/GFF/VCF/etc file, a BED stream, a file object, or
a ranged data structure, such as a GRanges. Each feature in 
b 
Like 
f 
Minimum overlap required as a fraction of 
F 
Minimum overlap required as a fraction of 
r 
Require that the fraction of overlap be reciprocal for 
e 
Require that the minimum fraction be satisfied for 
s 
Require same strandedness. That is, find the subtract feature in

S 
Require opposite strandedness. That is, find the subtract feature in

A 
Remove entire feature if any overlap. If a feature in 
N 
Same as 
g 
A genome file, identifier or Seqinfo object that defines the order and size of the sequences. 
Details
As with all commands, there are three interfaces to the
subtract
command:
bedtools_subtract
Parses the bedtools command line and compiles it to the equivalent R code.
R_bedtools_subtract
Accepts R arguments corresponding to the command line arguments and compiles the equivalent R code.
do_bedtools_subtract
Evaluates the result of
R_bedtools_subtract
. Recommended only for demonstration and testing. It is best to integrate the compiled code into an R script, after studying it.
We typically subtract sets of ranges using
setdiff
; however, that will not work
here, because we cannot merge the ranges in a
.
The algorithm has two modes: by position (where ranges are clipped)
and by range (where ranges are discarded entirely). The position mode
is the default. We find overlaps, optionally restrict them, and for
each range in a
, we subtract all of the qualifying
intersections in b
.
When A
or N
are TRUE
, we use the second mode. In
the simplest case, that is just
subsetByOverlaps
with invert=TRUE
,
but fractional overlap restrictions and N
make that more
complicated.
Value
A language object containing the compiled R code, evaluating to a
GRanges object, except when A
or N
are TRUE
,
where the value might be a GRanges, GAlignments or VCF object,
depending on the input.
Author(s)
Michael Lawrence
References
http://bedtools.readthedocs.io/en/latest/content/tools/subtract.html
See Also
setopsmethods for set operations including setdiff, findOverlapsmethods for different ways to detect overlaps.
Examples
1 2 3 4 5 6 7 8 9 10 11  ## Not run:
setwd(system.file("unitTests", "data", "subtract", package="HelloRanges"))
## End(Not run)
## simple case, positionwise subtraction
bedtools_subtract("a a.bed b b.bed")
## fractional overlap restriction
bedtools_subtract("a a.bed b b.bed f 0.5")
## rangewise subtraction
bedtools_subtract("a a.bed b b.bed A f 0.5")
