-
Notifications
You must be signed in to change notification settings - Fork 596
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Funcotation Engine Refactoring #5134
Conversation
@LeeTL1220 can you fix broken build prior to review? |
@jonn-smith @droazen I forgot to run the tests on my laptop before PR. Anyway, should be okay now. If not, I'll fix (again). |
@jonn-smith @droazen Had to make two very small changes. Should be ready for review if tests pass. |
Codecov Report
@@ Coverage Diff @@
## master #5134 +/- ##
================================================
+ Coverage 21.259% 86.858% +65.599%
- Complexity 4663 30392 +25729
================================================
Files 1110 1833 +723
Lines 65822 139740 +73918
Branches 10536 15841 +5305
================================================
+ Hits 13993 121375 +107382
+ Misses 49755 12826 -36929
- Partials 2074 5539 +3465
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor comments and questions. In general it looks good.
I'm wondering if there is a way to restrict the access to some of the exposed methods that are used only in testing. My guess is no, but there could be some Java wizardry that can make it happen (aside from reflection, which would work but be really nasty).
Maybe @droazen or @lbergelson have an idea.
src/main/java/org/broadinstitute/hellbender/engine/FeatureManager.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/engine/GATKTool.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/dataSources/DataSourceUtils.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/DataSourceFuncotationFactory.java
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/dataSources/DataSourceUtils.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/engine/FuncotationEngine.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/engine/FuncotationEngine.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/engine/FuncotationEngine.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/engine/FuncotationEngine.java
Outdated
Show resolved
Hide resolved
...st/java/org/broadinstitute/hellbender/tools/funcotator/engine/FuncotationEngineUnitTest.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added my comments @LeeTL1220. I've proposed a simple refactoring surrounding the creation of the FeatureInputs that should allow you to further reduce the amount of code left in Functotator
itself.
src/main/java/org/broadinstitute/hellbender/engine/FeatureManager.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/engine/GATKTool.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/engine/GATKTool.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/engine/GATKTool.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/Funcotator.java
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/engine/FuncotationEngine.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/DataSourceFuncotationFactory.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/dataSources/DataSourceUtils.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/engine/FuncotationEngine.java
Outdated
Show resolved
Hide resolved
src/main/java/org/broadinstitute/hellbender/tools/funcotator/engine/FuncotationEngine.java
Outdated
Show resolved
Hide resolved
A large refactoring of the architecture of Funcotator to make the creation of annotations separate from the command line interface. This will enable better testing of the annotation functionality by allowing for unit tests that can test the created funcotations directly (as opposed to requiring integration tests for the same purpose).
cbed1ec
to
5a3b039
Compare
@droazen back to you for a final look-over. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Final review complete, back to @jonn-smith for some last changes. Merge after addressing this round of comments.
Summary: I think we can push a bit more code out of Funcotator
and into the FuncotatorEngine
, and I also would like to try to eliminate some parallel test-only codepaths.
FuncotationEngine
class. This is meant to decouple the CLI from the funcotation generation.null
for this attribute.