| Back to Multiple platform build/check report for BioC 3.14 | 
 | 
This page was generated on 2022-04-13 12:08:04 -0400 (Wed, 13 Apr 2022).
| Hostname | OS | Arch (*) | R version | Installed pkgs | 
|---|---|---|---|---|
| nebbiolo2 | Linux (Ubuntu 20.04.4 LTS) | x86_64 | 4.1.3 (2022-03-10) -- "One Push-Up" | 4324 | 
| tokay2 | Windows Server 2012 R2 Standard | x64 | 4.1.3 (2022-03-10) -- "One Push-Up" | 4077 | 
| machv2 | macOS 10.14.6 Mojave | x86_64 | 4.1.3 (2022-03-10) -- "One Push-Up" | 4137 | 
| Click on any hostname to see more info about the system (e.g. compilers) (*) as reported by 'uname -p', except on Windows and Mac OS X | ||||
| To the developers/maintainers of the genomeIntervals package: - Please allow up to 24 hours (and sometimes 48 hours) for your latest push to git@git.bioconductor.org:packages/genomeIntervals.git to reflect on this report. See How and When does the builder pull? When will my changes propagate? for more information. - Make sure to use the following settings in order to reproduce any error or warning you see on this page. | 
| Package 746/2083 | Hostname | OS / Arch | INSTALL | BUILD | CHECK | BUILD BIN | ||||||||
| genomeIntervals 1.50.0  (landing page) Julien Gagneur 
 | nebbiolo2 | Linux (Ubuntu 20.04.4 LTS) / x86_64 | OK | OK | OK |  | ||||||||
| tokay2 | Windows Server 2012 R2 Standard / x64 | OK | OK | OK | OK |  | ||||||||
| machv2 | macOS 10.14.6 Mojave / x86_64 | OK | OK | OK | OK |  | ||||||||
| Package: genomeIntervals | 
| Version: 1.50.0 | 
| Command: /Library/Frameworks/R.framework/Resources/bin/R CMD check --install=check:genomeIntervals.install-out.txt --library=/Library/Frameworks/R.framework/Resources/library --no-vignettes --timings genomeIntervals_1.50.0.tar.gz | 
| StartedAt: 2022-04-12 13:38:19 -0400 (Tue, 12 Apr 2022) | 
| EndedAt: 2022-04-12 13:40:47 -0400 (Tue, 12 Apr 2022) | 
| EllapsedTime: 147.9 seconds | 
| RetCode: 0 | 
| Status: OK | 
| CheckDir: genomeIntervals.Rcheck | 
| Warnings: 0 | 
############################################################################## ############################################################################## ### ### Running command: ### ### /Library/Frameworks/R.framework/Resources/bin/R CMD check --install=check:genomeIntervals.install-out.txt --library=/Library/Frameworks/R.framework/Resources/library --no-vignettes --timings genomeIntervals_1.50.0.tar.gz ### ############################################################################## ############################################################################## * using log directory ‘/Users/biocbuild/bbs-3.14-bioc/meat/genomeIntervals.Rcheck’ * using R version 4.1.3 (2022-03-10) * 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.50.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’ ...15a16,21 > The following objects are masked from 'package:parallel': > > clusterApply, clusterApplyLB, clusterCall, clusterEvalQ, > clusterExport, clusterMap, parApply, parCapply, parLapply, > parLapplyLB, parRapply, parSapply, parSapplyLB > 31c37 < 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’ ...12a13,18 > The following objects are masked from 'package:parallel': > > clusterApply, clusterApplyLB, clusterCall, clusterEvalQ, > clusterExport, clusterMap, parApply, parCapply, parLapply, > parLapplyLB, parRapply, parSapply, parSapplyLB > 28c34 < 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
genomeIntervals.Rcheck/00install.out
############################################################################## ############################################################################## ### ### Running command: ### ### /Library/Frameworks/R.framework/Resources/bin/R CMD INSTALL genomeIntervals ### ############################################################################## ############################################################################## * installing to library ‘/Library/Frameworks/R.framework/Versions/4.1/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)
genomeIntervals.Rcheck/tests/benchmarking-tests.Rout
R version 4.1.3 (2022-03-10) -- "One Push-Up"
Copyright (C) 2022 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
Attaching package: 'BiocGenerics'
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 
  7.895   0.363   8.238 
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.1.3 (2022-03-10) -- "One Push-Up"
Copyright (C) 2022 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
Attaching package: 'BiocGenerics'
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 
  7.758   0.369   8.107 
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.1.3 (2022-03-10) -- "One Push-Up"
Copyright (C) 2022 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.292   0.071   0.339 
genomeIntervals.Rcheck/genomeIntervals-Ex.timings
| name | user | system | elapsed | |
| GenomeIntervals-constructor | 0.104 | 0.011 | 0.116 | |
| Genome_intervals-class | 0.048 | 0.007 | 0.055 | |
| Genome_intervals-coercion-methods | 0.000 | 0.000 | 0.001 | |
| Genome_intervals-ordering | 0.095 | 0.010 | 0.104 | |
| Genome_intervals_stranded-class | 0.094 | 0.011 | 0.105 | |
| c.Genome_intervals | 0.086 | 0.012 | 0.099 | |
| core_annotated | 0.075 | 0.009 | 0.083 | |
| distance_to_nearest-methods | 0.355 | 0.003 | 0.360 | |
| genomeIntervals-readGff3 | 1.892 | 0.532 | 2.430 | |
| getGffAttribute | 0.083 | 0.002 | 0.085 | |
| interval_overlap-methods | 0.153 | 0.004 | 0.158 | |
| interval_set_operations-methods | 0.939 | 0.008 | 0.947 | |
| parseGffAttributes | 0.054 | 0.001 | 0.056 | |