phbradley / conga

Clonotype Neighbor Graph Analysis
MIT License
83 stars 19 forks source link

subfigures (axes, gene symbols, features) cut off #39

Closed ViHammer closed 2 years ago

ViHammer commented 2 years ago

I am testing Conga with the provided Human PBMC dataset. I noticed that the axis labels, gene symbols, and features are cut off. Additionally the plots have slightly different proportions (compressed along the x axis) compared to the results shown in the Examples section.

tmp_hs_pbmc_graph_vs_graph_logos

My Conda environment:

# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       1_gnu    conda-forge
alabaster                 0.7.12                     py_0    conda-forge
alsa-lib                  1.2.3                h516909a_0    conda-forge
anndata                   0.7.6            py36h5fab9bb_0    conda-forge
argon2-cffi               21.1.0           py36h8f6f2f9_0    conda-forge
arpack                    3.7.0                hdefa2d7_2    conda-forge
async_generator           1.10                       py_0    conda-forge
atk-1.0                   2.36.0               h3371d22_4    conda-forge
attrs                     21.4.0             pyhd8ed1ab_0    conda-forge
babel                     2.9.1              pyh44b312d_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
bleach                    4.1.0              pyhd8ed1ab_0    conda-forge
blosc                     1.21.0               h9c3ff4c_0    conda-forge
brotlipy                  0.7.0           py36h8f6f2f9_1001    conda-forge
bzip2                     1.0.8                h7f98852_4    conda-forge
c-ares                    1.18.1               h7f98852_0    conda-forge
ca-certificates           2021.10.8            ha878542_0    conda-forge
cached-property           1.5.2                hd8ed1ab_1    conda-forge
cached_property           1.5.2              pyha770c72_1    conda-forge
cairo                     1.16.0            ha00ac49_1009    conda-forge
certifi                   2021.5.30        py36h5fab9bb_0    conda-forge
cffi                      1.14.6           py36hd8eec40_1    conda-forge
charset-normalizer        2.0.10             pyhd8ed1ab_0    conda-forge
colorama                  0.4.4              pyh9f0ad1d_0    conda-forge
cryptography              35.0.0           py36hb60f036_0    conda-forge
cycler                    0.11.0             pyhd8ed1ab_0    conda-forge
dbus                      1.13.6               h5008d03_3    conda-forge
decorator                 5.1.1              pyhd8ed1ab_0    conda-forge
defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
docutils                  0.17.1           py36h5fab9bb_0    conda-forge
dunamai                   1.8.0              pyhd8ed1ab_0    conda-forge
entrypoints               0.3             pyhd8ed1ab_1003    conda-forge
expat                     2.4.3                h9c3ff4c_0    conda-forge
fftw                      3.3.10          nompi_h77c792f_102    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 hab24e00_0    conda-forge
fontconfig                2.13.94              ha180cfb_0    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
freetype                  2.10.4               h0708190_1    conda-forge
fribidi                   1.0.10               h36c2ea0_0    conda-forge
gdk-pixbuf                2.42.6               h04a7f16_0    conda-forge
get_version               3.2                pyhd8ed1ab_0    conda-forge
gettext                   0.19.8.1          h73d1719_1008    conda-forge
ghostscript               9.54.0               h9c3ff4c_1    conda-forge
giflib                    5.2.1                h36c2ea0_2    conda-forge
glpk                      4.65              h9202a9a_1004    conda-forge
gmp                       6.2.1                h58526e2_0    conda-forge
graphite2                 1.3.13            h58526e2_1001    conda-forge
graphviz                  2.50.0               h85b4f2f_1    conda-forge
gst-plugins-base          1.18.5               hf529b03_3    conda-forge
gstreamer                 1.18.5               h9f60fe5_3    conda-forge
gtk2                      2.24.33              h539f30e_1    conda-forge
gts                       0.7.6                h64030ff_2    conda-forge
h5py                      3.1.0           nompi_py36hc1bc4f5_100    conda-forge
harfbuzz                  3.2.0                hb4a5f5f_0    conda-forge
hdf5                      1.10.6          nompi_h6a2412b_1114    conda-forge
icu                       69.1                 h9c3ff4c_0    conda-forge
idna                      3.3                pyhd8ed1ab_0    conda-forge
igraph                    0.9.6                ha184e22_0    conda-forge
imagemagick               7.1.0_20        pl5321hb118871_0    conda-forge
imagesize                 1.3.0              pyhd8ed1ab_0    conda-forge
importlib-metadata        4.8.1            py36h5fab9bb_0    conda-forge
importlib_metadata        4.8.1                hd8ed1ab_1    conda-forge
ipykernel                 5.3.4            py36h5ca1d4c_0    anaconda
ipython                   5.8.0                    py36_1    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
jbig                      2.1               h7f98852_2003    conda-forge
jinja2                    3.0.3              pyhd8ed1ab_0    conda-forge
joblib                    1.1.0              pyhd8ed1ab_0    conda-forge
jpeg                      9e                   h7f98852_0    conda-forge
jsonschema                4.1.2              pyhd8ed1ab_0    conda-forge
jupyter_client            7.1.2              pyhd8ed1ab_0    conda-forge
jupyter_core              4.8.1            py36h5fab9bb_0    conda-forge
jupyterlab_pygments       0.1.2              pyh9f0ad1d_0    conda-forge
kiwisolver                1.3.1            py36h605e78d_1    conda-forge
krb5                      1.19.2               hcc1bbae_3    conda-forge
lcms2                     2.12                 hddcbb42_0    conda-forge
ld_impl_linux-64          2.36.1               hea4e1c9_2    conda-forge
legacy-api-wrap           1.2                        py_0    conda-forge
leidenalg                 0.8.7            py36hc4f0c31_0    conda-forge
lerc                      3.0                  h9c3ff4c_0    conda-forge
libblas                   3.9.0           13_linux64_openblas    conda-forge
libcblas                  3.9.0           13_linux64_openblas    conda-forge
libclang                  13.0.0          default_hc23dcda_0    conda-forge
libcurl                   7.81.0               h2574ce0_0    conda-forge
libdeflate                1.8                  h7f98852_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h516909a_1    conda-forge
libevent                  2.1.10               h9b69904_4    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-ng                 11.2.0              h1d223b6_12    conda-forge
libgd                     2.3.3                h3cfcdeb_1    conda-forge
libgfortran-ng            11.2.0              h69a702a_12    conda-forge
libgfortran5              11.2.0              h5c6108e_12    conda-forge
libglib                   2.70.2               h174f98d_1    conda-forge
libgomp                   11.2.0              h1d223b6_12    conda-forge
libiconv                  1.16                 h516909a_0    conda-forge
liblapack                 3.9.0           13_linux64_openblas    conda-forge
libllvm10                 10.0.1               he513fc3_3    conda-forge
libllvm13                 13.0.0               hf817b99_0    conda-forge
libnghttp2                1.46.0               h812cca2_0    conda-forge
libnsl                    2.0.0                h7f98852_0    conda-forge
libogg                    1.3.4                h7f98852_1    conda-forge
libopenblas               0.3.18          pthreads_h8fe5266_0    conda-forge
libopus                   1.3.1                h7f98852_1    conda-forge
libpng                    1.6.37               h21135ba_2    conda-forge
libpq                     14.1                 hd57d9b9_1    conda-forge
librsvg                   2.52.5               hc3c00ef_1    conda-forge
libsodium                 1.0.18               h36c2ea0_1    conda-forge
libssh2                   1.10.0               ha56f1ee_2    conda-forge
libstdcxx-ng              11.2.0              he4da1e4_12    conda-forge
libtiff                   4.3.0                h6f004c6_2    conda-forge
libtool                   2.4.6             h9c3ff4c_1008    conda-forge
libuuid                   2.32.1            h7f98852_1000    conda-forge
libvorbis                 1.3.7                h9c3ff4c_0    conda-forge
libwebp                   1.2.2                h3452ae3_0    conda-forge
libwebp-base              1.2.2                h7f98852_1    conda-forge
libxcb                    1.13              h7f98852_1004    conda-forge
libxkbcommon              1.0.3                he3ba5ed_0    conda-forge
libxml2                   2.9.12               h885dcf4_1    conda-forge
libzlib                   1.2.11            h36c2ea0_1013    conda-forge
llvmlite                  0.36.0           py36h05121d2_0    conda-forge
louvain                   0.7.0            py36hf105032_1    conda-forge
lz4-c                     1.9.3                h9c3ff4c_1    conda-forge
lzo                       2.10              h516909a_1000    conda-forge
markupsafe                2.0.1            py36h8f6f2f9_0    conda-forge
matplotlib                3.3.4            py36h5fab9bb_0    conda-forge
matplotlib-base           3.3.4            py36hd391965_0    conda-forge
metis                     5.1.0             h58526e2_1006    conda-forge
mistune                   0.8.4           py36h8f6f2f9_1004    conda-forge
mock                      4.0.3            py36h5fab9bb_1    conda-forge
mpfr                      4.1.0                h9202a9a_1    conda-forge
mysql-common              8.0.28               ha770c72_0    conda-forge
mysql-libs                8.0.28               hfa10184_0    conda-forge
natsort                   8.0.2              pyhd8ed1ab_0    conda-forge
nbclient                  0.5.9              pyhd8ed1ab_0    conda-forge
nbconvert                 6.0.7            py36h5fab9bb_3    conda-forge
nbformat                  5.1.3              pyhd8ed1ab_0    conda-forge
ncurses                   6.3                  h9c3ff4c_0    conda-forge
nest-asyncio              1.5.4              pyhd8ed1ab_0    conda-forge
networkx                  2.6.3              pyhd8ed1ab_1    conda-forge
notebook                  6.3.0            py36h5fab9bb_0    conda-forge
nspr                      4.32                 h9c3ff4c_1    conda-forge
nss                       3.74                 hb5efdd6_0    conda-forge
numba                     0.53.1           py36h1328434_1    conda-forge
numexpr                   2.7.3            py36h0cdc3f0_0    conda-forge
numpy                     1.19.5           py36hfc0c790_2    conda-forge
olefile                   0.46               pyh9f0ad1d_1    conda-forge
openjpeg                  2.4.0                hb52868f_1    conda-forge
openssl                   1.1.1l               h7f98852_0    conda-forge
packaging                 21.3               pyhd8ed1ab_0    conda-forge
pandas                    1.1.5            py36h284efc9_0    conda-forge
pandoc                    2.17.0.1             ha770c72_1    conda-forge
pandocfilters             1.5.0              pyhd8ed1ab_0    conda-forge
pango                     1.48.10              h54213e6_2    conda-forge
patsy                     0.5.2              pyhd8ed1ab_0    conda-forge
pcre                      8.45                 h9c3ff4c_0    conda-forge
perl                      5.32.1          1_h7f98852_perl5    conda-forge
pexpect                   4.8.0              pyh9f0ad1d_2    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    8.3.2            py36h676a545_0    conda-forge
pip                       21.3.1             pyhd8ed1ab_0    conda-forge
pixman                    0.40.0               h36c2ea0_0    conda-forge
pkg-config                0.29.2            h36c2ea0_1008    conda-forge
prometheus_client         0.13.0             pyhd8ed1ab_0    conda-forge
prompt_toolkit            1.0.15                     py_1    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pygments                  2.11.2             pyhd8ed1ab_0    conda-forge
pynndescent               0.5.6              pyh6c4a22f_0    conda-forge
pyopenssl                 21.0.0             pyhd8ed1ab_0    conda-forge
pyparsing                 3.0.7              pyhd8ed1ab_0    conda-forge
pyqt                      5.12.3           py36h5fab9bb_7    conda-forge
pyqt-impl                 5.12.3           py36h7ec31b9_7    conda-forge
pyqt5-sip                 4.19.18          py36hc4f0c31_7    conda-forge
pyqtchart                 5.12             py36h7ec31b9_7    conda-forge
pyqtwebengine             5.12.1           py36h7ec31b9_7    conda-forge
pyrsistent                0.17.3           py36h8f6f2f9_2    conda-forge
pysocks                   1.7.1            py36h5fab9bb_3    conda-forge
pytables                  3.6.1            py36hb7ec5aa_3    conda-forge
python                    3.6.15          hb7a2778_0_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-igraph             0.9.6            py36h644ed5e_0    conda-forge
python_abi                3.6                     2_cp36m    conda-forge
pytz                      2021.3             pyhd8ed1ab_0    conda-forge
pyzmq                     22.3.0           py36h7068817_0    conda-forge
qt                        5.12.9               ha98a1a1_5    conda-forge
readline                  8.1                  h46c0cb4_0    conda-forge
requests                  2.27.1             pyhd8ed1ab_0    conda-forge
scanpy                    1.7.2              pyhdfd78af_0    bioconda
scikit-learn              0.24.2           py36hc89565f_1    conda-forge
scipy                     1.5.3            py36h81d768a_1    conda-forge
seaborn                   0.11.2               hd8ed1ab_0    conda-forge
seaborn-base              0.11.2             pyhd8ed1ab_0    conda-forge
send2trash                1.8.0              pyhd8ed1ab_0    conda-forge
setuptools                49.6.0           py36h5fab9bb_3    conda-forge
setuptools-scm            6.4.2              pyhd8ed1ab_0    conda-forge
setuptools_scm            6.4.2                hd8ed1ab_0    conda-forge
simplegeneric             0.8.1                      py_1    conda-forge
sinfo                     0.3.1                      py_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
snowballstemmer           2.2.0              pyhd8ed1ab_0    conda-forge
sphinx                    4.4.0              pyh6c4a22f_1    conda-forge
sphinxcontrib-applehelp   1.0.2                      py_0    conda-forge
sphinxcontrib-devhelp     1.0.2                      py_0    conda-forge
sphinxcontrib-htmlhelp    2.0.0              pyhd8ed1ab_0    conda-forge
sphinxcontrib-jsmath      1.0.1                      py_0    conda-forge
sphinxcontrib-qthelp      1.0.3                      py_0    conda-forge
sphinxcontrib-serializinghtml 1.1.5              pyhd8ed1ab_1    conda-forge
sqlite                    3.37.0               h9cd32fc_0    conda-forge
statsmodels               0.12.2           py36he33b4a0_0    conda-forge
stdlib-list               0.7.0                      py_2    conda-forge
suitesparse               5.10.1               hd8046ac_0    conda-forge
tbb                       2020.2               h4bd325d_4    conda-forge
terminado                 0.12.1           py36h5fab9bb_0    conda-forge
testpath                  0.5.0              pyhd8ed1ab_0    conda-forge
texttable                 1.6.4              pyhd8ed1ab_0    conda-forge
threadpoolctl             3.0.0              pyh8a188c0_0    conda-forge
tk                        8.6.11               h27826a3_1    conda-forge
tomli                     1.2.2              pyhd8ed1ab_0    conda-forge
tornado                   6.1              py36h8f6f2f9_1    conda-forge
tqdm                      4.7.2                    py36_0    bioconda
traitlets                 4.3.3              pyhd8ed1ab_2    conda-forge
typing_extensions         4.0.1              pyha770c72_0    conda-forge
umap-learn                0.5.1            py36h5fab9bb_1    conda-forge
urllib3                   1.26.8             pyhd8ed1ab_1    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
webencodings              0.5.1                      py_1    conda-forge
wheel                     0.37.1             pyhd8ed1ab_0    conda-forge
xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
xorg-libice               1.0.10               h7f98852_0    conda-forge
xorg-libsm                1.2.3             hd9c2040_1000    conda-forge
xorg-libx11               1.7.2                h7f98852_0    conda-forge
xorg-libxau               1.0.9                h7f98852_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xorg-libxext              1.3.4                h7f98852_1    conda-forge
xorg-libxrender           0.9.10            h7f98852_1003    conda-forge
xorg-libxt                1.2.1                h7f98852_2    conda-forge
xorg-renderproto          0.11.1            h7f98852_1002    conda-forge
xorg-xextproto            7.3.0             h7f98852_1002    conda-forge
xorg-xproto               7.0.31            h7f98852_1007    conda-forge
xz                        5.2.5                h516909a_1    conda-forge
zeromq                    4.3.4                h9c3ff4c_1    conda-forge
zipp                      3.7.0              pyhd8ed1ab_0    conda-forge
zlib                      1.2.11            h36c2ea0_1013    conda-forge
zstd                      1.5.2                ha95c52a_0    conda-forge

Thanks in advance!

ViHammer commented 2 years ago

Solution:

Issue #35 mentioned a similar issue. I tried the suggested solution, but initially had no success. The convert_svg_to_png.py script offers support for different conversion tools. After testing most, I finally had success with cairosvg. I installed the package in the environment using conda, and moved the code block to the top, so it is checked first. To check what tool is being used, set https://github.com/phbradley/conga/blob/4e27af987acae7c6918f9a9a1fd04166ff982c91/conga/convert_svg_to_png.py#L27 to True. 260122_graph_vs_graph_logos

phbradley commented 2 years ago

Hi there, Sorry for not getting to this quickly enough to help! I still don't understand why this conversion seems to be so platform dependent. I'm glad you were able to find a solution that worked for you. Thanks for the detailed notes which will be useful to others. I will see if we can make this more configurable, from the command line or from some kind of 'options' system (for notebook users). Take care, Phil