Back to Multiple platform build/check report for BioC 3.12
ABCDEF[G]HIJKLMNOPQRSTUVWXYZ

CHECK report for genomeIntervals on merida1

This page was generated on 2021-05-06 12:35:06 -0400 (Thu, 06 May 2021).

To the developers/maintainers of the genomeIntervals package:
Please make sure to use the following settings in order to reproduce any error or warning you see on this page.
Package 712/1974HostnameOS / ArchINSTALLBUILDCHECKBUILD BIN
genomeIntervals 1.46.0  (landing page)
Julien Gagneur
Snapshot Date: 2021-05-05 14:51:38 -0400 (Wed, 05 May 2021)
URL: https://git.bioconductor.org/packages/genomeIntervals
Branch: RELEASE_3_12
Last Commit: 519c416
Last Changed Date: 2020-10-27 10:35:22 -0400 (Tue, 27 Oct 2020)
malbec1Linux (Ubuntu 18.04.5 LTS) / x86_64  OK    OK    OK  UNNEEDED, same version exists in internal repository
tokay1Windows Server 2012 R2 Standard / x64  OK    OK    WARNINGS    OK  UNNEEDED, same version exists in internal repository
merida1macOS 10.14.6 Mojave / x86_64  OK    OK    OK    OK  UNNEEDED, same version exists in internal repository

Summary

Package: genomeIntervals
Version: 1.46.0
Command: /Library/Frameworks/R.framework/Versions/Current/Resources/bin/R CMD check --install=check:genomeIntervals.install-out.txt --library=/Library/Frameworks/R.framework/Versions/Current/Resources/library --no-vignettes --timings genomeIntervals_1.46.0.tar.gz
StartedAt: 2021-05-06 02:05:16 -0400 (Thu, 06 May 2021)
EndedAt: 2021-05-06 02:07:23 -0400 (Thu, 06 May 2021)
EllapsedTime: 127.2 seconds
RetCode: 0
Status:   OK  
CheckDir: genomeIntervals.Rcheck
Warnings: 0

Command output

##############################################################################
##############################################################################
###
### Running command:
###
###   /Library/Frameworks/R.framework/Versions/Current/Resources/bin/R CMD check --install=check:genomeIntervals.install-out.txt --library=/Library/Frameworks/R.framework/Versions/Current/Resources/library --no-vignettes --timings genomeIntervals_1.46.0.tar.gz
###
##############################################################################
##############################################################################


* using log directory ‘/Users/biocbuild/bbs-3.12-bioc/meat/genomeIntervals.Rcheck’
* using R version 4.0.5 (2021-03-31)
* using platform: x86_64-apple-darwin17.0 (64-bit)
* using session charset: UTF-8
* using option ‘--no-vignettes’
* checking for file ‘genomeIntervals/DESCRIPTION’ ... OK
* checking extension type ... Package
* this is package ‘genomeIntervals’ version ‘1.46.0’
* package encoding: UTF-8
* checking package namespace information ... OK
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking if there is a namespace ... OK
* checking for hidden files and directories ... OK
* checking for portable file names ... OK
* checking for sufficient/correct file permissions ... OK
* checking whether package ‘genomeIntervals’ can be installed ... OK
* checking installed package size ... OK
* checking package directory ... OK
* checking ‘build’ directory ... OK
* checking DESCRIPTION meta-information ... OK
* checking top-level files ... OK
* checking for left-over files ... OK
* checking index information ... OK
* checking package subdirectories ... OK
* checking R files for non-ASCII characters ... OK
* checking R files for syntax errors ... OK
* checking whether the package can be loaded ... OK
* checking whether the package can be loaded with stated dependencies ... OK
* checking whether the package can be unloaded cleanly ... OK
* checking whether the namespace can be loaded with stated dependencies ... OK
* checking whether the namespace can be unloaded cleanly ... OK
* checking dependencies in R code ... OK
* checking S3 generic/method consistency ... OK
* checking replacement functions ... OK
* checking foreign function calls ... OK
* checking R code for possible problems ... OK
* checking Rd files ... OK
* checking Rd metadata ... OK
* checking Rd cross-references ... OK
* checking for missing documentation entries ... OK
* checking for code/documentation mismatches ... OK
* checking Rd \usage sections ... OK
* checking Rd contents ... OK
* checking for unstated dependencies in examples ... OK
* checking contents of ‘data’ directory ... OK
* checking data for non-ASCII characters ... OK
* checking data for ASCII and uncompressed saves ... OK
* checking sizes of PDF files under ‘inst/doc’ ... OK
* checking files in ‘vignettes’ ... OK
* checking examples ... OK
* checking for unstated dependencies in ‘tests’ ... OK
* checking tests ...
  Running ‘benchmarking-tests.R’
  Comparing ‘benchmarking-tests.Rout’ to ‘benchmarking-tests.Rout.save’ ...37c37
