Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

barbieQ #3747

Open
11 tasks done
FeiLiyang opened this issue Feb 21, 2025 · 5 comments
Open
11 tasks done

barbieQ #3747

FeiLiyang opened this issue Feb 21, 2025 · 5 comments
Assignees
Labels
2. review in progress assign a reviewer and a more thorough review of package code and documentation taking place OK

Comments

@FeiLiyang
Copy link

Update the following URL to point to the GitHub repository of
the package you wish to submit to Bioconductor

Confirm the following by editing each check box to '[x]'

  • I understand that by submitting my package to Bioconductor,
    the package source and all review commentary are visible to the
    general public.

  • I have read the Bioconductor Package Submission
    instructions. My package is consistent with the Bioconductor
    Package Guidelines.

  • I understand Bioconductor Package Naming Policy and acknowledge
    Bioconductor may retain use of package name.

  • I understand that a minimum requirement for package acceptance
    is to pass R CMD check and R CMD BiocCheck with no ERROR or WARNINGS.
    Passing these checks does not result in automatic acceptance. The
    package will then undergo a formal review and recommendations for
    acceptance regarding other Bioconductor standards will be addressed.

  • My package addresses statistical or bioinformatic issues related
    to the analysis and comprehension of high throughput genomic data.

  • I am committed to the long-term maintenance of my package. This
    includes monitoring the support site for issues that users may
    have, subscribing to the bioc-devel mailing list to stay aware
    of developments in the Bioconductor community, responding promptly
    to requests for updates from the Core team in response to changes in
    R or underlying software.

  • I understand it is my responsibility to maintain a valid, active
    maintainer email in the DESCRIPTION of my package. This email should allow
    emails from [email protected] and [email protected] to allow
    automatic notifications from the Bioconductor team concerning my package.

  • I am familiar with the Bioconductor code of conduct and
    agree to abide by it.

I am familiar with the essential aspects of Bioconductor software
management, including:

  • The 'devel' branch for new packages and features.
  • The stable 'release' branch, made available every six
    months, for bug fixes.
  • Bioconductor version control using Git
    (optionally via GitHub).

For questions/help about the submission process, including questions about
the output of the automatic reports generated by the SPB (Single Package
Builder), please use the #package-submission channel of our Community Slack.
Follow the link on the home page of the Bioconductor website to sign up.

@bioc-issue-bot
Copy link
Collaborator

Hi @FeiLiyang

Thanks for submitting your package. We are taking a quick
look at it and you will hear back from us soon.

The DESCRIPTION file for this package is:

Package: barbieQ
Type: Package
Title: Analyze Barcode Data from Clonal Tracking Experiments
Version: 0.99.0
Description: The barbieQ package provides a series of robust statistical tools 
  for analysing barcode count data generated from cell clonal tracking (i.e., lineage tracing) experiments.
  In these experiments, an initial cell and its offspring collectively form a clone (i.e., lineage).
  A unique barcode sequence, incorporated into the DNA of the inital cell, is inherited within the clone. 
  This one-to-one mapping of barcodes to clones enables clonal tracking of their behaviors.
  By counting barcodes, researchers can quantify the population abundance
  of individual clones under specific experimental perturbations. 
  barbieQ supports barcode count data preprocessing, statistical testing, and visualization.
Authors@R:
  c(person(given = "Liyang", 
 family = "Fei",
 role = c("aut", "cre"),
 email = "[email protected]",
 comment = c(ORCID = "0000-0002-3293-2094"))
    )
License: GPL-3
LazyData: FALSE
Encoding: UTF-8
VignetteBuilder: knitr
Suggests: 
    knitr,
    rmarkdown,
    testthat (>= 3.0.0)
Imports: 
    magrittr,
    tidyr,
    dplyr,
    grid,
    circlize,
    ComplexHeatmap,
    ggplot2,
    logistf,
    limma,
    stats,
    igraph,
    utils,
    data.table
biocViews: Sequencing, Regression, Preprocessing, Visualization
BugReports: https://github.com/Oshlack/barbieQ
URL: https://github.com/Oshlack/barbieQ/issues
RoxygenNote: 7.3.2
Config/testthat/edition: 3
Depends: 
    R (>= 4.5)
Roxygen: list(markdown = TRUE)

@bioc-issue-bot bioc-issue-bot added the 1. awaiting moderation submitted and waiting clearance to access resources label Feb 21, 2025
@lshep lshep added the pre-check passed pre-review performed and ready to be added to git label Feb 24, 2025
@bioc-issue-bot
Copy link
Collaborator

Your package has been added to git.bioconductor.org to continue the
pre-review process. A build report will be posted shortly. Please
fix any ERROR and WARNING in the build report before a reviewer is
assigned or provide a justification on why you feel the ERROR or
WARNING should be granted an exception.

IMPORTANT: Please read this documentation for setting
up remotes to push to git.bioconductor.org. All changes should be
pushed to git.bioconductor.org moving forward. It is required to push a
version bump to git.bioconductor.org to trigger a new build report.

Bioconductor utilized your github ssh-keys for git.bioconductor.org
access. To manage keys and future access you may want to active your
Bioconductor Git Credentials Account

@bioc-issue-bot bioc-issue-bot added pre-review on bioconductor git and access to on demand build but not assigned reviewer until build report clean and removed 1. awaiting moderation submitted and waiting clearance to access resources pre-check passed pre-review performed and ready to be added to git labels Feb 24, 2025
@bioc-issue-bot
Copy link
Collaborator

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on the Bioconductor Single Package Builder.

