Back to Mac ARM64 build report for BioC 3.20
ABCDEF[G]HIJKLMNOPQRSTUVWXYZ

This page was generated on 2024-05-13 11:32:04 -0400 (Mon, 13 May 2024).

HostnameOSArch (*)R versionInstalled pkgs
kjohnson1macOS 13.6.6 Venturaarm644.4.0 Patched (2024-04-24 r86482) -- "Puppy Cup" 4378
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

Package 820/2230HostnameOS / ArchINSTALLBUILDCHECKBUILD BIN
GeomxTools 3.9.0  (landing page)
Maddy Griswold
Snapshot Date: 2024-05-11 09:00:03 -0400 (Sat, 11 May 2024)
git_url: https://git.bioconductor.org/packages/GeomxTools
git_branch: devel
git_last_commit: 932e50a
git_last_commit_date: 2024-04-30 11:30:46 -0400 (Tue, 30 Apr 2024)
kjohnson1macOS 13.6.6 Ventura / arm64  OK    OK    ERROR    OK  

CHECK results for GeomxTools on kjohnson1


To the developers/maintainers of the GeomxTools package:
- Use the following Renviron settings to reproduce errors and warnings.
- If 'R CMD check' started to fail recently on the Linux builder(s) over a missing dependency, add the missing dependency to 'Suggests:' in your DESCRIPTION file. See Renviron.bioc for more information.

raw results


Summary

Package: GeomxTools
Version: 3.9.0
Command: /Library/Frameworks/R.framework/Resources/bin/R CMD check --install=check:GeomxTools.install-out.txt --library=/Library/Frameworks/R.framework/Resources/library --no-vignettes --timings GeomxTools_3.9.0.tar.gz
StartedAt: 2024-05-12 14:53:48 -0400 (Sun, 12 May 2024)
EndedAt: 2024-05-12 15:14:30 -0400 (Sun, 12 May 2024)
EllapsedTime: 1242.3 seconds
RetCode: 1
Status:   ERROR  
CheckDir: GeomxTools.Rcheck
Warnings: NA

Command output

##############################################################################
##############################################################################
###
### Running command:
###
###   /Library/Frameworks/R.framework/Resources/bin/R CMD check --install=check:GeomxTools.install-out.txt --library=/Library/Frameworks/R.framework/Resources/library --no-vignettes --timings GeomxTools_3.9.0.tar.gz
###
##############################################################################
##############################################################################


* using log directory ‘/Users/biocbuild/bbs-3.20-bioc-mac-arm64/meat/GeomxTools.Rcheck’
* using R version 4.4.0 Patched (2024-04-24 r86482)
* using platform: aarch64-apple-darwin20
* R was compiled by
    Apple clang version 14.0.0 (clang-1400.0.29.202)
    GNU Fortran (GCC) 12.2.0
* running under: macOS Ventura 13.6.6
* using session charset: UTF-8
* using option ‘--no-vignettes’
* checking for file ‘GeomxTools/DESCRIPTION’ ... OK
* this is package ‘GeomxTools’ version ‘3.9.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 ‘GeomxTools’ can be installed ... OK
* checking installed package size ... NOTE
  installed size is 19.3Mb
  sub-directories of 1Mb or more:
    extdata  18.4Mb
* checking package directory ... OK
* checking ‘build’ directory ... OK
* checking DESCRIPTION meta-information ... NOTE
License components which are templates and need '+ file LICENSE':
  MIT
* checking top-level files ... NOTE
File
  LICENSE
is not mentioned in the DESCRIPTION file.
* checking for left-over files ... OK
* checking index information ... OK
* checking package subdirectories ... OK
* checking code 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 ... NOTE
aggregateCounts: no visible binding for global variable ‘TargetName’
hkNorm: no visible binding for global variable ‘TargetName’
mixedModelDE: multiple local function definitions for ‘deFunc’ with
  different formal arguments
qgrubbs: no visible global function definition for ‘qtable’
readPKCFile: no visible binding for global variable ‘RTS_ID’
readPKCFile: no visible binding for global variable ‘Module’
setGrubbsFlags: no visible binding for global variable ‘TargetName’
setGrubbsFlags : <anonymous>: no visible binding for global variable
  ‘Module’
setProbeRatioFlags: no visible binding for global variable ‘TargetName’
setTargetFlags: no visible global function definition for ‘analtye’
subtractBackground : <anonymous>: no visible binding for global
  variable ‘Module’
setSignatureFuncs<-,NanoStringGeoMxSet-character: no visible global
  function definition for ‘setSigFuncs<-’
