Skip to content
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

Make several Funcotator methods and fields protected instead of private #8124

Merged
merged 1 commit into from
Dec 16, 2022

Conversation

bbimber
Copy link
Contributor

@bbimber bbimber commented Dec 8, 2022

Hello - we're interested in creating a custom extension of Funcotator with different output formats. This PR should be quite low risk - it just converts a handful of privates fields/methods to protected to make it easier to extend this tool.

@bbimber
Copy link
Contributor Author

bbimber commented Dec 14, 2022

@cmnbroad hi chris - sorry to ping you directly here, but does GATK have someone watching PRs? we're hoping to extend funcotator and this PR has some very minor changes from private->protected to enable that. is this something GATK would consider?

@cmnbroad
Copy link
Collaborator

@bbimber I'm pinging the funcotator owner who needs to approve this - not sure when he'll respond though. @jonn-smith Thoughts on this ?

Copy link
Collaborator

@jonn-smith jonn-smith left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

@bbimber
Copy link
Contributor Author

bbimber commented Dec 15, 2022

@cmnbroad and @jonn-smith Thanks! It now says "First-time contributors need a maintainer to approve running workflows" - does something else need to be approved? I'm not actually a first-time GATK contributor, but I'm not sure how that logic is determined/enforced. I dont have merge privileges' either.

@jonn-smith: good to virtually meet you. As I alluded to above, my goal is to extend funcotator to make a new output format that more or less takes the annotations and writes them as discrete INFO fields, rather than the concatenated string. This PR will hopefully largely unblock us. As this develops, do you have any interest in us trying to contribute features back into GATK, or should be just keep separate.

There may also be a handful of more minor extensions as we use this more, such as adding a config option to include/exclude specific VCF INFO fields, rather than always transfer 100% of them (which appears to be behavior today, but I just reviewed briefly). Obviously these would be case-by-case, but I'm happy to try to push features back here if you have interest/time in reviewing them.

Copy link
Member

@lbergelson lbergelson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bbimber This seems harmless to me. It's probably not ideal to subclass funcotator since it's really not designed for it / doesn't have a stable api going forward, but I suspect there's no easy path to do what you want to do to do otherwise.

@jonn-smith Do you have any objections / alternate suggestions?

@lbergelson
Copy link
Member

@jonn-smith woops, for some reason I had an ancient tab open here and I didn't notice that you'd already replied.

@bbimber
Copy link
Contributor Author

bbimber commented Dec 15, 2022

@lbergelson and @jonn-smith: Thanks and yes, i understand it's not a guaranteed stable tool. If I come up with anything that seems like a candidate change in core funcotator I will reach out here. Tests passed - would someone be able to actually merge the PR? Thanks.

@jonn-smith
Copy link
Collaborator

@bbimber Nice to virtually meet you too. I think we've probably interacted once or twice in the past as well.

I'm glad to hear you're planning on using and extending Funcotator! It would be great if you could push back the useful changes you make. FYI - come the new year, I'm going to be refactoring several things in the Funcotator core that will make it much more extensible (mostly around GTF parsing). I'm also going to fix a few bugs involving variants that span transcript and contig boundaries. It's been a long time coming - I've just been working on a set of high-priority tasks that needed my attention.

Also - Funcotator is production-ready for human data, so it should basically be "guaranteed stable" (modulo certain known issues like the ones I referenced above).

@jonn-smith jonn-smith merged commit 564be54 into broadinstitute:master Dec 16, 2022
@bbimber bbimber deleted the extendingFuncotator branch December 16, 2022 17:02
@bbimber
Copy link
Contributor Author

bbimber commented Dec 16, 2022

@jonn-smith Thanks. My lab actually works with macaque data and one driver of this project is building a custom data source. The tweaks to formatting and discrete INFO fields is primarily about making the results easier to view in standard genome browsers. I'll be working on this in Jan and will try to push changes back here if they seem to make sense.

@jonn-smith
Copy link
Collaborator

@bbimber Ah, very nice. Yeah - readability of the annotations has always been an issue. I usually convert the output to TSV/MAF to visually inspect fields after running it (in the code there are other options).

FYI, The parser updates I need to make are so that Funcotator better supports other species. It's currently too restrictive on the GTF files used as the primary transcriptome references.

@bbimber
Copy link
Contributor Author

bbimber commented Dec 16, 2022

@jonn-smith, yeah, I noticed the restrictive GTF parsing. I "solved" this by using a dummy GTF with one fake line. For our purposes we care about transferring annotations, not really about categorizing their coding potential (which already happened upstream).

@bbimber
Copy link
Contributor Author

bbimber commented Dec 19, 2022

@jonn-smith do you know if there is a nightly build of GATK pushed to a maven repo anymore? I dont see it here: https://broadinstitute.jfrog.io/ui/native/libs-snapshot/org/broadinstitute/gatk/, nor in libs-snapshot-local.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants