Releases: mskilab-org/JaBbA
v1.1
JaBbA v1.1
This is a minor release of JaBbA, a framework for genome graph inference from bulk whole-genome short read sequencing.
This release enables the use of Gurobi for MIP optimization. Like CPLEX, Gurobi is a proprietary solver but offers a free academic license. To run JaBbA with Gurobi, you will need to install Gurobi and its R interface.
Then, run with the flag --gurobi TRUE
:
jba ${JABBA_PATH}/junctions.vcf ${JABBA_PATH}/coverage.txt --gurobi TRUE
Please note that you may also need to install an updated version of gGnome which supports Gurobi.
Additional changes are detailed in the changelog below.
What's Changed
- save purity ploidy values to a table by @ShaiberAlon in #55
- transform with rel2abs before saving jabba.simple.png plot by @ShaiberAlon in #56
- read.junctions by @zining01 in #58
- fix jba missing default bug by @zining01 in #59
- Gurobi by @zining01 in #63
- fix bed file cov input and jba defaults by @zining01 in #60
Full Changelog: v1.0...v1.1
v1.0
JaBbA v1.0 Release Notes
JaBbA builds genome graphs based on junctions and read depth from whole genome sequencing. A detailed introduction to JaBbA and its applications is in our paper Hadi et al. 2020.
Mixed integer linear programming
The main change to JaBbA in this release is the switch from mixed integer quadratic (QP) to linear programming (LP) for copy number inference; by default, the the L1 (rather than L2) norm of the read depth residual is minimized. The objective function can be reverted to the original quadratic formulation with the flag --lp FALSE
.
Other parameters
epgap
epgap
is the relative MIP gap tolerance between the objective function value at the best integer solution vs. the LP/QP relaxation. The suggested value for epgap
when running JaBbA as an integer linear program (LP) is 1e-5
(default). For QP JaBbA, the suggested value is 1e-2
.
tilim
tilim
controls the alotted time in seconds for optimization. We recommend allowing at least 6000 s (default) although in practice the required time is substantially lower for moderately sized inputs (< 1K junctions and < 10K segments).
slack
slack
is the L0 penalty on the number of loose ends. Higher values will result in fewer loose ends. The value for slack depends on the width of coverage bins. For 200 bp bins, we recommend a value of 100 (default).
Infinite sites constraints
According to the infinite sites model, multiple rearrangements are unlikely to occur at the same base pair. In JaBbA it is now possible to incorporate these constraints, which disallow multiple junctions/loose ends from occuring at the same site, by using the flag --ism
.
Versioning
With this release we introduce versioning for the first time for JaBbA. Going forward, we plan to occasionally release minor versions that include minor enhancements and bug fixes. Minor releases should not fundamentally change the way JaBbA works. When we make significant changes that either significantly modify a major functionality or introduce a new major feature then we will release a major version (v2.0).