<     tapply, union, unique, unsplit, which.max, which.min
---
>     tapply, union, unique, unsplit, which, which.max, which.min
  Running ‘consistency-tests.R’
  Comparing ‘consistency-tests.Rout’ to ‘consistency-tests.Rout.save’ ...34c34
<     tapply, union, unique, unsplit, which.max, which.min
---
>     tapply, union, unique, unsplit, which, which.max, which.min
  Running ‘fullShow.R’
 OK
* checking for unstated dependencies in vignettes ... OK
* checking package vignettes in ‘inst/doc’ ... OK
* checking running R code from vignettes ... SKIPPED
* checking re-building of vignette outputs ... SKIPPED
* checking PDF version of manual ... OK
* DONE

Status: OK


Installation output

genomeIntervals.Rcheck/00install.out

##############################################################################
##############################################################################
###
### Running command:
###
###   /Library/Frameworks/R.framework/Versions/Current/Resources/bin/R CMD INSTALL genomeIntervals
###
##############################################################################
##############################################################################


* installing to library ‘/Library/Frameworks/R.framework/Versions/4.0/Resources/library’
* installing *source* package ‘genomeIntervals’ ...
** using staged installation
** R
** data
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (genomeIntervals)

Tests output

genomeIntervals.Rcheck/tests/benchmarking-tests.Rout


R version 4.0.5 (2021-03-31) -- "Shake and Throw"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> # benchmarking tests
> # 
> # on modifications, regenerate .Rout.save with:
> # R --vanilla <./benchmarking-tests.R >& ./benchmarking-tests.Rout.save
> # and use svn' diff to check for differences
> #
> # Author: julien.gagneur
> ###############################################################################
> 
> library(genomeIntervals)
Loading required package: intervals
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:intervals':

    type, type<-

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, append,
    as.data.frame, basename, cbind, colnames, dirname, do.call,
    duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
    lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,
    pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table,
    tapply, union, unique, unsplit, which.max, which.min

> source("fullShow.R")
> options(warn = -1)
> 
> #---------------
> # make data
> #---------------
> # toy examples
> data("gen_ints")
> 
> # non-stranded versions
> i0 = as(i, "Genome_intervals")
> j0 = as(j, "Genome_intervals")
> k0 = as(k, "Genome_intervals")
> 
> # empty intervals
> e = k[1:3,]
> e[,2] = e[,1]
> closed(e) = FALSE
> 
> #---------------
> # checks
> #---------------
> # distance to nearest
> cat("distance_to_nearest\n")
distance_to_nearest
> print( distance_to_nearest(i,j) )		# x
[1]  0  2  3  0  0  0 NA
> print( distance_to_nearest(j,i) )		# x
[1]  0  2 NA  0  0
> print( distance_to_nearest(i,k) )		# x
[1] 0.0 1.5 2.5 0.5 0.0 0.0  NA
> print( distance_to_nearest(i,e) )		# x
[1] NA NA NA NA NA NA NA
> print( distance_to_nearest(e,i) )		# x
[1] NA NA NA
> 
> print( distance_to_nearest(i0,j0) )		# x
[1]  0  0  1  0  0  0 NA
> print( distance_to_nearest(j0,i0) )		# x
[1] 0 2 0 0 0
> cat("\n")

> 
> # interval overlap
> cat("interval_overlap\n")
interval_overlap
> print( interval_overlap(i,k) )			# x
[[1]]
[1] 1

[[2]]
integer(0)

[[3]]
integer(0)

[[4]]
integer(0)

[[5]]
[1] 5

[[6]]
[1] 4

[[7]]
integer(0)

> print( interval_overlap(i,e) )			# x
[[1]]
integer(0)

[[2]]
integer(0)

[[3]]
integer(0)

[[4]]
integer(0)

[[5]]
integer(0)

[[6]]
integer(0)

