LTLA / scuttle

Clone of the Bioconductor repository for the scuttle package.
https://bioconductor.org/packages/devel/bioc/html/scuttle.html
9 stars 7 forks source link

unable to install scuttle #14

Open wonliy opened 2 years ago

wonliy commented 2 years ago

if (!requireNamespace("BiocManager", quietly = TRUE))

  • install.packages("BiocManager")

BiocManager::install("scuttle") 'getOption("repos")' replaces Bioconductor standard repositories, see '?repositories' for details

replacement repositories: CRAN: https://cran.rstudio.com/

Bioconductor version 3.14 (BiocManager 1.30.16), R 4.1.2 (2021-11-01) Installing package(s) 'scuttle' Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘scuttle’ Do you want to attempt to install these from sources? (Yes/no/cancel) yes installing the source package ‘scuttle’

trying URL 'https://bioconductor.org/packages/3.14/bioc/src/contrib/scuttle_1.4.0.tar.gz' Content type 'application/x-gzip' length 979954 bytes (956 KB)

downloaded 956 KB

The downloaded source packages are in ‘/private/var/folders/mq/j68g448j3j59cct30c1wb9hh0000gp/T/Rtmpp9wICn/downloaded_packages’ Old packages: 'Matrix' Update all/some/none? [a/s/n]:

PeteHaitch commented 2 years ago

Are you on an M1-mac? Bioconductor is not producing M1 binaries at the moment so the package probably hasn't received much (any?) testing on the M1 platform (except perhaps via running the intel version of R under Rosetta 2). Based on this report, it looks like it might require a little work to get everything working smoothly once Bioconductor has first-class support for the M1 Macs?

Wenfei-Sun commented 2 years ago

Having the same issue while installing from remote::

ld: library not found for -lquadmath collect2: error: ld returned 1 exit status make: *** [scuttle.so] Error 1 ERROR: compilation failed for package ‘scuttle’

PeteHaitch commented 2 years ago

Same question: Are you on an M1-mac? Please also post your sessionInfo() and output of BiocManager::valid()

Wenfei-Sun commented 2 years ago

Thank you Peter for your quick reply!

Yes, my system is an M1-mac, was using the arm based R yesterday.

After switching to the intel version R (via rosetta), it was installed smoothly.

hank00000 commented 1 year ago

Same question: Are you on an M1-mac? Please also post your sessionInfo() and output of BiocManager::valid()

Is this issue still ongoing? Trying to use a package that uses scuttle as a dependency and not able to make it work. M2 mac user.

ERROR: compilation failed for package ‘scuttle’

LTLA commented 1 year ago

Do you have the full installation traceback? FWIW I am on an M2 and scuttle installs fine.

hank00000 commented 1 year ago

Apologies for the extremely long traceback. I'm on R Studio 2023.09.0+463.

BiocManager::install("scuttle") 'getOption("repos")' replaces Bioconductor standard repositories, see 'help("repositories", package = "BiocManager")' for details. Replacement repositories: CRAN: https://cran.rstudio.com/ Bioconductor version 3.18 (BiocManager 1.30.22), R 4.3.1 (2023-06-16) Installing package(s) 'scuttle' Warning: downloaded length 0 != reported length 0Warning: cannot open URL 'https://bioconductor.org/packages/3.18/data/annotation/bin/macosx/big-sur-arm64/contrib/4.3/PACKAGES.rds': HTTP status was '404 Not Found'Warning: downloaded length 0 != reported length 0Warning: cannot open URL 'https://bioconductor.org/packages/3.18/data/annotation/bin/macosx/big-sur-arm64/contrib/4.3/PACKAGES.gz': HTTP status was '404 Not Found'Warning: downloaded length 0 != reported length 0Warning: cannot open URL 'https://bioconductor.org/packages/3.18/data/experiment/bin/macosx/big-sur-arm64/contrib/4.3/PACKAGES.rds': HTTP status was '404 Not Found'Warning: downloaded length 0 != reported length 0Warning: cannot open URL 'https://bioconductor.org/packages/3.18/data/experiment/bin/macosx/big-sur-arm64/contrib/4.3/PACKAGES.gz': HTTP status was '404 Not Found'Warning: downloaded length 0 != reported length 0Warning: cannot open URL 'https://bioconductor.org/packages/3.18/workflows/bin/macosx/big-sur-arm64/contrib/4.3/PACKAGES.rds': HTTP status was '404 Not Found'Warning: downloaded length 0 != reported length 0Warning: cannot open URL 'https://bioconductor.org/packages/3.18/workflows/bin/macosx/big-sur-arm64/contrib/4.3/PACKAGES.gz': HTTP status was '404 Not Found'Warning: downloaded length 0 != reported length 0Warning: cannot open URL 'https://bioconductor.org/packages/3.18/books/bin/macosx/big-sur-arm64/contrib/4.3/PACKAGES.rds': HTTP status was '404 Not Found'Warning: downloaded length 0 != reported length 0Warning: cannot open URL 'https://bioconductor.org/packages/3.18/books/bin/macosx/big-sur-arm64/contrib/4.3/PACKAGES.gz': HTTP status was '404 Not Found'Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘scuttle’ Do you want to attempt to install these from sources? (Yes/no/cancel) Yes installing the source package ‘scuttle’

