Contributions icon indicating copy to clipboard operation
Contributions copied to clipboard

VDJdive

Open kstreet13 opened this issue 3 years ago • 14 comments

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

  • Repository: https://github.com/kstreet13/VDJdive

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

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

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

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

  • [x] 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.

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

  • [x] 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.

  • [x] 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:

  • [x] The 'devel' branch for new packages and features.
  • [x] The stable 'release' branch, made available every six months, for bug fixes.
  • [x] 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.

kstreet13 avatar Jul 20 '22 19:07 kstreet13

Hi @kstreet13

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: VDJdive
Title: Analysis Tools for 10X V(D)J Data 
Version: 0.99.1
Authors@R: c(
    person("Kelly", "Street", role = c("aut", "cre"), email = "[email protected]", comment = c(ORCID = "0000-0001-6379-5013")),
    person("Mercedeh", "Movassagh", role = "aut", email = "[email protected]", comment = c(ORCID = "0000-0001-7690-0230")),
    person("Jill", "Lundell", role = "aut", email = "[email protected]", comment = c(ORCID = "0000-0002-6048-4700")),
    person("Jared", "Brown", role = "ctb"),
    person("Linglin", "Huang", role = "ctb"))
Description: This package provides functions for handling and analyzing immune receptor repertoire data, as produced by the CellRanger V(D)J pipeline. This includes reading the data into R, merging it with paired single-cell data, quantifying clonotype abundances, calculating diversity metrics, and producing common plots.
Depends:
    R (>= 4.1)
Imports:
    basilisk,
    BiocParallel,
    cowplot,
    ggplot2,
    gridExtra,
    IRanges,
    Matrix,
    methods,
    RColorBrewer,
    reticulate,
    S4Vectors,
    SingleCellExperiment,
    stats,
    SummarizedExperiment,
    utils
Suggests:
    breakaway,
    covr,
    knitr,
    rmarkdown,
    testthat,
    BiocStyle
License: Artistic-2.0
URL: https://github.com/kstreet13/VDJdive
BugReports: https://github.com/kstreet13/VDJdive/issues
biocViews: 
    Software,
    ImmunoOncology, 
    SingleCell,
    Annotation,
    RNASeq,
    TargetedResequencing
Encoding: UTF-8
LazyData: true
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.1
StagedInstall: no
VignetteBuilder: knitr
Collate: 
    'clonoStats_class.R'
    'abundanceVDJ.R'
    'barVDJ.R'
    'basilisk.R'
    'boxVDJ.R'
    'calculateDiversity.R'
    'clonoStats_helpers.R'
    'clonoStats.R'
    'contigs.R'
    'pieVDJ.R'
    'runBreakaway.R'
    'runVDJPCA.R'
    'scatterVDJ.R'
    'setup.R'
    'utils.R'

bioc-issue-bot avatar Jul 20 '22 19:07 bioc-issue-bot

A reviewer has been assigned to your package. Learn what to expect during the review process.

IMPORTANT: Please read this documentation for setting up remotes to push to git.bioconductor.org. It is required to push a version bump to git.bioconductor.org to trigger a new build.

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 avatar Jul 22 '22 18:07 bioc-issue-bot

Dear Package contributor,

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

Your package has been built on Linux, Mac, and Windows.

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

Please see the build report for more details. This link will be 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/VDJdive to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Jul 22 '22 18:07 bioc-issue-bot

Package 'VDJdive' Review

Thank you for submition your package to Bioconductor. The package passed check and build. It is in pretty good shape. However there are several things need to be fixed. Please try to answer the comments line by line when you are ready for a second review.

The DESCRIPTION file

  • [ ] At least 3 sentences in Description field is required.
  • [ ] 'LazyData:' in the 'DESCRIPTION' should be set to false or removed
  • [ ] R version should be no less than 4.2

The NAMESPACE file

  • [ ] Selective imports using importFrom instead of import all with import.
    • in line 43 import(IRanges)
    • in line 44 import(S4Vectors)

General package development

  • [ ] NOTE: Consider adding a NEWS file, so your package news will be included in Bioconductor release announcements.