signatureScores,NanoStringGeoMxSet: no visible global function
  definition for ‘assayDataElement2’
signatureScores,NanoStringGeoMxSet: no visible global function
  definition for ‘.sigCalc’
Undefined global functions or variables:
  .sigCalc Module RTS_ID TargetName analtye assayDataElement2 qtable
  setSigFuncs<-
* 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 files in ‘vignettes’ ... OK
* checking examples ... OK
Examples with CPU (user + system) or elapsed time > 5s
                                       user system elapsed
mixedModelDE                         69.909  1.417  73.025
readNanoStringGeoMxSet               59.066  4.414  63.830
normalize-NanoStringGeoMxSet-method  55.694  1.114   0.222
writeNanoStringGeoMxSet              22.708  1.983  24.906
NanoStringGeoMxSet-class             22.607  1.776  24.563
setBioProbeQCFlags                   14.104  0.368  14.494
setQCFlags-NanoStringGeoMxSet-method 13.941  0.228  14.191
readPKCFile                          10.711  1.430  12.201
aggregateCounts                      11.355  0.178  11.600
as.SpatialExperiment                  6.896  0.256   7.195
plotConcordance                       4.735  0.370   5.127
* checking for unstated dependencies in ‘tests’ ... OK
* checking tests ...
  Running ‘testthat.R’
 ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
  ══ Failed tests ════════════════════════════════════════════════════════════════
  ── Failure ('test_GeoMxSet_probeCollapse.R:61:3'): test that collapsed probe count is equal to the geomean of probes for each target ──
  sum(matches) == nrow(aggTestData@assayData$exprs) * numDCC is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  ── Failure ('test_GeoMxSet_probeCollapse.R:100:3'): test that the geomean and geosd of negatives is correct ──
  sum(matches) == length(unique(PKC$Module)) * numDCC * 2 is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  
  [ FAIL 2 | WARN 1 | SKIP 0 | PASS 288 ]
  Error: Test failures
  Execution halted
* checking for unstated dependencies in vignettes ... OK
* checking package vignettes ... OK
* checking running R code from vignettes ... SKIPPED
* checking re-building of vignette outputs ... SKIPPED
* checking PDF version of manual ... OK
* DONE

Status: 1 ERROR, 4 NOTEs
See
  ‘/Users/biocbuild/bbs-3.20-bioc-mac-arm64/meat/GeomxTools.Rcheck/00check.log’
for details.


Installation output

GeomxTools.Rcheck/00install.out

##############################################################################
##############################################################################
###
### Running command:
###
###   /Library/Frameworks/R.framework/Resources/bin/R CMD INSTALL GeomxTools
###
##############################################################################
##############################################################################


* installing to library ‘/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library’
* installing *source* package ‘GeomxTools’ ...
** using staged installation
** R
** 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 (GeomxTools)

Tests output

GeomxTools.Rcheck/tests/testthat.Rout.fail


R version 4.4.0 Patched (2024-04-24 r86482) -- "Puppy Cup"
Copyright (C) 2024 The R Foundation for Statistical Computing
Platform: aarch64-apple-darwin20

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.

> library(testthat)
> library(GeomxTools)
Loading required package: Biobase
Loading required package: BiocGenerics

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, intersect, is.unsorted,
    lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,
    pmin.int, rank, rbind, rownames, sapply, setdiff, table, tapply,
    union, unique, unsplit, which.max, which.min

Welcome to Bioconductor

    Vignettes contain introductory material; view with
    'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.

Loading required package: NanoStringNCTools
Loading required package: S4Vectors
Loading required package: stats4

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: ggplot2
> 
> test_check("GeomxTools")

Attaching package: 'EnvStats'

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

    predict, predict.lm

Coercing raw data, it is NOT recommended to use Seurat's normalization for GeoMx data.
Loading required package: SeuratObject
Loading required package: sp

Attaching package: 'SeuratObject'

The following object is masked from 'package:S4Vectors':

    intersect

The following object is masked from 'package:BiocGenerics':

    intersect

The following object is masked from 'package:base':

    intersect

Loading required package: SingleCellExperiment
Loading required package: SummarizedExperiment
Loading required package: MatrixGenerics
Loading required package: matrixStats

Attaching package: 'matrixStats'

The following object is masked from 'package:EnvStats':

    iqr

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

    anyMissing, rowMedians