[[7]]
integer(0)

> print( interval_overlap(i0,j0) )		# x
[[1]]
[1] 1

[[2]]
[1] 3

[[3]]
integer(0)

[[4]]
[1] 5

[[5]]
[1] 5

[[6]]
[1] 4 5

[[7]]
integer(0)

> cat("\n")

> 
> 
> # set operations
> cat("interval_union\n")
interval_union
> fullShow( close_intervals( interval_union(i) ) )		# x
Object of class Genome_intervals_stranded
4 base intervals and 0 inter-base intervals(*):
chr01 + [1, 4] 
chr02 + [4, 12] 
chr03 + [2, 5] 
chr02 - [5, 11] 
annotation:
  seq_name inter_base strand
1    chr01      FALSE      +
2    chr02      FALSE      +
3    chr03      FALSE      +
4    chr02      FALSE      -
> fullShow( close_intervals( interval_union(i,k) ) )		# x
Object of class Genome_intervals_stranded
6 base intervals and 2 inter-base intervals(*):
chr01 + [1, 4] 
chr01 + [6, 10] 
chr01 + [1, 1] *
chr02 + [4, 15] 
chr03 + [2, 5] 
chr01 - [4, 5] 
chr02 - [5, 11] 
chr02 - [8, 8] *
annotation:
  seq_name inter_base strand
1    chr01      FALSE      +
2    chr01      FALSE      +
3    chr01       TRUE      +
4    chr02      FALSE      +
5    chr03      FALSE      +
6    chr01      FALSE      -
7    chr02      FALSE      -
8    chr02       TRUE      -
> fullShow( close_intervals( interval_union(i0,k0) ) )	# x
Object of class Genome_intervals
3 base intervals and 2 inter-base intervals(*):
chr01 [1, 10] 
chr01 [1, 1] *
chr02 [4, 15] 
chr02 [8, 8] *
chr03 [2, 5] 
annotation:
  inter_base seq_name
1      FALSE    chr01
2       TRUE    chr01
3      FALSE    chr02
4       TRUE    chr02
5      FALSE    chr03
> fullShow( close_intervals( interval_union(e) ) )		# x
Object of class Genome_intervals_stranded
0 base intervals and 0 inter-base intervals(*):

annotation:
[1] seq_name   inter_base strand    
<0 rows> (or 0-length row.names)
> cat("\n")

> 
> cat("interval_intersection\n")
interval_intersection
> fullShow( close_intervals( interval_intersection(i,j) ) ) # x
Object of class Genome_intervals_stranded
3 base intervals and 0 inter-base intervals(*):
chr01 + [1, 1] 
chr02 - [8, 8] 
chr02 + [12, 12] 
annotation:
  inter_base seq_name strand
1      FALSE    chr01      +
2      FALSE    chr02      -
3      FALSE    chr02      +
> fullShow( close_intervals( interval_intersection(i,k) ) ) # x
Object of class Genome_intervals_stranded
1 base interval and 0 inter-base intervals(*):
chr02 + [12, 12] 
annotation:
  inter_base seq_name strand
1      FALSE    chr02      +
> fullShow( close_intervals( interval_intersection(i,e) ) ) # x
Object of class Genome_intervals_stranded
0 base intervals and 0 inter-base intervals(*):

annotation:
[1] inter_base seq_name   strand    
<0 rows> (or 0-length row.names)
> cat("\n")

> 
> cat("interval_complement\n")
interval_complement
> fullShow( close_intervals( interval_complement(j) ) )	# x
Object of class Genome_intervals_stranded
9 base intervals and 0 inter-base intervals(*):
chr01 + [-Inf, 0] 
chr01 + [2, 5] 
chr01 + [11, Inf] 
chr02 + [-Inf, 11] 
chr02 + [16, Inf] 
chr01 - [-Inf, 3] 
chr01 - [6, Inf] 
chr02 - [-Inf, 7] 
chr02 - [9, Inf] 
annotation:
  seq_name inter_base strand
1    chr01      FALSE      +
2    chr01      FALSE      +
3    chr01      FALSE      +
4    chr02      FALSE      +
5    chr02      FALSE      +
6    chr01      FALSE      -
7    chr01      FALSE      -
8    chr02      FALSE      -
9    chr02      FALSE      -
> fullShow( close_intervals( interval_complement(j0) ) )	# x
Object of class Genome_intervals
6 base intervals and 0 inter-base intervals(*):
chr01 [-Inf, 0] 
chr01 [2, 3] 
chr01 [11, Inf] 
chr02 [-Inf, 7] 
chr02 [9, 11] 
chr02 [16, Inf] 
annotation:
  inter_base seq_name
