cgat-developers / cgat-flow

cgat-flow repository
MIT License
13 stars 9 forks source link

Installation breaks cgat-apps bamtools #133

Open IanSudbery opened 3 years ago

IanSudbery commented 3 years ago

If I create a new environment containing only cgat-apps then the following works fine:

Type "help", "copyright", "credits" or "license" for more information.
>>> import cgat.BamTools.bamtools

If I then update the environment to install the cgat-flow dependencies

$ mamba env update -n test3 --file=/shared/sudlab1/General/apps/conda/cgat-flow-devel/conda/environments/cgat-flow.yml

this now errors:

Type "help", "copyright", "credits" or "license" for more information.
>>> import cgat.BamTools.bamtools
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /data/mb1ims/cgat/envs/test3/lib/python3.7/site-packages/cgat/BamTools/bamtools.cpython-37m-x86_64-linux-gnu.so: undefined symbol: bam_read1

I notice that during installation cgat-apps is downgraded from v0.6.0 to v0.5.4 and pysam is upgraded from 0.15.2 to 0.16.0.

Now I update with cgat-flow-pipelines.yml.

I notice that pysam is downgraded again to 0.15.2.

Errror message the same.

Then I install pipelines-extra.yml. Version of pysam is changed AGAIN. This time to 0.15.3.

Still get the same error.

IanSudbery commented 3 years ago

However, if I force upgrate cgat-apps to 0.6.0 and force downgrade pysam to 0.15.2, it works.

IanSudbery commented 3 years ago

Or it does in some envs.

on other attempts, it seems that pysam 0.9.1 gets isntalled, and its impossible to shift it off that.

IanSudbery commented 3 years ago

This is at least partially because conda is not respecting the pysam pin in cgat-flow-pipelines.yml. Or at least, it respects it when you update with cgat-flow-pipelines.yml but it doesn't stay pinned, because its not being installed as a dependency of something, just as a request in its own right. I suggest we make it a pinned dependency of cgat-apps.

On my last installation attempt, I combined all three ymls (cgat-flow.yml, cgat-flow-pipelines.yml and pipelines-extra.yml) into a single yml, removed duplicates, added cgat-apps to the list, and the installation went fine, and was much easier.

jscaber commented 2 years ago

Related to #143, and may have already been partly addressed by #153. It may already be possible to close this now that pysam unpinned, but if not, then rpy2 unpin would almost certainly fix this.