Attaching package: 'MatrixGenerics'

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

    colAlls, colAnyNAs, colAnys, colAvgsPerRowSet, colCollapse,
    colCounts, colCummaxs, colCummins, colCumprods, colCumsums,
    colDiffs, colIQRDiffs, colIQRs, colLogSumExps, colMadDiffs,
    colMads, colMaxs, colMeans2, colMedians, colMins, colOrderStats,
    colProds, colQuantiles, colRanges, colRanks, colSdDiffs, colSds,
    colSums2, colTabulates, colVarDiffs, colVars, colWeightedMads,
    colWeightedMeans, colWeightedMedians, colWeightedSds,
    colWeightedVars, rowAlls, rowAnyNAs, rowAnys, rowAvgsPerColSet,
    rowCollapse, rowCounts, rowCummaxs, rowCummins, rowCumprods,
    rowCumsums, rowDiffs, rowIQRDiffs, rowIQRs, rowLogSumExps,
    rowMadDiffs, rowMads, rowMaxs, rowMeans2, rowMedians, rowMins,
    rowOrderStats, rowProds, rowQuantiles, rowRanges, rowRanks,
    rowSdDiffs, rowSds, rowSums2, rowTabulates, rowVarDiffs, rowVars,
    rowWeightedMads, rowWeightedMeans, rowWeightedMedians,
    rowWeightedSds, rowWeightedVars

The following object is masked from 'package:Biobase':

    rowMedians

Loading required package: GenomicRanges
Loading required package: IRanges

Attaching package: 'IRanges'

The following object is masked from 'package:sp':

    %over%

Loading required package: GenomeInfoDb

Attaching package: 'SummarizedExperiment'

The following object is masked from 'package:Seurat':

    Assays

The following object is masked from 'package:SeuratObject':

    Assays


Attaching package: 'SingleCellExperiment'

The following object is masked from 'package:NanoStringNCTools':

    weights<-

Loading required package: lme4
Loading required package: Matrix

Attaching package: 'Matrix'

The following object is masked from 'package:S4Vectors':

    expand


Attaching package: 'lmerTest'

The following object is masked from 'package:lme4':

    lmer

The following object is masked from 'package:stats':

    step

boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
[ FAIL 2 | WARN 1 | SKIP 0 | PASS 288 ]

══ Failed tests ════════════════════════════════════════════════════════════════
── Failure ('test_GeoMxSet_probeCollapse.R:61:3'): test that collapsed probe count is equal to the geomean of probes for each target ──
sum(matches) == nrow(aggTestData@assayData$exprs) * numDCC is not TRUE

`actual`:   FALSE
`expected`: TRUE 
── Failure ('test_GeoMxSet_probeCollapse.R:100:3'): test that the geomean and geosd of negatives is correct ──
sum(matches) == length(unique(PKC$Module)) * numDCC * 2 is not TRUE

`actual`:   FALSE
`expected`: TRUE 

[ FAIL 2 | WARN 1 | SKIP 0 | PASS 288 ]
Error: Test failures
Execution halted

Example timings

GeomxTools.Rcheck/GeomxTools-Ex.timings

nameusersystemelapsed
NanoStringGeoMxSet-class22.607 1.77624.563
aggregateCounts11.355 0.17811.600
as.Seurat3.4790.1073.646
as.SpatialExperiment6.8960.2567.195
checkQCFlags-NanoStringGeoMxSet-method0.0840.0030.087
checkQCFlags0.1010.0030.104
computeNormalizationFactors0.0180.0010.019
countsShiftedByOne0.0810.0030.084
logtBase000
mixedModelDE69.909 1.41773.025
ngeoMean0.0000.0010.000
ngeoSD0.0000.0010.001
normalize-NanoStringGeoMxSet-method55.694 1.114 0.222
plotConcordance4.7350.3705.127
plotNormFactorConcordance2.4520.0172.482
qcProteinSignal0.2040.0160.224
qcProteinSignalNames0.0140.0020.016
readDccFile0.6610.0200.683
readNanoStringGeoMxSet59.066 4.41463.830
readPKCFile10.711 1.43012.201
setBackgroundQCFlags0.0660.0030.072
setBioProbeQCFlags14.104 0.36814.494
setGeoMxQCFlags0.0990.0030.101
setQCFlags-NanoStringGeoMxSet-method13.941 0.22814.191
setSegmentQCFlags0.1800.0050.185
setSeqQCFlags0.1310.0060.139
shiftCountsOne0.1020.0080.111
summarizeNegatives0.6460.0080.653
writeNanoStringGeoMxSet22.708 1.98324.906