1      FALSE    chr01
2      FALSE    chr01
3      FALSE    chr01
4      FALSE    chr02
5      FALSE    chr02
6      FALSE    chr02
> fullShow( close_intervals( interval_complement(k) ) ) # x
Object of class Genome_intervals_stranded
7 base intervals and 6 inter-base intervals(*):
chr01 + [-Inf, 5] 
chr01 + [11, Inf] 
chr01 + [-Inf, 0] *
chr01 + [2, Inf] *
chr02 + [-Inf, 11] 
chr02 + [16, Inf] 
chr02 + [-Inf, Inf] *
chr01 - [-Inf, 3] 
chr01 - [6, Inf] 
chr01 - [-Inf, Inf] *
chr02 - [-Inf, Inf] 
chr02 - [-Inf, 7] *
chr02 - [9, Inf] *
annotation:
   seq_name inter_base strand
1     chr01      FALSE      +
2     chr01      FALSE      +
3     chr01       TRUE      +
4     chr01       TRUE      +
5     chr02      FALSE      +
6     chr02      FALSE      +
7     chr02       TRUE      +
8     chr01      FALSE      -
9     chr01      FALSE      -
10    chr01       TRUE      -
11    chr02      FALSE      -
12    chr02       TRUE      -
13    chr02       TRUE      -
> fullShow( close_intervals( interval_complement(e) ) ) # x
Object of class Genome_intervals_stranded
4 base intervals and 2 inter-base intervals(*):
chr01 + [-Inf, Inf] 
chr01 + [-Inf, Inf] *
chr02 + [-Inf, Inf] 
chr02 + [-Inf, Inf] *
chr01 - [-Inf, Inf] 
chr02 - [-Inf, Inf] 
annotation:
  seq_name inter_base strand
1    chr01      FALSE      +
2    chr01       TRUE      +
3    chr02      FALSE      +
4    chr02       TRUE      +
5    chr01      FALSE      -
6    chr02      FALSE      -
> cat("\n")

> 
> 
> proc.time()
   user  system elapsed 
  6.030   0.294   6.312 

genomeIntervals.Rcheck/tests/benchmarking-tests.Rout.save


R version 4.0.0 (2020-04-24) -- "Arbor Day"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> # benchmarking tests
> # 
> # on modifications, regenerate .Rout.save with:
> # R --vanilla <./benchmarking-tests.R >& ./benchmarking-tests.Rout.save
> # and use svn' diff to check for differences
> #
> # Author: julien.gagneur
> ###############################################################################
> 
> library(genomeIntervals)
Loading required package: intervals
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:intervals':

    type, type<-

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, append,
    as.data.frame, basename, cbind, colnames, dirname, do.call,
    duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
    lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,
    pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table,
    tapply, union, unique, unsplit, which, which.max, which.min

> source("fullShow.R")
> options(warn = -1)
> 
> #---------------
> # make data
> #---------------
> # toy examples
> data("gen_ints")
> 
> # non-stranded versions
> i0 = as(i, "Genome_intervals")
> j0 = as(j, "Genome_intervals")
> k0 = as(k, "Genome_intervals")
> 
> # empty intervals
> e = k[1:3,]
> e[,2] = e[,1]
> closed(e) = FALSE
> 
> #---------------
> # checks
> #---------------
> # distance to nearest
> cat("distance_to_nearest\n")
distance_to_nearest
> print( distance_to_nearest(i,j) )		# x
[1]  0  2  3  0  0  0 NA
> print( distance_to_nearest(j,i) )		# x
[1]  0  2 NA  0  0
> print( distance_to_nearest(i,k) )		# x
[1] 0.0 1.5 2.5 0.5 0.0 0.0  NA
> print( distance_to_nearest(i,e) )		# x
[1] NA NA NA NA NA NA NA
> print( distance_to_nearest(e,i) )		# x
[1] NA NA NA
> 
> print( distance_to_nearest(i0,j0) )		# x
[1]  0  0  1  0  0  0 NA
> print( distance_to_nearest(j0,i0) )		# x
[1] 0 2 0 0 0
> cat("\n")

