augur
augur copied to clipboard
Remove matplotlib and seaborn dependencies
Context
Augur supports a "full" installation that installs optional dependencies including cvxopt, matplotlib, and seaborn. Although cvxopt is required for titer models to work (arguably a dependency that should be installed anyway), the plotting modules are only used in an old titer model function and two test functions in the frequency estimation module (one and two).
Description and possible solution
We should remove the two plotting modules as dependencies, move the corresponding plotting code to documentation for the titer model and frequencies (respectively), move cvxopt to the main dependency list (now that we use the latest version that has pre-built wheels), and remove the "full" installation section of the project's setup module.
The related plotting code is effectively inaccessible to anyone who would want to use it from the command line and requires advanced knowledge of Augur's inner workings to get this code working from a Python shell/notebook. Moving the code to documentation would allow us to better document these Augur components and provide inline examples of what the plot outputs should look like.
Most of the hard work in addressing this issue would be the writing of documentation and testing of the old plotting code. The easier solution would be to delete the plotting code and associated dependencies completely.
Bumping this old issue because I had to exclude the "full" installation in my branch to add evofr
to the nextstrain/base. matplotlib
was causing an error in the image building process after I switched to Python 3.9
Should we just move cvxopt
to the main dependency list and deal with matplotlib
and seaborn
later?
More context on the usage of these, which I sifted thru before I knew about this issue :upside_down_face:
@rneher may have a preference about my recommended solution to this issue, but I still stand by the plan to:
- include cvxopt as a primary dependency
- drop matplotlib and seaborn as dependencies along with the "full" installation option
- move the plotting code from titers into documentation
Probably 1 and 2 would be fine.