Congratulations! The package built without errors or warnings
on all platforms.

Please see the build report for more details.

The following are build products from R CMD build on the Single Package Builder:
Linux (Ubuntu 24.04.1 LTS): barbieQ_0.99.0.tar.gz

Links above active for 21 days.

Remember: if you submitted your package after July 7th, 2020,
when making changes to your repository push to
[email protected]:packages/barbieQ to trigger a new build.
A quick tutorial for setting up remotes and pushing to upstream can be found here.

@lshep lshep added 2. review in progress assign a reviewer and a more thorough review of package code and documentation taking place and removed pre-review on bioconductor git and access to on demand build but not assigned reviewer until build report clean labels Feb 25, 2025
@bioc-issue-bot
Copy link
Collaborator

A reviewer has been assigned to your package for an indepth review.
Please respond accordingly to any further comments from the reviewer.

@js2264
Copy link

js2264 commented Mar 8, 2025

Hi @FeiLiyang,

The {barbieQ} package is in a good shape and will be a valuable contribution to Bioconductor. The package provides a thorough documentation and a clear vignette with lots of examples. The source code is also very well tested.
That being said, there is a major improvement that I would suggest, which is to rely on SummarizedExperiment data class instead of the current list-based data structure. SummarizedExperiment objects are widely used in Bioconductor (read more here). In your case, they would be very well suited since:

  1. They can store any number of assays, which are rectangular data.frames with the same number of rows (features) and columns (samples). They also store row metadata and column metadata. In your case, features (ie rows) would be barcodes, and samples (ie columns) would be genes.

  2. They are supported by well-understood semantics and provide out-of-the-box methods to manipulate data, including subsetting rows and columns (synchronously across all assays, and rows and column metadata).

AFAICT, this is more or less the structure of the data that you are working with. In your barbieQ list, you could have the assay, proportion, CPM, occurrence, rank, and $isTop$mat provided as individual assays. metadata would be colData, and $isTop$vec would be rowData. Extra bits could go to metadata or row/colData, as needed.

library(SummarizedExperiment)
x <- createBarbieQ(
  object = myBarbieQ, target = data.frame(Mouse = rep(seq_len(4), each = 3)),
  factorColors = list(
    Mouse = c("1" = "#111199", "2" = "#112200", "3" = "#441111", "4" = "#000000")
  )
)
barbieQ_se <- SummarizedExperiment(
    assays = list(assay = x$assay, proportion = x$proportion, CPM = x$CPM, occurrence = x$occurrence, rank = x$rank, isTop = x$isTop$mat),
    colData = data.frame(Mouse = x$metadata),
    rowData = data.frame(isTopVec = x$isTop$vec)
)

barbieQ_se
## class: SummarizedExperiment 
## dim: 50 12 
## metadata(0):
## assays(6): assay proportion ... rank isTop
## rownames(50): Barcode1 Barcode2 ... Barcode49 Barcode50
## rowData names(1): isTopVec
## colnames(12): V1 V2 ... V11 V12
## colData names(1): Mouse

colData(barbieQ_se)
## DataFrame with 12 rows and 1 column
##         Mouse
##     <integer>
## V1          1
## V2          1
## V3          1
## V4          2
## V5          2
## ...       ...
## V8          3
## V9          3
## V10         4
## V11         4
## V12         4

rowData(barbieQ_se)
## DataFrame with 50 rows and 1 column
##            isTopVec
##           <logical>
## Barcode1       TRUE
## Barcode2       TRUE
## Barcode3       TRUE
## Barcode4       TRUE
## Barcode5       TRUE
## ...             ...
## Barcode46      TRUE
## Barcode47      TRUE
## Barcode48      TRUE
## Barcode49      TRUE
## Barcode50      TRUE

Points to adress prior to acceptance

  • Decide whether or not you wish to update the source code to support SummarizedExperiment class. This would require a lot of work, however I believe it would make the package more user-friendly, particularly to Bioconductor users who are familiar with SummarizedExperiment-like objects, and will allow users to use the package in combination with other Bioconductor packages. Let me know whether you wish to proceed with this change. If so, I will be happy to provide you with some guidance on how to implement this. If not, just let me know, so I can accept the package as it is (once the following points are addressed).

  • You'll need to document the monkeyHSPC data object (see here for more info). You already have some information provided in inst/scripts/, but you would need to move some to R/monkeyHSPC.R.

  • Remember to update the Installation section in the vignette to explain how to install barbieQ from Bioconductor.

  • You have wrapped several calls to ggplot in suppressWarnings(). This is not recommended, as it can hide important warnings. Also, when I run the internal plotting code with the provided example outside of the suppressWarnings() call, I don't see any warning. You mention in a comment that "ggplot2 has a bug that gives wrong warning of 'Removed rows containing missing values'". AFAIK, this is not a bug but an actual feature of ggplot(), which warns the end-user when they are trying to plot data with missing values or out-of-range values. I would recommend that you remove the suppressWarnings() calls and instead address the underlying issue that is causing the warnings.

Let me know if anything is not clear, I will be happy to provide more information!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2. review in progress assign a reviewer and a more thorough review of package code and documentation taking place OK
Projects
None yet
Development

No branches or pull requests

4 participants