> 
> # interval overlap
> cat("interval_overlap\n")
interval_overlap
> print( interval_overlap(i,k) )			# x
[[1]]
[1] 1

[[2]]
integer(0)

[[3]]
integer(0)

[[4]]
integer(0)

[[5]]
[1] 5

[[6]]
[1] 4

[[7]]
integer(0)

> print( interval_overlap(i,e) )			# x
[[1]]
integer(0)

[[2]]
integer(0)

[[3]]
integer(0)

[[4]]
integer(0)

[[5]]
integer(0)

[[6]]
integer(0)

[[7]]
integer(0)

> print( interval_overlap(i0,j0) )		# x
[[1]]
[1] 1

[[2]]
[1] 3

[[3]]
integer(0)

[[4]]
[1] 5

[[5]]
[1] 5

[[6]]
[1] 4 5

[[7]]
integer(0)

> cat("\n")

> 
> 
> # set operations
> cat("interval_union\n")
interval_union
> fullShow( close_intervals( interval_union(i) ) )		# x
Object of class Genome_intervals_stranded
4 base intervals and 0 inter-base intervals(*):
chr01 + [1, 4] 
chr02 + [4, 12] 
chr03 + [2, 5] 
chr02 - [5, 11] 
annotation:
  seq_name inter_base strand
1    chr01      FALSE      +
2    chr02      FALSE      +
3    chr03      FALSE      +
4    chr02      FALSE      -
> fullShow( close_intervals( interval_union(i,k) ) )		# x
Object of class Genome_intervals_stranded
6 base intervals and 2 inter-base intervals(*):
chr01 + [1, 4] 
chr01 + [6, 10] 
chr01 + [1, 1] *
chr02 + [4, 15] 
chr03 + [2, 5] 
chr01 - [4, 5] 
chr02 - [5, 11] 
chr02 - [8, 8] *
annotation:
  seq_name inter_base strand
1    chr01      FALSE      +
2    chr01      FALSE      +
3    chr01       TRUE      +
4    chr02      FALSE      +
5    chr03      FALSE      +
6    chr01      FALSE      -
7    chr02      FALSE      -
8    chr02       TRUE      -
> fullShow( close_intervals( interval_union(i0,k0) ) )	# x
Object of class Genome_intervals
3 base intervals and 2 inter-base intervals(*):
chr01 [1, 10] 
chr01 [1, 1] *
chr02 [4, 15] 
chr02 [8, 8] *
chr03 [2, 5] 
annotation:
  inter_base seq_name
1      FALSE    chr01
2       TRUE    chr01
3      FALSE    chr02
4       TRUE    chr02
5      FALSE    chr03
> fullShow( close_intervals( interval_union(e) ) )		# x
Object of class Genome_intervals_stranded
0 base intervals and 0 inter-base intervals(*):

annotation:
[1] seq_name   inter_base strand    
<0 rows> (or 0-length row.names)
> cat("\n")

> 
> cat("interval_intersection\n")
interval_intersection
> fullShow( close_intervals( interval_intersection(i,j) ) ) # x
Object of class Genome_intervals_stranded
3 base intervals and 0 inter-base intervals(*):
chr01 + [1, 1] 
chr02 - [8, 8] 
chr02 + [12, 12] 
annotation:
  inter_base seq_name strand
1      FALSE    chr01      +
2      FALSE    chr02      -
3      FALSE    chr02      +
> fullShow( close_intervals( interval_intersection(i,k) ) ) # x
Object of class Genome_intervals_stranded
1 base interval and 0 inter-base intervals(*):
chr02 + [12, 12] 
annotation:
  inter_base seq_name strand
1      FALSE    chr02      +
> fullShow( close_intervals( interval_intersection(i,e) ) ) # x
Object of class Genome_intervals_stranded
0 base intervals and 0 inter-base intervals(*):

annotation:
[1] inter_base seq_name   strand    
<0 rows> (or 0-length row.names)
> cat("\n")

> 
> cat("interval_complement\n")
interval_complement
> fullShow( close_intervals( interval_complement(j) ) )	# x
Object of class Genome_intervals_stranded
9 base intervals and 0 inter-base intervals(*):
chr01 + [-Inf, 0] 
chr01 + [2, 5] 
chr01 + [11, Inf] 
chr02 + [-Inf, 11] 
chr02 + [16, Inf] 
chr01 - [-Inf, 3] 
chr01 - [6, Inf] 
chr02 - [-Inf, 7] 
chr02 - [9, Inf] 
annotation:
  seq_name inter_base strand
