Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: welch-lab
  • License: gpl-2.0
  • Language: C++
  • Default Branch: master
  • Size: 2.42 MB
Statistics
  • Stars: 7
  • Watchers: 2
  • Forks: 2
  • Open Issues: 0
  • Releases: 5
Created about 3 years ago · Last pushed 12 months ago
Metadata Files
Readme Changelog License

README.md

RcppPlanc

About

RcppPlanc is, as the name implies, an Rcpp wrapper for planc. Currently, it implements wrappers for the vanilla NMF and NNLS algorithms. It also implements integrative NMF as described in Welch, J. D. et al, 2019, online integrative NMF as described in Gao, C. et al, 2021 and unshared integrative NMF as described in Kriebel and Welch, 2022. This is, at present, the fastest NMF implementation on CRAN, assuming you set nCores on call.

Requirements

  • A complete BLAS library. (OpenBLAS works well. Mac OS on ARM64 will always use the built in vecLib framework.) (Runtime)
  • A modern R toolchain (Rtools on Windows, the system toolchain on UNIX-alikes)
  • A modern R (tested on 4.3+) (Runtime)
  • CMake >=3.21
  • HDF5 (tested against 1.12.0) (Runtime)
  • OpenMP implementation that uses v4.0 semantics (if using OpenMP). For the GNU stack, this means gcc 9.

Installation

Release (CRAN):

install.packages(RcppPlanc)

Release (Conda Forge)

conda install r-rcppplanc -c conda-forge

HEAD (R-universe, binary)

  1. Install the runtime requirements above.
  2. install.packages('RcppPlanc', repos = c('https://welch-lab.r-universe.dev', 'https://cloud.r-project.org')) #### Ubuntu 24.04 (YMMV on other linuxes)
  3. Ensure libhdf5, libhwloc, and libopenblas are installed.

install.packages("RcppPlanc", repos = c( linux = 'https://welch-lab.r-universe.dev/bin/linux/noble/4.5/', sources = 'https://welch-lab.r-universe.dev', cran = 'https://cloud.r-project.org'))

SOURCE:

  1. Install the requirements above.
  2. Ensure your libraries can be found by CMake.
  3. devtools::install_github("welch-lab/RcppPlanc")

Caveats

Non-fatal errors during the CMake run are to be expected as the compiler flags are tailored to each system. Currently, the cblas locator logic only finds headers at the root of the given include directories or in the openblas and flexiblas subdirectories. If CMake cannot find a cblas header, its directory must be specified manually in CMakeCache.txt. This software will not use OpenMP on MacOS and performance on Intel Macs will suffer accordingly. Blame Apple. ARM64 Macs more than make up for the threaded performance loss with their inbuilt matrix coprocessor. If you're on an Intel mac and feeling adventurous, you can always try following the instructions at https://mac.r-project.org/openmp/ but your mileage may vary.

Citations and Prior Works

A huge shoutout goes to Ramakrishnan Kannan for the original work on which this program is based. Relevant citations can be found in his repository at https://github.com/ramkikannan/planc/blob/master/papers.md.

When and if a citation for this package becomes available, it will be posted here.

Parts of this code source are licensed under the 3-clause BSD (c) 2016 , UT-Battelle, LLC and (c) 2017 Ramakrishnan Kannan. The compiled binary and sources not marked otherwise are licensed under the GPLv2 or later.

Licenses for the various CMake scripts (FindHWLOC, FindR, and FindRModule, and PatchFile) are included at the top of each file.

Contributing and Support

Please reach out to us at the Welch Lab using the issue tracker in this repository before contacting upstream. Much of the inherited code is heavily modified and half of the algorithms have not yet been upstreamed.

Pull requests are welcome.

Documentation

Vignettes and R documentation files are available in the standard folders.

Owner

  • Name: welch-lab
  • Login: welch-lab
  • Kind: organization

GitHub Events

Total
  • Create event: 11
  • Release event: 3
  • Issues event: 11
  • Watch event: 5
  • Delete event: 1
  • Issue comment event: 48
  • Push event: 145
  • Pull request event: 1
  • Fork event: 1
Last Year
  • Create event: 11
  • Release event: 3
  • Issues event: 11
  • Watch event: 5
  • Delete event: 1
  • Issue comment event: 48
  • Push event: 145
  • Pull request event: 1
  • Fork event: 1

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 7
  • Total pull requests: 1
  • Average time to close issues: 4 months
  • Average time to close pull requests: N/A
  • Total issue authors: 6
  • Total pull request authors: 1
  • Average comments per issue: 7.57
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 5
  • Pull requests: 1
  • Average time to close issues: 19 days
  • Average time to close pull requests: N/A
  • Issue authors: 4
  • Pull request authors: 1
  • Average comments per issue: 9.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • theAeon (2)
  • barracuda156 (2)
  • fizwit (1)
  • h4rvey-g (1)
  • Siddharth-Gaywala (1)
  • PengBo107 (1)
  • vishakagopalan (1)
  • HaixJiang (1)
  • yinshanfang (1)
  • royfrancis (1)
  • KaiWaldrant (1)
  • wenruilou (1)
  • michelem99 (1)
Pull Request Authors
  • theAeon (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 24,647 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 12
  • Total maintainers: 1
cran.r-project.org: RcppPlanc

Parallel Low-Rank Approximation with Nonnegativity Constraints

  • Versions: 12
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 24,647 Last month
Rankings
Dependent packages count: 26.9%
Dependent repos count: 33.2%
Average: 49.0%
Downloads: 87.0%
Maintainers (1)
Last synced: 11 months ago