Hi Vincent,

  ChimeraX bundles can list dependencies on PyPi packages.  Here's an example of PyPi dependencies in bundle_info.xml of the SEQCROW ChimeraX plugin.  ChimeraX will install these when the bundle is installed.

https://github.com/QChASM/SEQCROW/blob/971de45120b9cb1b7f1e5ff0f2cee4b998ec6cb5/bundle_info.xml#L68

            <Dependencies>
                <Dependency name="ChimeraX-Core" version=">=1.3, <=1.7"/>
                <Dependency name="scipy"/>
                <Dependency name="Send2Trash"/>
                <Dependency name="psutil"/>
                <Dependency name="jinja2"/>
                <!--
                bse is large and may fail to install with bad internet
                <Dependency name="basis-set-exchange"/>
                -->
                <!-- wait for numpy to fix fortran stuff in python 3.8
                I've tried installing this with just gfortran on windows, but no luck
                <Dependency name="stripy"/>
                -->
            </Dependencies>

With PyTorch I don't know if the PyPi packages include CUDA support or how the CUDA version is handled.  Maybe they are CPU-only unless compiled from source on the install machine, which of course would require a compiler that only Linux (not Windows) would likely have installed.

We should have some documentation on how to handle PyPi dependencies.  I don't see anything useful about how to include them in the bundle_info.xml or pyproject.toml documentation for ChimeraX.

https://www.cgl.ucsf.edu/chimerax/docs/devel/writing_bundles.html#bundle-format
https://www.cgl.ucsf.edu/chimerax/docs/devel/tutorials/pyproject.html

I'll made a ticket to add some documentation for that.

https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/10036

  Tom

On Oct 20, 2023, at 4:58 AM, Vincent Mallet via ChimeraX-users <chimerax-users@cgl.ucsf.edu> wrote:

Hello,

Thanks for the tool and the tutorials. I have a machine learning tool based on pytorch to analyse cryo-EM data. I was hoping to package (bundle) it for Chimerax and started to follow tutorials, but I don't think you mention the right way to set up a code environment with depencies. I see a numpy import in the save_new_format tutorial, but it's not listed in the "dependencies" section of the xml file.

I guess my question is : can I add arbitrary packages in a bundle ? Is there a way to install pip packages only ? Should I copy all source code in the folder and deal with my imports like that ? In particular, I am thinking of torch that is not so easy to replace... 

I am hoping you can help me, thanks in advance for the help !

Best,
Vincent
_______________________________________________
ChimeraX-users mailing list -- chimerax-users@cgl.ucsf.edu
To unsubscribe send an email to chimerax-users-leave@cgl.ucsf.edu
Archives: https://mail.cgl.ucsf.edu/mailman/archives/list/chimerax-users@cgl.ucsf.edu/