1    chr01      FALSE      +
2    chr01      FALSE      +
3    chr01      FALSE      +
4    chr02      FALSE      +
5    chr02      FALSE      +
6    chr01      FALSE      -
7    chr01      FALSE      -
8    chr02      FALSE      -
9    chr02      FALSE      -
> fullShow( close_intervals( interval_complement(j0) ) )	# x
Object of class Genome_intervals
6 base intervals and 0 inter-base intervals(*):
chr01 [-Inf, 0] 
chr01 [2, 3] 
chr01 [11, Inf] 
chr02 [-Inf, 7] 
chr02 [9, 11] 
chr02 [16, Inf] 
annotation:
  inter_base seq_name
1      FALSE    chr01
2      FALSE    chr01
3      FALSE    chr01
4      FALSE    chr02
5      FALSE    chr02
6      FALSE    chr02
> fullShow( close_intervals( interval_complement(k) ) ) # x
Object of class Genome_intervals_stranded
7 base intervals and 6 inter-base intervals(*):
chr01 + [-Inf, 5] 
chr01 + [11, Inf] 
chr01 + [-Inf, 0] *
chr01 + [2, Inf] *
chr02 + [-Inf, 11] 
chr02 + [16, Inf] 
chr02 + [-Inf, Inf] *
chr01 - [-Inf, 3] 
chr01 - [6, Inf] 
chr01 - [-Inf, Inf] *
chr02 - [-Inf, Inf] 
chr02 - [-Inf, 7] *
chr02 - [9, Inf] *
annotation:
   seq_name inter_base strand
1     chr01      FALSE      +
2     chr01      FALSE      +
3     chr01       TRUE      +
4     chr01       TRUE      +
5     chr02      FALSE      +
6     chr02      FALSE      +
7     chr02       TRUE      +
8     chr01      FALSE      -
9     chr01      FALSE      -
10    chr01       TRUE      -
11    chr02      FALSE      -
12    chr02       TRUE      -
13    chr02       TRUE      -
> fullShow( close_intervals( interval_complement(e) ) ) # x
Object of class Genome_intervals_stranded
4 base intervals and 2 inter-base intervals(*):
chr01 + [-Inf, Inf] 
chr01 + [-Inf, Inf] *
chr02 + [-Inf, Inf] 
chr02 + [-Inf, Inf] *
chr01 - [-Inf, Inf] 
chr02 - [-Inf, Inf] 
annotation:
  seq_name inter_base strand
1    chr01      FALSE      +
2    chr01       TRUE      +
3    chr02      FALSE      +
4    chr02       TRUE      +
5    chr01      FALSE      -
6    chr02      FALSE      -
> cat("\n")

> 
> 
> proc.time()
   user  system elapsed 
  3.697   0.178   3.876 

genomeIntervals.Rcheck/tests/consistency-tests.Rout


R version 4.0.5 (2021-03-31) -- "Shake and Throw"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> # consistency test
> #
> # Author: julien.gagneur
> ###############################################################################
> 
> 
> library( genomeIntervals )
Loading required package: intervals
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:intervals':

    type, type<-

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, append,
    as.data.frame, basename, cbind, colnames, dirname, do.call,
    duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
    lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,
    pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table,
    tapply, union, unique, unsplit, which.max, which.min

