Warning About isobar Incorrect Calculation And Lack of Maintenance
Entering edit mode
Dario Strbenac ★ 1.5k
Last seen 19 days ago

Isobar is a Bioconductor package for the normalisation and analysis of TMT and iTRAQ data. It has over 50 citations, but has at least one important normalisation bug.

Isotope impurity correction is an essential step which takes a table of impurity percentages and calculates a deconvoluted set of quantities. Isobar solves the incorrect linear model, which leads to incorrect normalised values.

Consider the following matrix of impurities:

    labels <- c("114", "115", "116")
    impurity <- matrix(c(0.96, 0.03, 0.01,
                         0.02, 0.93, 0.05,
                         0.02, 0.04, 0.94), byrow = TRUE, ncol = 3,
                       dimnames = list(labels, labels))

and the following ion counts

   counts <- matrix(c(110, 209, 481), nrow = 1)

The impurity matrix has the labels as rows, and the percentages of the labels actually weighing the mass in the columns. For example, 96% of the labelling reagent labelled as 114 weighs the amount it should. However, 3% of the 114 labelling reagent labeled weigh 115, rather than 114. Based on this, the expected normalised values are 100, 200, and 500.

The code used by isobar in the correctIsotopeImpurities function simplifies to :

    corrected <- t(apply(counts, 1, function(spectrum) {
        solve(impurity, spectrum)

which is the incorrect linear model and produces the wrong normalised values. The size of the error can be large if a large measured value is adjacent to a small measured value. The correct model is simply :

    solve(t(impurity), spectrum)

The authors were notified of this a few months ago, but have ignored the bug. MSnbase previously had the same error, but was fixed by the maintainer, as described in the NEWS file. To avoid publishing incorrect proteomics results, it is advisable to avoid using Isobar until the authors decide to resume maintaining their software.

isobar Shovelware • 1.0k views
Entering edit mode
florian.bw ▴ 20
Last seen 5.7 years ago
United States

Dear Dario Strbenac,

Thank you very much for reporting this error. I'm sorry for the slow response, and even more that this bug was in the package for so long.  It is fixed with the most current development version (v1.16.2), and I will see that I get it into the Bioconductor release versions. The package is not actively developed anymore, but in the future I will be more responsive to bug reports, at least.


Florian Breitwieser

Entering edit mode

Did you commit the changes to the Subversion repository of Bioconductor ? The SVN log doesn't show any recent changes to the development version of your package. It is also unchanged for the release variety, so it seems that no changes were made anywhere.

Entering edit mode

Also, 1.16.2 is not a valid version for devel (the middle segment should be odd in devel). We have a pre-commit hook that rejects commits with invalid versions so perhaps you ran into that and that is why the change has not been checked in.

I do see a recent commit to https://github.com/fbreitwieser/isobar but you need to explicitly set that up to link to our svn repo and you must explicitly commit to svn with git svn dcommit, see the documentation.

Entering edit mode

I made the commits to my Github repo, however the git-svn bridge has been discontinued so it was not automatically synced with the SVN. 


Thank you for the information, Dan, I will set-up the sync with SVN.

Entering edit mode

The release version (BioC 3.2) and the development version have the bug now fixed in the SVN. I added the following message to the NEWS file:

- Fixed critical bug in isotope impurity correction method. Isobar used a transposed matrix for isotope impurity correction prior to this fix. Quantification results will change when isotope impurity correction is performed. Bug discovered by Dario Strbenac https://support.bioconductor.org/p/74301/#79900).


Login before adding your answer.

Traffic: 391 users visited in the last hour
Help About
Access RSS

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6