R code

  • [ ] NOTE: no direct slot access with @ or slot() - accessors implemented and used.
    • In file R/clonoStats.R:
      • at line 305 found ' names1 = x@names1, names2 = x@names2, group = grpVar,'
    • In file R/runVDJPCA.R:
      • at line 53 found ' runVDJPCA(x@abundance, ...)'
    • In file R/utils.R:
      • at line 20 found ' P2 <- matrix(x[, ind2, drop = FALSE]@x, nrow = 2)'
      • at line 30 found ' counts <- x[, ind3p, drop = FALSE]@x'
      • at line 138 found ' if(all(x@x %% 1 == 0)){ # integer counts'
      • at line 183 found ' return(summarizeClonotypes(metadata(x)[[clonoStats]]@assignment,'
      • at line 201 found ' if(is.null(x@assignment)){'
      • at line 205 found ' summarizeClonotypes(x@assignment, by, ...)'
      • at line 301 found ' return(splitClonotypes(metadata(x)[[clonoStats]]@assignment, '
      • at line 310 found ' if(is.null(x@assignment)){'
      • at line 314 found ' splitClonotypes(x@assignment, by)'
      • at line 327 found ' cat('clonotypes:', length(object@names1), '\n')'
      • at line 328 found ' cat('cells:', length(object@group), '\n')'
      • at line 329 found ' groups <- levels(object@group)'
      • at line 331 found ' cat('has assignment:', !is.null(object@assignment))'
      • at line 348 found ' paste(object@names1, object@names2)'
      • at line 374 found ' object@abundance'
      • at line 399 found ' object@frequency'
      • at line 425 found ' object@assignment'
      • at line 451 found ' object@group'
  • [ ] NOTE: :: is not suggested in source code unless you can make sure all the packages are imported. Please note that you need to manully double check the import items when you make any change in the DESCRIPTION file during development.
  • [ ] NOTE: Vectorize: for loops present, try to replace them by *apply funcitons.
    • In file R/abundanceVDJ.R:
      • at line 48 found ' for (i in seq_len(ncol(a))) {'
    • In file R/barVDJ.R:
      • at line 44 found ' for (i in seq_len(ncol(x))) {'
    • In file R/calculateDiversity.R:
      • at line 91 found ' for (i in seq_len(t)[-1]){'
      • at line 98 found ' for (i in seq_len(t)){'
      • at line 99 found ' for (j in seq_len(t)){'
      • at line 110 found ' for (i in seq_len(t)){'
      • at line 111 found ' for (j in seq_len(t)){'
    • In file R/clonoStats_helpers.R:
      • at line 114 found ' for(i in seq_along(temp)){'
      • at line 130 found ' for(ii in l1.idx){'
      • at line 156 found ' for(i in seq_along(temp)){'
      • at line 319 found ' for(i in seq_along(contigs)){'
      • at line 379 found ' for(i in ind.multiple){'
    • In file R/clonoStats.R:
      • at line 219 found ' for(i in ind){'
    • In file R/pieVDJ.R:
      • at line 45 found ' for (i in seq_len(ncol(x))) {'
    • In file R/setup.R:
      • at line 51 found ' for (ii in seq_along(samples)) {'
      • at line 226 found ' for(samp in unique(contigs$sample)){'
    • In file R/utils.R:
      • at line 47 found ' for(p in probs){'
  • [ ] Important: Remove unused code.
    • In file R/calculateDiversity.R:
      • at line 67 found ' #B2 <- B1 - f[1]'
      • at line 68 found ' #C2 <- sum(seq_len(t) * (seq_len(t)-1) * f[seq_len(t)])'
      • at line 123 found ' # CI0 <- matrix(c(lb,ub),1,2)'
      • at line 124 found ' # colnames(CI0) <- c("lb","ub")'
      • at line 125 found ' # return(list(est=chao4, CI=CI0))'
    • In file R/clonoStats.R:
      • at line 290 found ' # grpVar <- clonoGroup(x)'
    • In file R/pieVDJ.R:
      • at line 81 found ' # datL <- data.frame(values = seq_len(100))'
      • at line 82 found ' # pieL <- ggplot2::ggplot(datL, ggplot2::aes(x = "", y = values, fill = values, weight = values)) +'
      • at line 83 found ' # ggplot2::geom_col(position = "stack") +'
      • at line 84 found ' # ggplot2::scale_fill_continuous("", type = "viridis", breaks = c(1, 100), '
      • at line 85 found ' # labels = c("Singletons", "Most expanded")) +'
      • at line 86 found ' # ggplot2::theme_bw() +'
      • at line 87 found ' # ggplot2::theme(legend.position = "bottom") '
    • In file R/setup.R:
      • at line 55 found ' #tcr_ii$type <- "TCR"'
      • at line 56 found ' #tcr_ii$clonotype_tcr <- paste0(sample_ids[ii], "-", '
      • at line 57 found ' #tcr_ii$raw_clonotype_id)'
  • [ ] NOTE: Functional programming: code repetition.
    • repetition in .CHN_sample , .MC_sample and .UNIQ_sample
      • in .CHN_sample
        • line 6: if (length(all.alphas) == 0) {
        • line 7: clono <- Matrix(0, nrow = length(contigs), ncol = 0)
        • line 8: rownames(clono) <- names(contigs)
        • line 9: return(clono)
        • line 10: }
        • line 11: clono <- Matrix(0, nrow = length(contigs), ncol = length(all.alphas))
      • in .MC_sample
        • line 17: if (length(all.alphas) == 0) {
        • line 18: clono <- Matrix(0, nrow = length(contigs), ncol = 0)
        • line 19: rownames(clono) <- names(contigs)
        • line 20: return(clono)
        • line 21: }
        • line 24: if (length(all.betas) == 0) {
        • line 25: clono <- Matrix(0, nrow = length(contigs), ncol = 0)
        • line 26: rownames(clono) <- names(contigs)
        • line 27: return(clono)
        • line 28: }
        • line 29: counts <- Matrix(0, nrow = length(all.alphas), ncol = length(all.betas),
      • in .UNIQ_sample
        • line 15: type1]))
        • line 16: if (length(all.alphas) == 0) {
        • line 17: clono <- Matrix(0, nrow = length(contigs), ncol = 0)
        • line 18: rownames(clono) <- names(contigs)
        • line 19: return(clono)
        • line 20: }
        • line 23: if (length(all.betas) == 0) {
        • line 24: clono <- Matrix(0, nrow = length(contigs), ncol = 0)
        • line 25: rownames(clono) <- names(contigs)
        • line 26: return(clono)
        • line 27: }
        • line 28: counts <- Matrix(0, nrow = length(all.alphas), ncol = length(all.betas),
    • repetition in .CR_sample , .MC_sample and .UNIQ_sample
      • in .CR_sample
        • line 11: poss.indices <- match(clonoID, all_clonotypes)
        • line 12: clonoJ <- as.integer(unlist(poss.indices) - 1)
        • line 13: clonoP <- as.integer(c(0, cumsum(lengths(poss.indices))))
        • line 14: clonoX <- rep(1, sum(lengths(poss.indices)))
        • line 15: clono <- new("dgRMatrix", j = clonoJ, p = clonoP, x = clonoX,
        • line 16: Dim = as.integer(c(length(contigs), length(all_clonotypes))))
      • in .MC_sample
        • line 57: counts <- as.numeric(counts)
        • line 58: clonoJ <- as.integer(unlist(poss.indices) - 1)
        • line 59: clonoP <- as.integer(c(0, cumsum(lengths(poss.indices))))
        • line 60: clonoX <- rep(1, sum(lengths(poss.indices)))
        • line 61: clono <- new("dgRMatrix", j = clonoJ, p = clonoP, x = clonoX,
        • line 62: Dim = as.integer(c(length(contigs), length(counts))))
      • in .UNIQ_sample
        • line 47: counts <- as.numeric(counts)
        • line 48: clonoJ <- as.integer(unlist(poss.indices) - 1)
        • line 49: clonoP <- as.integer(c(0, cumsum(lengths(poss.indices))))
        • line 50: clonoX <- rep(1, sum(lengths(poss.indices)))
        • line 51: clono <- new("dgRMatrix", j = clonoJ, p = clonoP, x = clonoX,
        • line 52: Dim = as.integer(c(length(contigs), length(counts))))
    • repetition in .EM_sample , .MC_sample and .UNIQ_sample
      • in .EM_sample
        • line 3: contigs <- .prepContigs(contigs, type)
        • line 4: if (type == "TCR") {
        • line 5: type1 <- "TRA"
        • line 6: type2 <- "TRB"
        • line 7: }
        • line 8: if (type == "BCR") {
        • line 9: type1 <- "IGH"
        • line 10: type2 <- c("IGL", "IGK")
        • line 11: }
        • line 12: nAlpha <- sum(contigs[, "chain"] %in% type1)
        • line 13: nBeta <- sum(contigs[, "chain"] %in% type2)
        • line 14: all.alphas <- unique(unlist(contigs[, "cdr3"][contigs[, "chain"] %in%
        • line 15: type1]))
        • line 20: counts <- Matrix(0, nrow = length(all.alphas), ncol = length(all.betas),
        • line 21: sparse = TRUE)
        • line 22: rownames(counts) <- all.alphas
        • line 23: colnames(counts) <- all.betas
        • line 24: ind.unique <- which(nAlpha == 1 & nBeta == 1)
        • line 25: ind.multiple <- which(nAlpha > 0 & nBeta > 0 & nAlpha + nBeta >
        • line 26: 2)
        • line 30: wa <- match(contigs[, "cdr3"][contigs[, "chain"] %in% type1],
        • line 31: all.alphas)
        • line 32: wb <- match(contigs[, "cdr3"][contigs[, "chain"] %in% type2],
        • line 33: all.betas)
        • line 34: poss.indices <- as.list(length(all.alphas) * (wb - 1L) +
        • line 35: wa)
        • line 55: })
        • line 56: temp <- contigs[ind.unique]
        • line 57: uniquecounts <- unclass(table(unlist(temp[temp[, "chain"] %in%
        • line 58: type1, "cdr3"]), unlist(temp[temp[, "chain"] %in% type2,
        • line 59: "cdr3"])))
        • line 60: if (length(temp) > 0) {
        • line 61: counts[rownames(uniquecounts), colnames(uniquecounts)] <- uniquecounts
        • line 62: }
        • line 63: uniquecounts <- counts <- as.numeric(counts)
        • line 117: }))
        • line 118: clono <- new("dgRMatrix", j = clonoJ, p = clonoP, x = clonoX,
        • line 119: Dim = as.integer(c(length(contigs), length(counts))))
        • line 120: colnames(clono) <- as.character(outer(all.alphas, all.betas,
        • line 121: FUN = paste))
        • line 122: clono <- clono[, which(colSums(clono) > 0), drop = FALSE]
        • line 123: rownames(clono) <- names(contigs)
        • line 124: return(clono)
      • in .MC_sample
        • line 4: contigs <- .prepContigs(contigs, type)
        • line 5: if (type == "TCR") {
        • line 6: type1 <- "TRA"
        • line 7: type2 <- "TRB"
        • line 8: }
        • line 9: if (type == "BCR") {
        • line 10: type1 <- "IGH"
        • line 11: type2 <- c("IGL", "IGK")
        • line 12: }
        • line 13: nAlpha <- sum(contigs[, "chain"] %in% type1)
        • line 14: nBeta <- sum(contigs[, "chain"] %in% type2)
        • line 15: all.alphas <- unique(unlist(contigs[, "cdr3"][contigs[, "chain"] %in%
        • line 16: type1]))
        • line 29: counts <- Matrix(0, nrow = length(all.alphas), ncol = length(all.betas),
        • line 30: sparse = TRUE)
        • line 31: rownames(counts) <- all.alphas
        • line 32: colnames(counts) <- all.betas
        • line 33: ind.unique <- which(nAlpha == 1 & nBeta == 1)
        • line 34: ind.multiple <- which(nAlpha > 0 & nBeta > 0 & nAlpha + nBeta >
        • line 35: 2)
        • line 43: wa <- match(contigs[, "cdr3"][contigs[, "chain"] %in% type1],
        • line 44: all.alphas)
        • line 45: wb <- match(contigs[, "cdr3"][contigs[, "chain"] %in% type2],
        • line 46: all.betas)
        • line 47: poss.indices <- as.list(length(all.alphas) * (wb - 1L) +
        • line 48: wa)
        • line 50: temp <- contigs[ind.unique]
        • line 51: uniquecounts <- unclass(table(unlist(temp[temp[, "chain"] %in%
        • line 52: type1, "cdr3"]), unlist(temp[temp[, "chain"] %in% type2,
        • line 53: "cdr3"])))
        • line 54: if (length(temp) > 0) {
        • line 55: counts[rownames(uniquecounts), colnames(uniquecounts)] <- uniquecounts
        • line 56: }
        • line 57: counts <- as.numeric(counts)
        • line 61: clono <- new("dgRMatrix", j = clonoJ, p = clonoP, x = clonoX,
        • line 62: Dim = as.integer(c(length(contigs), length(counts))))
        • line 63: colnames(clono) <- as.character(outer(all.alphas, all.betas,
        • line 64: FUN = paste))
        • line 65: clono <- clono[, which(colSums(clono) > 0), drop = FALSE]
        • line 66: rownames(clono) <- names(contigs)
        • line 67: return(clono)
        • in .UNIQ_sample
          • line 2:{
          • line 3: contigs <- .prepContigs(contigs, type)
          • line 4: if (type == "TCR") {
          • line 5: type1 <- "TRA"
          • line 6: type2 <- "TRB"
          • line 7: }
          • line 8: if (type == "BCR") {
          • line 9: type1 <- "IGH"
          • line 10: type2 <- c("IGL", "IGK")
          • line 11: }
          • line 12: nAlpha <- sum(contigs[, "chain"] %in% type1)
          • line 13: nBeta <- sum(contigs[, "chain"] %in% type2)
          • line 14: all.alphas <- unique(unlist(contigs[, "cdr3"][contigs[, "chain"] %in%
          • line 15: type1]))
          • line 28: counts <- Matrix(0, nrow = length(all.alphas), ncol = length(all.betas),
          • line 29: sparse = TRUE)
          • line 30: rownames(counts) <- all.alphas
          • line 31: colnames(counts) <- all.betas
          • line 32: ind.unique <- which(nAlpha == 1 & nBeta == 1)
          • line 33: wa <- match(contigs[, "cdr3"][contigs[, "chain"] %in% type1],
          • line 34: all.alphas)
          • line 35: wb <- match(contigs[, "cdr3"][contigs[, "chain"] %in% type2],
          • line 36: all.betas)
          • line 37: poss.indices <- as.list(length(all.alphas) * (wb - 1L) +
          • line 38: wa)
          • line 40: temp <- contigs[ind.unique]
          • line 41: uniquecounts <- unclass(table(unlist(temp[temp[, "chain"] %in%
          • line 42: type1, "cdr3"]), unlist(temp[temp[, "chain"] %in% type2,
          • line 43: "cdr3"])))
          • line 44: if (length(temp) > 0) {
          • line 45: counts[rownames(uniquecounts), colnames(uniquecounts)] <- uniquecounts
          • line 46: }
          • line 47: counts <- as.numeric(counts)
          • line 51: clono <- new("dgRMatrix", j = clonoJ, p = clonoP, x = clonoX,
          • line 52: Dim = as.integer(c(length(contigs), length(counts))))
          • line 53: colnames(clono) <- as.character(outer(all.alphas, all.betas,
          • line 54: FUN = paste))
          • line 55: clono <- clono[, which(colSums(clono) > 0), drop = FALSE]
          • line 56: rownames(clono) <- names(contigs)
          • line 57: return(clono)
    • repetition in .EM_sample and .prepContigs
      • in .EM_sample
        • line 4: if (type == "TCR") {
        • line 5: type1 <- "TRA"
        • line 6: type2 <- "TRB"
        • line 7: }
        • line 8: if (type == "BCR") {
        • line 9: type1 <- "IGH"
        • line 10: type2 <- c("IGL", "IGK")
        • line 11: }
      • in .prepContigs
        • line 4: if (type == "TCR") {
        • line 5: type1 <- "TRA"
        • line 6: type2 <- "TRB"
        • line 7: }
        • line 8: if (type == "BCR") {
        • line 9: type1 <- "IGH"
        • line 10: type2 <- c("IGL", "IGK")
    • repetition in .ginisimpson , .invsimpson and .normentropy and .shannon
      • in .ginisimpson
        • line 1:{
        • line 2: p <- p[which(p > 0)]
        • line 3: p <- p/sum(p)
        • line 4: p <- p[which(p > 0)]
        • line 5: return(1 - sum(p^2))
      • in .invsimpson
        • line 1:{
        • line 2: p <- p[which(p > 0)]
        • line 3: p <- p/sum(p)
        • line 4: p <- p[which(p > 0)]
        • line 5: return(1/sum(p^2))
          • in .normentropy
            • line 1:{
            • line 2: p <- p[which(p > 0)]
            • line 3: p <- p/sum(p)
            • line 4: p <- p[which(p > 0)]
          • in .shannon
            • line 1:{
            • line 2: p <- p[which(p > 0)]
            • line 3: p <- p/sum(p)
            • line 4: p <- p[which(p > 0)]
            • line 5: return(-sum(p * log(p)))

Documentation

  • [ ] Important: Vignette should have an Installation section.
    • rmd file vignettes/workflow.Rmd
  • [ ] Important: Please include Bioconductor installation instructions using BiocManager.
    • rmd file vignettes/workflow.Rmd
  • [ ] Important: Vignette includes motivation for submitting to Bioconductor as part of the abstract/intro of the main vignette.
    • rmd file vignettes/workflow.Rmd

jianhong avatar Jul 31 '22 15:07 jianhong

Hi @jianhong,

Thanks very much for reviewing! I have made most of the changes you suggested and pushed a new version (0.99.2), which I thought would trigger a rebuild, but it doesn't seem to have done that. If there is something else I need to do in that regard, please let me know.

The DESCRIPTION file

  • [x] At least 3 sentences in Description field is required.
  • [x] 'LazyData:' in the 'DESCRIPTION' should be set to false or removed
  • [x] R version should be no less than 4.2

The NAMESPACE file

  • [x] Selective imports using importFrom instead of import all with import.
  • [x] NOTE: Consider adding a NEWS file, so your package news will be included in Bioconductor release announcements.

R code

  • [ ] NOTE: no direct slot access with @ or slot() - accessors implemented and used. For this item, I removed all unnecessary direct slot access, but there is still some. Notably, we implemented an S4 class (the clonoStats class) so the accessor functions still need to directly access the corresponding slots. Also, I could not find accessor functions for the dgCMatrix class, but we need (quick) access to the non-zero elements of a large, sparse matrix, and I don't think there is a better way to do that than mat@x.
  • [x] NOTE: :: is not suggested in source code unless you can make sure all the packages are imported.
  • [ ] NOTE: Vectorize: for loops present, try to replace them by *apply funcitons. This has been done wherever possible, but many are still present because the loop is updating an object repeatedly (most notably in the case of the E-M algorithm), so I don't think any of the *apply functions would work.
  • [x] Important: Remove unused code.
  • [ ] NOTE: Functional programming: code repetition. There are several similar but meaningfully different functions that share a few lines of code. I think for the purposes of debugging (especially for users), it's better not to make several more nested functions for things like p <- p[p > 0].

Documentation

  • [x] Important: Vignette should have an Installation section.
  • [x] Important: Please include Bioconductor installation instructions using BiocManager.
  • [x] Important: Vignette includes motivation for submitting to Bioconductor as part of the abstract/intro of the main vignette. I wasn't entirely sure what was meant by this, but I tried to expand on what was already in the Intro section to explain why I think this package would make the analysis of AIRRseq data easier by giving users access to the Bioconductor SingleCellExperiment framework.

kstreet13 avatar Aug 02 '22 22:08 kstreet13

A reviewer has been assigned to your package. Learn what to expect during the review process.

IMPORTANT: Please read this documentation for setting up remotes to push to git.bioconductor.org. It is required to push a version bump to git.bioconductor.org to trigger a new build.

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

Please try to following this documentation to push your code to git.bioconductor.org and update your version number.

jianhong avatar Aug 16 '22 12:08 jianhong

Received a valid push on git.bioconductor.org; starting a build for commit id: affe33329f7f2c5329d671f831fb838d650420a8

bioc-issue-bot avatar Aug 17 '22 18:08 bioc-issue-bot

Dear Package contributor,

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

Your package has been built on Linux, Mac, and Windows.

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

Please see the build report for more details. This link will be 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/VDJdive to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Aug 17 '22 18:08 bioc-issue-bot

Just to clarify an earlier point, many of the for loops are iteratively modifying a large, sparse matrix object. Most of these could be done with an apply statement which would replace a large section of the matrix, but that would require constructing a dense version of that section, which would substantially increase memory usage.

kstreet13 avatar Aug 25 '22 18:08 kstreet13

Package 'VDJdive' Review

The package passed check and build.It is almost there.

General package development

* NOTE: Please correct the NEWS file name. See https://contributions.bioconductor.org/news.html?q=news#news

R code

  • [ ] Important: Remove unused code.
    • In file R/clonoStats_helpers.R:
      • at line 169 found ' #print(diff[length(diff)])'

jianhong avatar Sep 01 '22 16:09 jianhong

Received a valid push on git.bioconductor.org; starting a build for commit id: 86a5589cb12c160e9e55f216a990bb9902173c29

bioc-issue-bot avatar Sep 01 '22 22:09 bioc-issue-bot

Dear Package contributor,

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

Your package has been built on Linux, Mac, and Windows.

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

Please see the build report for more details. This link will be 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/VDJdive to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Sep 01 '22 22:09 bioc-issue-bot

Thanks very much, @jianhong! I believe that both of these issues have been addressed in the latest update.

kstreet13 avatar Sep 01 '22 22:09 kstreet13

Your package has been accepted. It will be added to the Bioconductor nightly builds.

Thank you for contributing to Bioconductor!

Reviewers for Bioconductor packages are volunteers from the Bioconductor community. If you are interested in becoming a Bioconductor package reviewer, please see Reviewers Expectations.

bioc-issue-bot avatar Sep 02 '22 12:09 bioc-issue-bot

The master branch of your GitHub repository has been added to Bioconductor's git repository.

To use the git.bioconductor.org repository, we need an 'ssh' key to associate with your github user name. If your GitHub account already has ssh public keys (https://github.com/kstreet13.keys is not empty), then no further steps are required. Otherwise, do the following:

  1. Add an SSH key to your github account
  2. Submit your SSH key to Bioconductor

See further instructions at

https://bioconductor.org/developers/how-to/git/

for working with this repository. See especially

https://bioconductor.org/developers/how-to/git/new-package-workflow/ https://bioconductor.org/developers/how-to/git/sync-existing-repositories/

to keep your GitHub and Bioconductor repositories in sync.

Your package will be included in the next nigthly 'devel' build (check-out from git at about 6 pm Eastern; build completion around 2pm Eastern the next day) at

https://bioconductor.org/checkResults/

(Builds sometimes fail, so ensure that the date stamps on the main landing page are consistent with the addition of your package). Once the package builds successfully, you package will be available for download in the 'Devel' version of Bioconductor using BiocManager::install("VDJdive"). The package 'landing page' will be created at

https://bioconductor.org/packages/VDJdive

If you have any questions, please contact the bioc-devel mailing list (https://stat.ethz.ch/mailman/listinfo/bioc-devel); this issue will not be monitored further.

lshep avatar Sep 09 '22 11:09 lshep