> 
> options(warn = -1)
> 
> #---------
> # settings
> #---------
> # size of random objects
> n = 1e+3
> # chrom length
> l = 1e+3
> # nb of chroms
> k = 3
> 
> #---------
> # data generation
> #---------
> 
> randGenint = function(n,l,k){
+     m = matrix( sample(l, 2*n, replace=TRUE), nc = 2 )
+     m = cbind( apply( m, 1, min), apply( m, 1, max ) )
+ 
+     cl = matrix( sample( c(FALSE,TRUE), 2*n, replace =TRUE), nc=2 )
+     new(
+         "Genome_intervals_stranded",
+         m,
+         closed = cl,
+         annotation = data.frame(
+                 seq_name = factor(paste("chr", sample(k, n, replace=TRUE) )),
+                 inter_base = sample( c(FALSE,TRUE), n, replace =TRUE),
+                 strand = factor(sample(c("-", "+"), n, replace =TRUE))
+         )
+     )
+ }
> 
> i = randGenint(n,l,k)
> j = randGenint(n,l,k)
> i0 = as(i, "Genome_intervals")
> j0 = as(j, "Genome_intervals")
> 
> #---------
> # checks
> #---------
> 
> # distances from i to j
> dn = distance_to_nearest(i,j)
> 
> # distance is NA or >=0
> if( any( !is.na(dn) & dn < 0) ) stop("negative distance.")
> 
> # distance == 0 if and only if the interval overlaps another one:
> io = interval_overlap(i,j)
> if( any( ( sapply(io, length) >0 )  != (!is.na(dn) & dn ==0) ) )
+     stop("The property 'distance == 0 if and only if the interval overlaps another one' is not followed for at least one instance.")
> 
> # same test for not stranded objects
> dn0 = distance_to_nearest(i0,j0)
> if( any( !is.na(dn0) & dn0 < 0) ) stop("negative distance.")
> 
> io = interval_overlap(i0,j0)
> if( any( ( sapply(io, length) >0 )  != (!is.na(dn0) & dn0 ==0) ) )
+     stop("The property 'distance == 0 if and only if the interval overlaps another one' is not followed for at least one instance.")
> 
> # unstranded distance <= stranded distance
> delta = dn - dn0
> if( any(!is.na(delta)  & delta < 0) ) stop("some unstranded distance larger than a stranded one.")
> 
> # intersection with complement is empty
> stopifnot( nrow( interval_intersection(i, interval_complement(i) ) ) == 0 )
> 
> # distance of union with complement is 1
> # test must be done for not inter-base (or inter-base) independently
> a = interval_union(i[!inter_base(i),] )
> b = interval_complement(i[!inter_base(i),])
> 
> if(!(all.equal( distance_to_nearest( a, b ), rep(1, nrow(a) )  ) ) )
+     stop("distance of union with complement is not 1.")
> 
> # width is reported consistently
> # they should all be 4 in length (we alternate the open/closed state of the intervals
> # pairwise)
> gi <- GenomeIntervals(start=c(6,6,5,5),
+                       end=c(10,9,10,9),
+                       chromosome=rep("chr1",4),
+                       leftOpen = c(FALSE,FALSE,TRUE,TRUE),
+                       rightOpen=c(TRUE,FALSE,TRUE,FALSE))
> 
> stopifnot(all(width(gi)==4))
> 
> proc.time()
   user  system elapsed 
  6.600   0.317   6.906 

genomeIntervals.Rcheck/tests/consistency-tests.Rout.save


R version 4.0.0 (2020-04-24) -- "Arbor Day"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> # consistency test
> #
> # Author: julien.gagneur
> ###############################################################################
> 
> 
> library( genomeIntervals )
Loading required package: intervals
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:intervals':

    type, type<-

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, append,
    as.data.frame, basename, cbind, colnames, dirname, do.call,
    duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
    lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,
    pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table,
    tapply, union, unique, unsplit, which, which.max, which.min

