google / deepvariant

DeepVariant is an analysis pipeline that uses a deep neural network to call genetic variants from next-generation DNA sequencing data.
BSD 3-Clause "New" or "Revised" License
3.12k stars 702 forks source link

Developers notes / environment for modifying code #792

Closed rickymagner closed 3 months ago

rickymagner commented 3 months ago

Hi, I wanted to try adding some custom channels to experiment with like in the tutorial here. I was wondering if there were any developer's notes on setting up an environment for good syntax highlighting, autocomplete, etc. for C++ with this project so I can better understand how to use the Nucleus library.

The build guide didn't seem to have anything to this effect. I tried using VSCode and CLion Nova, but can't seem to get the autocomplete to work on either. I'm guessing this is because the project is built using the Dockerfile and incorporates a few different languages, so it's not a "pure" C++ project.

Could any developers share some tips on their setup, or point me to a developer's guide? Thanks!

pichuan commented 3 months ago

Hi @rickymagner , to share my own experience, I work at Google so currently use an Google internal IDE. And, I actually don't use autocomplete myself. During my earlier times at Google, I'm actually an emacs user (and I used emacs -nw a lot). I have used VScode for smaller projects externally. And many years ago in a startup, I used Sublime Text when I wrote in JS. But, in all cases I don't really use the IDE features very much. So I might not be the best person to ask.

It's outside our support scope to provide suggestions for IDE. And of all the engineerings teams I've been on, people seem to have different preferences anyway.

I'll leave this open a bit to see if any other readers want to share your own setup :)

kishwarshafin commented 3 months ago

hi @rickymagner ,

In projects like these, I used to prefer CLion for an IDE. It has many customizable features. You can install the python extension for python support. You can also add some autocomplete extensions (at least last year it was the case). However, it's mostly personal preference in most cases. Hope you find something that works for you.

akolesnikov commented 3 months ago

DeepVariant is built with bazel. Internally we have an add-on in CLion to import bazel project. If this plug-in is available you can try to do that. Bazel project is in the file named "BUILD" which exists in all sub-directories. If importing bazel project is not available then you may need to create your project from scratch in your IDE and then add all source files.

rickymagner commented 3 months ago

Thanks for sharing your thoughts! I was able to get some syntax highlighting to work in VSCode (though not autocomplete beyond local variables). I might try out CLion and set it up to be configured with Bazel so that it might be more aware of dependencies for autocompleting. Thanks!