singlePermutation {shiftR} | R Documentation |
This function performs fast feature overlap
count under a circular permutation.
The input data sets must be preprocessed with
shiftrPrepareLeft
and shiftrPrepareRight
functions.
singlePermutation(left, right, offset)
left |
Feature set prepared with |
right |
Feature set prepared with |
offset |
Offset of one feature set relative to another.
See the example below for clarity. |
Returns count of feature overlap under a circular permutation.
Andrey A Shabalin andrey.shabalin@gmail.com
### Number of features nf = 1e6 ### Generate left and right sets lset = sample(c(0L,1L), size = nf, replace = TRUE) rset = sample(c(0L,1L), size = nf, replace = TRUE) | lset # Prepare binary sets: lbin = shiftrPrepareLeft(lset) rbin = shiftrPrepareRight(rset) ### count feature overlap # R calculations overlapS = sum(lset & rset) # Binary calculations overlapF = singlePermutation(lbin, rbin, 0) message("Feature overlap: ", overlapS, " / ", overlapF, " (slow/fast count)") stopifnot( overlapS == overlapF ) ### Count overlap with offset offset = 2017 # R calculations overlapOS = sum(lset[ c((offset+1):nf, 1:offset)] & rset) # Binary calculations overlapOF = singlePermutation(lbin, rbin, offset) message("Feature overlap at offset: ", overlapOS, " / ", overlapOF, " (slow/fast count)") stopifnot( overlapOS == overlapOF )