Comments (9)
This is motivated by trying to keep the JAR size of fgbio as small as possible. fulcrumgenomics/fgbio#483. Another idea that could help is having the inflater/deflater parts of the code in a separate JAR than the SW/HMM portions, so we don't have to include the latter.
Examining the size of the dependencies included (using this gist) we see:
Total dependencies size: 4.52 Mb
htsjdk-2.9.0.jar 1,528.30 kb
log4j-core-2.5.jar 1,080.17 kb
snappy-java-1.0.3-rc3.jar 967.05 kb
commons-jexl-2.1.1.jar 261.36 kb
commons-compress-1.4.1.jar 235.71 kb
commons-io-2.4.jar 180.80 kb
log4j-api-2.5.jar 143.32 kb
xz-1.5.jar 97.22 kb
ngs-java-1.2.4.jar 72.40 kb
commons-logging-1.1.1.jar 59.26 kb
gatk-native-bindings-0.1.0-rc-1.jar 6.33 kb
from gkl.
Could we not just use commons-logging
, or the logging in htsjdk
?
from gkl.
Hi @nh13 - thanks for the input. We're reviewing this suggestion this week. I don't see any issue with logging elsewhere as you suggest. Which GKL components does fgbio use? The Deflater?
from gkl.
@mepowers we are starting to use the inflater and deflater. This was also an issue in GATK and Picard (broadinstitute/picard#883). They solved it by adding a configuration file and muting the logging, but that means they also include the log4j transitive dependency, making the JAR they distribute larger.
from gkl.
Log4j can be replaced with the log4j-over-slf4j
bridge API and the redirected to the Java stock logging API using the slf4j-jdk14
adaptor. See for details here.
from gkl.
@pdtommaso thank-you! I did see that but I am trying to reduce the number of dependencies so I am not thrilled to include a few more to bridge the logging frameworks. I’ll look how much size they add.
from gkl.
@nh13 - we discussed this internally as a team today and unfortunately updating the logging isn't a priority right now. We do not have plans to change this.
from gkl.
Would you accept a PR to remove logging?
from gkl.
@nh13 - we wouldn't. We're only requesting PRs for bug fixes.
from gkl.
Related Issues (20)
- How to make the system use these libraries? HOT 1
- GATK4 HaplotypeCaller native SmithWaterman: core dumps and JVM errors HOT 2
- Intermittent core dump in native pair hmm HOT 5
- Does GKL have plans to support ARM architecture optimization? HOT 2
- Help2man is also needed when building. HOT 2
- PairHMM stripe initialization of `M_t_1_y` is wrong HOT 1
- GKL uses exploitable Log4J 2 version HOT 1
- GKL should ideally use commons-logging or similar instead of log4j HOT 2
- `smithWatermanBackTrack` is being shared between AVX2 and AVX-512 HOT 2
- Release 0.8.9 is not on maven HOT 3
- Potential memory leak observed in unusual HaplotypeCaller behavior HOT 1
- Help, where is the function impl of 'compute_fp_avx512s' ?
- Does GKL support arm architecture? HOT 2
- Confusing warning message in IntelInflater HOT 1
- IntelDeflater intermittently fails to properly compress outputs with GKL 0.8.8 HOT 3
- Segfault in the native PairHMM on certain CPU / JVM combinations
- Deflater.needsInput() Always returns true HOT 4
- the way of docker or apptainer install
- GATK AVX accelerated pairHMM Segfault issue with Long reads - Consistently around the same region
- SmithWaterman result inconsistency by optimization level
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gkl.