I found that the DropletUtils has been developed from 1.2.2 to 1.3.10 so quickly
Some understanding of the Bioconductor release cycle would be instructive here. Currently, 1.2.2 is the BioC-release version (even middle number), while 1.3.10 is the BioC-devel version (odd middle number). The former is the stable release and the latter is in development - they are two separate streams to allow analysts to work with the stable version and also developers to add new features without immediately breaking people's analyses. The only "jump" in versions occurs in the next Bioconductor release, when 1.2.* will be retired and whatever code is in 1.3.10 will become 1.4.0, i.e., the next BioC-release.
If you are using BioC-devel packages, you are implicitly agreeing to be a guinea pig for changes and new features. We usually do a good job of keeping the BioC-devel packages reasonably functional during development, but breaking changes can happen daily that would only normally require attention in the 6 monthly releases.
whats the new feature in the new version.
It's often a good idea to look at the NEWS
file here. This describes the changes that have occured; I'll provide some further motivation below.
I found that the barcodeRanks function results can not get only by "$", its has a attribute called "metadata".
The output format was changed to a DataFrame
to better represent the relationship between the total
and rank
statistics for the same barcode. Each row now corresponds to a barcode and contains all the statistics for that barcode. However, the knee and inflection points don't correspond to any single barcode, but to the entire curve. As such, they are stored in the metadata
of the output DataFrame
rather than as columns (which wouldn't make much sense).
This was introduced as a breaking change because it is generally difficult to provide back-compatibility for different output formats. If DropletUtils were more mature and if barcodeRanks
was widely used, I would have probably gone through the more laborious deprecation cycle. But... well, sometimes you just gotta rip the bandage straight off.
I have done my sample by using version 1.2.2 already , should me have to update the packages ?
That's a decision for you to make, but keep in mind that all future versions of the package will not exhibit exactly the same behaviour as it did before, as I will discuss below.
Does the results of emptyDrops can be reproducted ?
The pseudo-random number generator in emptyDrops
was changed in 1.3.* to ensure correct generation of independent streams of pseudo-random numbers that was agnostic to the number of workers used during parallelization. This will change the Monte Carlo p-value calculations by a little; you can lessen the effect of any change by simply increasing the number of iterations that you use in 1.2.2. The more iterations, the less difference you should observe as the Monte Carlo p-values converge to their exact values.
Thanks Aaron. I benefit a lot from your answers !
Best Regards