Closed RMTbioinfo closed 6 years ago
1) define a named list, maybe in a file R/errors.R
, e.g.,
Errors <- list(
## ExCluster
missing_exon_count_matrix =
"You did not provide a normalized exon count matrix to the
exonCounts argument. Please obtain normalized exon counts
from processCounts() and assign the resutls to exonCounts.
For example, if you followed the vignette, you should have a
normCounts variable. In this case, you could specify:
exonCounts=normCounts",
exon_counts_column_mismatch =
"Your number of exonCounts columns did not equal the length of
your number of condition identifiers. Please ensure that you
entered correct condition identifiers to cond.Nums, such as
cond.Nums=c(1,1,1,2,2,2). Additionally, please also ensure
your normalized counts provided to exonCounts have only count
data columns. All Gene:ExonBin identifiers should be provided
as rownames. If you are unsure, please refer to the vignette."
)
use the list in your R code, e.g.,
if (is.null(exonCounts) == TRUE){
stop(Errors$missing_exon_count_matrix)
}
### ensure the number of columns in the exonCounts parameter equal the number of cond.Nums
if (ncol(exonCounts) != length(cond.Nums)){
stop(Errors$exon_counts_column_mismatch)
}
Fancier solutions are possible.
2) I'm not exactly sure what you mean, but starting from the top of ExCluster.R()
I'd create a file R/utilities.R
with things like
#### Geometric mean function
gm_mean = function(x, na.rm=TRUE){
exp(sum(log(x[x > 0]), na.rm=na.rm) / length(x))
}
#Compute effect size
Calc.effect.size <- function(Mean1, Mean2, Var1, Var2){
(Mean1 - Mean2) / (sqrt((Var1 + Var2) / 2))
}
and simply remove the definitions from ExCluster -- when you use gm_mean() in the body of ExCluster, R will look for a gm_mean()
in the body of the function. It won't find it, so it will for a function gm_mean()
in the environment where the ExCluster()
function was defined. This environment is (inside) the package name space, where it will find gm_mean()
you defined in utilities.R.
The third function in ExCluster is more problematic
Determine_HC_Distance <- function(x){
which(HC_cutree%in%x)
}
because it references HC_cutree
, which is not an argument. The correct solution is to update the function so that all symbols in the body of the function are either arguments or symbols from your package or the symbols your package imports. So
Determine_HC_Distance <- function(HC_cutree, x) {
which(HC_cutree %in% x)
Of course the code where you use this function
HC_indices <- lapply(seq(NumClusters),FUN=Determine_HC_Distance)
has to be modified
HC_indices <- lapply(seq(NumClusters),FUN=Determine_HC_Distance, HC_cutree = HC_cutree)
The diversity of naming conventions in these functions is also confusing to an outsider -- is there some kind of code, where functions with _
do one thing, with .
do another, etc? But probably it is just inconsistency and the code would really benefit from more consistency.
I see a lot of loops in your code, like
Generate_ES_dists <- function(Mean1,Var1){
x=length(Mean1)
ES_mat <- matrix(0,nrow=x,ncol=x)
# fill in nth row and jth column data for ES difference matrix
for (n in seq(x-1)){
for (j in (n+1):x){
ES_mat[n,j] <- Calc.effect.size(Mean1[n],Mean1[j],Var1[n],Var1[j])
ES_mat[j,n] <- ES_mat[n,j] * -1
}
}
return(ES_mat)
}
If you think about it, Calc.effect.size()
works as well on scalar values as on vectors of values. Also, a matrix can be subset by a two-column matrix to update selected rows and columns. So one could first generate the vectors n
and j
, and then avoid most of the iteration
Generate_ES_dists_1 <- function(Mean1, Var1) {
x <- length(Mean1)
ES_mat <- matrix(0, nrow=x, ncol=x)
n <- rep(seq_len(x - 1), rev(seq_len(x - 1)))
j <- unlist(lapply(seq_len(x - 1) + 1, seq, to = 10))
idx <- cbind(n, j)
ES_mat[idx] <- Calc.effect.size(Mean1[n],Mean1[j],Var1[n],Var1[j])
ES_mat[ idx[, c(2, 1)] ] <- ES_mat[idx] * -1
ES_mat
}
This produces the same result but is about 10x faster than the original; this is more-or-less the usual case with vectorized code versus iteration.
Excellent! Thanks so much for those pointers.
I agree with you -- the helper functions in ExCluster should all take parameters as input, and not depend on variables from the environment, such as HC_cutree.
I'm going to implement these changes now.
-Matt
On Wed, Aug 8, 2018 at 6:51 PM, Martin Morgan notifications@github.com wrote:
- define a named list, maybe in a file R/errors.R, e.g.,
Errors <- list(
ExCluster
missing_exon_count_matrix = "You did not provide a normalized exon count matrix to the exonCounts argument. Please obtain normalized exon counts from processCounts() and assign the resutls to exonCounts. For example, if you followed the vignette, you should have a normCounts variable. In this case, you could specify: exonCounts=normCounts", exon_counts_column_mismatch = "Your number of exonCounts columns did not equal the length of your number of condition identifiers. Please ensure that you entered correct condition identifiers to cond.Nums, such as cond.Nums=c(1,1,1,2,2,2). Additionally, please also ensure your normalized counts provided to exonCounts have only count data columns. All Gene:ExonBin identifiers should be provided as rownames. If you are unsure, please refer to the vignette."
)
use the list in your R code, e.g.,
if (is.null(exonCounts) == TRUE){ stop(Errors$missing_exon_count_matrix) } ### ensure the number of columns in the exonCounts parameter equal the number of cond.Nums if (ncol(exonCounts) != length(cond.Nums)){ stop(Errors$exon_counts_column_mismatch) }
Fancier solutions are possible.
- I'm not exactly sure what you mean, but starting from the top of ExCluster.R() I'd create a file R/utilities.R with things like
Geometric mean function
gm_mean = function(x, na.rm=TRUE){ exp(sum(log(x[x > 0]), na.rm=na.rm) / length(x)) }
Compute effect size
Calc.effect.size <- function(Mean1, Mean2, Var1, Var2){ (Mean1 - Mean2) / (sqrt((Var1 + Var2) / 2)) }
and simply remove the definitions from ExCluster -- when you use gm_mean() in the body of ExCluster, R will look for a gm_mean() in the body of the function. It won't find it, so it will for a function gm_mean() in the environment where the ExCluster() function was defined. This environment is (inside) the package name space, where it will find gm_mean() you defined in utilities.R.
The third function in ExCluster is more problematic
Determine_HC_Distance <- function(x){ which(HC_cutree%in%x) }
because it references HC_cutree, which is not an argument. The correct solution is to update the function so that all symbols in the body of the function are either arguments or symbols from your package or the symbols your package imports. So
Determine_HC_Distance <- function(HC_cutree, x) { which(HC_cutree %in% x)
Of course the code where you use this function
HC_indices <- lapply(seq(NumClusters),FUN=Determine_HC_Distance)
has to be modified
HC_indices <- lapply(seq(NumClusters),FUN=Determine_HC_Distance, HC_cutree = HC_cutree)
The diversity of naming conventions in these functions is also confusing to an outsider -- is there some kind of code, where functions with _ do one thing, with . do another, etc? But probably it is just inconsistency and the code would really benefit from more consistency.
I see a lot of loops in your code, like
Generate_ES_dists <- function(Mean1,Var1){ x=length(Mean1) ES_mat <- matrix(0,nrow=x,ncol=x) # fill in nth row and jth column data for ES difference matrix for (n in seq(x-1)){ for (j in (n+1):x){ ES_mat[n,j] <- Calc.effect.size(Mean1[n],Mean1[j],Var1[n],Var1[j]) ES_mat[j,n] <- ES_mat[n,j] * -1 } } return(ES_mat) }
If you think about it, Calc.effect.size() works as well on scalar values as on vectors of values. Also, a matrix can be subset by a two-column matrix to update selected rows and columns. So one could first generate the vectors n and j, and then avoid most of the iteration
Generate_ES_dists_1 <- function(Mean1, Var1) { x <- length(Mean1) ES_mat <- matrix(0, nrow=x, ncol=x)
n <- rep(seq_len(x - 1), rev(seq_len(x - 1))) j <- unlist(lapply(seq_len(x - 1) + 1, seq, to = 10)) idx <- cbind(n, j) ES_mat[idx] <- Calc.effect.size(Mean1[n],Mean1[j],Var1[n],Var1[j]) ES_mat[ idx[, c(2, 1)] ] <- ES_mat[idx] * -1 ES_mat
}
This produces the same result but is about 10x faster than the original; this is more-or-less the usual case with vectorized code versus iteration.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Bioconductor/Contributions/issues/762#issuecomment-411578540, or mute the thread https://github.com/notifications/unsubscribe-auth/AlIAKZldOWXG_uqo-SfnWchAwgy4kZexks5uO2tWgaJpZM4UbE76 .
@RMTbioinfo : Thank you once the above changes suggested by @mtmorgan are implemented, please do a version bump and leave a message here and I will re-review your package. Cheers!
Hi Morgan,
I'm preparing to upload my recent batch of changes (as well as some other improvements we've made to our algorithm). However, I have one problem: GFF format files were originally intended to have optional data columns (i.e. more than 9 columns). However, our GFF files have 10 columns, due to adding an extra column for gene name (not just gene id). As a result, rtracklayer will not import our GFF files.
You mentioned in one of your previous e-mails that our GRangesFromGFF function was the same as rtracklayer::import, but this is not true, because rtracklayer will not handle more than 9 GFF columns.
What are the options here? We have very specific formatting requirements for our 9th column, which contains all of the transcript IDs present in each exon bin. We could recode the GFF_convert function and remove our exonic_part column, which is essentially redundant because that information is present in the first column. This would limit the GFF file to 9 columns and be compatible with rtracklayer.
However, I am still concerned that rtracklayer will not properly import our annotation format. And we require a unique GFF annotation format, as not current GFF annotation format fulfils our desires in any simple way.
-Matt
On Wed, Aug 8, 2018 at 1:55 PM, Martin Morgan notifications@github.com wrote:
just a few quick comments as I drive by...
For 1. use seq_len() rather than seq().
I don't understand why you would write a function GRangesFromGFF() when this is what rtracklayer::import() does.
You don't need to re-write your package to internally use GRanges (though many packages do this -- check out the 'Depends on me' / 'Import me' on the GenomicRanges landing page https://bioconductor.org/packages/GenomicRanges). Instead you MUST change the interface to your package to interoperate with standard Bioconductor objects like GRanges. So if a function visible to the user fun(df) accepts at data frame that has start and end coordinates, rename it fun_internal and write
fun <- function(granges) { df <- data.frame(start = start(granges)
result <- fun_internal(df) make result into a standard Bioconductor object, if possible
}
Your code, e.g., ExCluster() was pretty hard to parse. The things that make it difficult are (a) the internally defined functions (just make the top-level functions that are not exported from your namespace, (b) the very long function body (instead, break it into functions that each accomplish part of the task and can be implemented / debugged / tested / understood separately) (c) the very verbose error messages which is good but the long texts disrupt the programming logic, maybe overcome this by creating a 'dictionary' of error messages
.errors = list( one_error = "a very long description ... ... ) stop(.errors[["one_error"]])
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Bioconductor/Contributions/issues/762#issuecomment-411495870, or mute the thread https://github.com/notifications/unsubscribe-auth/AlIAKXQCPLo2x2bKRs81LCgTXWi4kVfJks5uOyYlgaJpZM4UbE76 .
What version of GFF supports more than 9 columns? If you're using GFF3, then use an attribute. GFF3 already has a predefined attribute for the name of something: Name
.
We are using a customized version of a GFF file similar to DEXSeq. We have eliminated the "source type" column and changed that to Ensembl Gene IDs as DEXseq has done, and our 9th column is a + separated string of transcript names. DEXseq use 9 columns, but the rest of their format does not follow standard GFF formatting.
We could reformat our GFF file to GFF3 and include multiple delimiters in a giant string, such as "gene_id=ENS000000001:001;gene_name=GeneA;transcriptid='...+......'"
Do you want us to reformat our GFF files to have a 9th column as I described above?
-Matt
On Mon, Aug 20, 2018 at 4:01 PM, Michael Lawrence notifications@github.com wrote:
What version of GFF supports more than 9 columns? If you're using GFF3, then use an attribute. GFF3 already has a predefined attribute for the name of something: Name.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Bioconductor/Contributions/issues/762#issuecomment-414444268, or mute the thread https://github.com/notifications/unsubscribe-auth/AlIAKbEGslUbA4H9UtvjGSPx8-g9Q1k8ks5uSxWvgaJpZM4UbE76 .
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "skipped, UNSUPPORTED". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
Yes, please use attributes rather than adding custom columns. To specify multiple values in an attribute, separate the values with commas. See the GFF3 spec.
So I've implemented a number of changes, highlighted in the NEWS file. Changes in Version 0.99.10
Most of the changes suggested by Martin have been implemented. I did not implement his suggested scalar vector speedups -- partially because I couldn't get his example to run, and couldn't quite figure out how to debug it and make it faster. However, once we submit our ExCluster publication, we are planning on doing some profiling to speed up the algorithm.
One big change which came to light was that our GFF files were not not compatible with rtracklayer. I have reformatted the GFF files to GFF3 format, and they are now compatible. In addition, GFF_convert now outputs a GRanges object, and both processCounts() and ExCluster() take said GRanges objects (and rtracklayer imported GFF3 files) as input.
The ExCluster() function is now broken down into 3 parts, and all functions & error messages are defined in separate R scripts. This should make ExCluster() easier to parse.
Thank you for making these updates. We really think it will enhance the usability of your package to be able to use the standard Bioconductor objects as input and output. A few other points:
vignette: In Details ExCluster Pipeline Update the installation to use BiocManager instead of BiocInstaller
if (!requireNamespace("BiocManager", quietly=TRUE))
install.packages("BiocManager")
BiocManager::install("ExCluster")
Toy dataset When I run plotExonlog2FC there are no results in the tempdir.
R Code: General:
Please address the above issues and comment back here when you are ready for me to look at the package again. Cheers, Lori
Thanks Lori!
I'll implement these changes ASAP. Out of curiosity, is this the last bit of fixes to the package? I'm sorry to bother you about this, but I'm trying to finish up my paper to submit to Genome Research, and the October "release" for Bioconductor is fast approaching. I'd like to get this package accepted as soon as possible. I don't mind making more changes, but it might be nice to get a comprehensive list of final changes required to accept the package.
Anyhow, I'll get these fixes back to you as soon as possible!
On Fri, Aug 31, 2018 at 9:44 AM lshep notifications@github.com wrote:
Thank you for making these updates. We really think it will enhance the usability of your package to be able to use the standard Bioconductor objects as input and output. A few other points:
vignette: In Details ExCluster Pipeline Update the installation to use BiocManager instead of BiocInstaller
if (!requireNamespace("BiocManager", quietly=TRUE)) install.packages("BiocManager") BiocManager::install("ExCluster")
Toy dataset When I run plotExonlog2FC there are no results in the tempdir.
R Code: General:
- There are a few notes in the build report about seq_len or seq_along for 1:...
- Use message instead of cat/print for printing output messages in code
- You can use rowMeans/colMeans and rowVars/colVars(fromlibrary(matrixStats)) instead of apply(matrix, 1, min). It will greatly improve performance for computation over matrices.
- There still is alot of repeated code in your functions. For example in ExClust_main_function.R There is a section #### NOW RUN X MORE INTERATIONS IF'PVAL' ... - The code in these sections is the same except for a single variable NumIterations - The code in this section can be moved to a function that takes in the value that can be repeatedly called or have a switch statement that determines the input with one call to the function - or some combination of both
Please address the above issues and comment back here when you are ready for me to look at the package again. Cheers, Lori
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Bioconductor/Contributions/issues/762#issuecomment-417668521, or mute the thread https://github.com/notifications/unsubscribe-auth/AlIAKffUP9A4OuHibCYEtDC9iG_HfQrPks5uWT2kgaJpZM4UbE76 .
When the above are implemented I'll reevaluate - I would assume that these will be the last round of suggested changes, perhaps one more after a final look - but we are very close to accepting.
Awesome, thanks so much!! I'll get back to you soon.
On Fri, Aug 31, 2018 at 1:43 PM lshep notifications@github.com wrote:
When the above are implemented I'll reevaluate - I would assume that these will be the last round of suggested changes, perhaps one more after a final look - but we are very close to accepting.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Bioconductor/Contributions/issues/762#issuecomment-417739871, or mute the thread https://github.com/notifications/unsubscribe-auth/AlIAKRP4RmwBLQpKIIoimDB2k_3sBcEfks5uWXXDgaJpZM4UbE76 .
Received a valid push; starting a build. Commits are:
2947695 Changes in Version 0.99.11 - Removed some duplicat...
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "skipped, UNSUPPORTED". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
Hi Lori,
I made the changes you requested and double checked. There should be no more instances of c(1:n), and I've removed the cat() and print(), changing them to message().
And thank you so much for suggesting matrixStats!! I played around with it for a day and it really sped up my code, so I'm using that in everything now. That's an incredible package for row/col computations on matrices.
I had one question if you have some input: We had some users testing ExCluster this week giving us feedback on how to improve it, and a couple people had issues plotting exon log2FCs due to not having Ghost Script. I used the 'bitmap' function because I assumed the PNG function would have issues on cluster computers without X11 forwarding. What would you suggest? I could add an option parameter to specify figure plotting as "PNG" or "bitmap" and give users that option, should have they issues. Ideally I could check whether they have access to Ghost Script and X11 forwarding, and pick the option that works in certain cases -- although I don't know how to check for access to those modules in R.
Other than that, I didn't find any other issues.
Yeah plotting can be tricky - I would say having an argument to specify the plotting function/output used is probably your best bet - that way you can always expand it in the future to other formats if need be. I wouldn't worry necessarily about checking a system to see if they have access - perhaps using a tryCatch and if it ERRORS out have a message that suggests setting a different option or at least points to the function argument that they can look up for help
I did actually play around with tryCatch but I couldn't get it working. How do you parse the output of tryCatch to determine if there was an error or not?
On Thu, Sep 13, 2018 at 10:06 AM lshep notifications@github.com wrote:
Yeah plotting can be tricky - I would say having an argument to specify the plotting function/output used is probably your best bet - that way you can always expand it in the future to other formats if need be. I wouldn't worry necessarily about checking a system to see if they have access - perhaps using a tryCatch and if it ERRORS out have a message that suggests setting a different option.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Bioconductor/Contributions/issues/762#issuecomment-421019400, or mute the thread https://github.com/notifications/unsubscribe-auth/AlIAKWFzVpvPvNSz23AOB_RcCt4PIxb9ks5uamZLgaJpZM4UbE76 .
tryCatch({
# code
} , error = function(err) {
# (optional) alternate code
# (optional) alternate message
stop("reason: ", conditionMessage(err),
"\n Please see argument plotting in function")
})
so for example
temp <- function(x){
tryCatch({
x + 5
}, error = function(err){
stop("reason: ", conditionMessage(err),
"\n Please try numeric input")
})
}
temp("something")
Error in value[[3L]](cond) :
reason: non-numeric argument to binary operator
Please try numeric input
Just wanted to follow up if you were making any changes to the plot function?
I did notice in the vignette you are still making reference to BiocInstaller or biocLite - Please change these to be BiocManager and BiocManager::install
source("https://bioconductor.org/biocLite.R")
biocLite("ExCluster")}
The above calls are no longer valid - This should be replaced with the following
if (!requireNamespace("BiocManager", quietly=TRUE))
install.packages("BiocManager")
BiocManager::install("ExCluster")
Hi Lori,
I'm actually finishing that right now. I had a couple presentations to do last week for my PhD program, so that took up some time. I'll replace the new BiocManager::install commands in the vignette.
Hopefully the rest of the package looks good other than the plotting function?
Thanks, -Matt
On Mon, Sep 24, 2018 at 1:00 PM lshep notifications@github.com wrote:
Just wanted to follow up if you were making any changes to the plot function?
I did notice in the vignette you are still making reference to BiocInstaller or biocLite - Please change these to be BiocManager and BiocManager::install
source("https://bioconductor.org/biocLite.R") biocLite("ExCluster")}
The above calls are no longer valid - This should be replaced with the following
if (!requireNamespace("BiocManager", quietly=TRUE)) install.packages("BiocManager") BiocManager::install("ExCluster")
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Bioconductor/Contributions/issues/762#issuecomment-424048981, or mute the thread https://github.com/notifications/unsubscribe-auth/AlIAKfimJbddSxnseEraLJGYdvcq-Nw4ks5ueQ_EgaJpZM4UbE76 .
Yes the rest of the changes look good.
Received a valid push; starting a build. Commits are:
ea43ace Made numerous changes to ExCluster, reflected in t...
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "skipped, UNSUPPORTED". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "skipped, UNSUPPORTED". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
Hi Lori,
I have finished fixing the code! If the package looks good, hopefully it can be accepted before the Friday deadline. I wanted to triple check everything before it being accepted, since I'd rather not release a broken package. Sorry if this causes problems due to a busy deadline.
There were several issues with ExCluster not properly writing files out in certain cases, and I did not want the entire ExCluster function to error out when plotting results failed (so the ExClust_results table could still be saved). I've managed to come up with a good way to plot results if possible and avoid errors. plotExonlog2FC accepts an input of "bitmap" or "PNG" and will attempt to use both options before failing, assuming the chosen option fails. Only machines without access to either Ghostscript or X11 forwarding will see plotting fail.
I updated the Vignette to have the following (copied from Bioconductor instructions):
chooseCRANmirror() install.packages("BiocManager") BiocManager::install("ExCluster")
The NEWS, DESCRIPTION, and Vignette have all been updated with October 2, 2018 as the date.
Hi Lori,
I think today (Friday) is the deadline for packages to be accepted for the new version of Bioconductor. Any chance the deadline could be extended if you can't review the package today? I know you're probably incredibly busy right now, so my apologies for bothering you.
-Matt
On Mon, Sep 24, 2018 at 1:23 PM lshep notifications@github.com wrote:
Yes the rest of the changes look good.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Bioconductor/Contributions/issues/762#issuecomment-424055934, or mute the thread https://github.com/notifications/unsubscribe-auth/AlIAKYLaG9skt4Q3OhXL2tF64UJ3tZlBks5ueRT-gaJpZM4UbE76 .
I will have a review for you later today - But today is only the deadline to submit to the tracker - You have until the 24th to have it accepted for inclusion
Your package has been accepted. It will be added to the Bioconductor Git repository and nightly builds. Additional information will be posed to this issue in the next several days.
Thank you for contributing to Bioconductor!
Oh, I'm so sorry! I read deadline for new packages and assumed it was acceptance. There's absolutely no rush then ;)
My supervisor thought the deadline was today, so he was asking if I got the acceptance e-mail.
On Fri, Oct 5, 2018 at 7:27 AM lshep notifications@github.com wrote:
I will have a review for you later today - But today is only the deadline to submit to the tracker - You have until the 24th to have it accepted for inclusion
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Bioconductor/Contributions/issues/762#issuecomment-427333698, or mute the thread https://github.com/notifications/unsubscribe-auth/AlIAKQZcIOkiMPVm0b47OWyEa_oVyRLrks5uh0ICgaJpZM4UbE76 .
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/RMTbioinfo.keys is not empty), then no further steps are required. Otherwise, do the following:
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 biocLite(\"ExCluster\")
. The package 'landing page' will be created at
https://bioconductor.org/packages/ExCluster
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.
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]'
[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 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.
I am familiar with the essential aspects of Bioconductor software management, including:
For help with submitting your package, please subscribe and post questions to the bioc-devel mailing list.