> 
> options(warn = -1)
> 
> #---------
> # settings
> #---------
> # size of random objects
> n = 1e+3
> # chrom length
> l = 1e+3
> # nb of chroms
> k = 3
> 
> #---------
> # data generation
> #---------
> 
> randGenint = function(n,l,k){
+     m = matrix( sample(l, 2*n, replace=TRUE), nc = 2 )
+     m = cbind( apply( m, 1, min), apply( m, 1, max ) )
+ 
+     cl = matrix( sample( c(FALSE,TRUE), 2*n, replace =TRUE), nc=2 )
+     new(
+         "Genome_intervals_stranded",
+         m,
+         closed = cl,
+         annotation = data.frame(
+                 seq_name = factor(paste("chr", sample(k, n, replace=TRUE) )),
+                 inter_base = sample( c(FALSE,TRUE), n, replace =TRUE),
+                 strand = factor(sample(c("-", "+"), n, replace =TRUE))
+         )
+     )
+ }
> 
> i = randGenint(n,l,k)
> j = randGenint(n,l,k)
> i0 = as(i, "Genome_intervals")
> j0 = as(j, "Genome_intervals")
> 
> #---------
> # checks
> #---------
> 
> # distances from i to j
> dn = distance_to_nearest(i,j)
> 
> # distance is NA or >=0
> if( any( !is.na(dn) & dn < 0) ) stop("negative distance.")
> 
> # distance == 0 if and only if the interval overlaps another one:
> io = interval_overlap(i,j)
> if( any( ( sapply(io, length) >0 )  != (!is.na(dn) & dn ==0) ) )
+     stop("The property 'distance == 0 if and only if the interval overlaps another one' is not followed for at least one instance.")
> 
> # same test for not stranded objects
> dn0 = distance_to_nearest(i0,j0)
> if( any( !is.na(dn0) & dn0 < 0) ) stop("negative distance.")
> 
> io = interval_overlap(i0,j0)
> if( any( ( sapply(io, length) >0 )  != (!is.na(dn0) & dn0 ==0) ) )
+     stop("The property 'distance == 0 if and only if the interval overlaps another one' is not followed for at least one instance.")
> 
> # unstranded distance <= stranded distance
> delta = dn - dn0
> if( any(!is.na(delta)  & delta < 0) ) stop("some unstranded distance larger than a stranded one.")
> 
> # intersection with complement is empty
> stopifnot( nrow( interval_intersection(i, interval_complement(i) ) ) == 0 )
> 
> # distance of union with complement is 1
> # test must be done for not inter-base (or inter-base) independently
> a = interval_union(i[!inter_base(i),] )
> b = interval_complement(i[!inter_base(i),])
> 
> if(!(all.equal( distance_to_nearest( a, b ), rep(1, nrow(a) )  ) ) )
+     stop("distance of union with complement is not 1.")
> 
> # width is reported consistently
> # they should all be 4 in length (we alternate the open/closed state of the intervals
> # pairwise)
> gi <- GenomeIntervals(start=c(6,6,5,5),
+                       end=c(10,9,10,9),
+                       chromosome=rep("chr1",4),
+                       leftOpen = c(FALSE,FALSE,TRUE,TRUE),
+                       rightOpen=c(TRUE,FALSE,TRUE,FALSE))
> 
> stopifnot(all(width(gi)==4))
> 
> proc.time()
   user  system elapsed 
  3.868   0.188   4.048 

genomeIntervals.Rcheck/tests/fullShow.Rout


R version 4.0.5 (2021-03-31) -- "Shake and Throw"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> # the fullShow methods is a show method for Genome_intervals objects.
> # It is called by test scripts so that the full output of the tests can be checked.  
> # 
> # Author: gagneur
> ###############################################################################
> 
> fullShow <- function(object ) {
+ 	cat(
+ 			"Object of class ",
+ 			class( object ),
+ 			"\n",
+ 			sum( !inter_base(object) ),
+ 			" base interval",
+ 			ifelse( sum( !inter_base(object) ) == 1, "", "s" ),
+ 			" and ",
+ 			sum( inter_base(object) ),
+ 			" inter-base interval",
+ 			ifelse( sum( inter_base(object) ) == 1, "", "s" ),
+ 			"(*)",
+ 			":\n",
+ 			sep = ""
+ 	)
+ 	ints <- as( object, "character")
+ 	if ( !is.null( rownames( object ) ) ) {
+ 		fmt <- sprintf( "%%%is", max( nchar( rownames( object ) ) ) )
+ 		ints <- paste( sprintf( fmt, rownames( object ) ), ints )
+ 	}
+ 	cat( ints, sep = "\n" )
+ 	cat( "annotation:\n")
+ 	show( annotation(object) )
+ }
> 
> 
> 
> 
> proc.time()
   user  system elapsed 
  0.277   0.064   0.319 

Example timings

genomeIntervals.Rcheck/genomeIntervals-Ex.timings

nameusersystemelapsed
GenomeIntervals-constructor0.0990.0120.110
Genome_intervals-class0.0560.0070.063
Genome_intervals-coercion-methods0.0000.0000.001
Genome_intervals-ordering0.0770.0100.087
Genome_intervals_stranded-class0.0760.0100.087
c.Genome_intervals0.0980.0110.110
core_annotated0.0570.0030.060
distance_to_nearest-methods0.2820.0050.286
genomeIntervals-readGff31.2740.3521.627
getGffAttribute0.0590.0010.061
interval_overlap-methods0.1230.0030.126
interval_set_operations-methods0.7120.0080.722
parseGffAttributes0.0570.0010.058