trying URL 'https://bioconductor.org/packages/3.18/bioc/src/contrib/scuttle_1.11.2.tar.gz' Content type 'application/x-gzip' length 1029681 bytes (1005 KB)

downloaded 1005 KB

LTLA commented 1 year ago

The fundamental issue is that Bioc is not yet reliably building Mac Arm binaries yet. I see some binaries for release (3.17) on the landing page, but none for devel (3.18) on the corresponding page.

As a result, the user is prompted to install from source, which you can't do without the fortran build tools. This is what I did on my machine, but I don't remember the exact steps involved. I think maybe I got it from homebrew?

Anyway, the simplest solution is to just use Rosetta. Perhaps @vjcitn could comment more on Mac Arm support.

PeteHaitch commented 1 year ago

FWIW I reckon you'd have probably have installed gfortran from https://mac.r-project.org/tools/ (linked from https://cran.r-project.org/bin/macosx/tools/)

hpages commented 1 year ago

@LTLA scuttle's unit tests fail on Mac Arm hence why there's no binary for this platform.

vjcitn commented 1 year ago

Here's some of the detail on my M1:

Last 13 lines of output:
  Objects equal but not identical
  ── Failure ('test-norm.R:299:5'): logNormCounts works for SCE objects (basic) ──
  `out` not identical to `sub`.
  Objects equal but not identical
  ── Failure ('test-size-factors.R:16:5'): librarySizeFactors works as expected ──
  mean(sf) not identical to 1.
  Objects equal but not identical

  [ FAIL 4 | WARN 0 | SKIP 0 | PASS 1695 ]
  Error: Test failures

probing further...

hpages commented 1 year ago

The build report displays some details already: open https://bioconductor.org/checkResults/3.18/bioc-mac-arm64-LATEST/scuttle/kjohnson1-checksrc.html and scroll down to the "Tests output" section. This is what is displayed:

R version 4.3.1 (2023-06-16) -- "Beagle Scouts"
Copyright (C) 2023 The R Foundation for Statistical Computing
Platform: aarch64-apple-darwin20 (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.

> library(testthat)
> library(scuttle)
Loading required package: SingleCellExperiment
Loading required package: SummarizedExperiment
Loading required package: MatrixGenerics
Loading required package: matrixStats

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

Loading required package: GenomicRanges
Loading required package: stats4
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, sort, table,
    tapply, union, unique, unsplit, which.max, which.min

Loading required package: S4Vectors

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: IRanges
Loading required package: GenomeInfoDb
Loading required package: Biobase
Welcome to Bioconductor

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

Attaching package: 'Biobase'

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

    rowMedians

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

    anyMissing, rowMedians

> test_check("scuttle")
Loading required package: Matrix

Attaching package: 'Matrix'

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

    expand

Loading required package: S4Arrays
Loading required package: abind

Attaching package: 'S4Arrays'

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

    abind

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

    rowsum

Loading required package: SparseArray

Attaching package: 'DelayedArray'

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

    apply, scale, sweep

[ FAIL 4 | WARN 13 | SKIP 0 | PASS 1695 ]

══ Failed tests ════════════════════════════════════════════════════════════════
── Failure ('test-norm.R:47:5'): normalizeCounts works as expected ─────────────
`out` not identical to `sub`.
Objects equal but not identical
── Failure ('test-norm.R:248:5'): logNormCounts works for SE objects ───────────
`out` not identical to `ref`.
Objects equal but not identical
── Failure ('test-norm.R:299:5'): logNormCounts works for SCE objects (basic) ──
`out` not identical to `sub`.
Objects equal but not identical
── Failure ('test-size-factors.R:16:5'): librarySizeFactors works as expected ──
mean(sf) not identical to 1.
Objects equal but not identical

[ FAIL 4 | WARN 13 | SKIP 0 | PASS 1695 ]
Error: Test failures
Execution halted
hpages commented 1 year ago

Also FWIW the ~RELEASE_3_18~ RELEASE_3_17 branch has the same problem: https://bioconductor.org/checkResults/3.17/bioc-mac-arm64-LATEST/scuttle/kjohnson2-checksrc.html

LTLA commented 1 year ago

Thanks @hpages. I've relaxed the tests on 1.11.3. Hopefully this should allow the devel builds to pass.