Skip to content

Make some of the imports optional #112

Description

@evolarjun

AMRgen imports a lot of libraries that take a long time to download and install and may only be used for certain functions.

I have occasionally had issues getting AMRgen to install. Right now because the arrow library won't compile for me. I wanted to install AMRgen to use it in a teaching workshop I'm part of at ASM Microbe. I spent about an hour off and on trying to get R to compile it cleanly on the VM, and I haven't succeeded yet. There may be workarounds I haven't looked up or thought about yet because I'm not very clear on how R packages work, but I haven't had time to figure it out yet.

The challenge made me think that if I, a former sysadmin, am struggling with this, maybe I'm not the only one. (Ok, so I was a sysadmin 25+ years ago so my skills might be a little rusty. But back then we compiled software ourselves, package managers weren't really a thing.)

I assume, though I haven't looked, that arrow is needed for reading parquet files downloaded from EBI. I don't plan to use that functionality in the workshop and I will either create my own version of AMRgen without arrow or get our sysadmins to figure it out. I wonder if we couldn't make some of the packages optional. I did that with the BigQuery stuff I added because I didn't want to make installation any more difficult than it already is for people who aren't going to use GCP.

Adding other packages in that way would conflict with the 'install once and everything works' philosophy, but might make installation easier for people who only need a subset of the capabilities.

I just wanted to gauge the feelings of the primary developers before I spent time writing code and making a pull request. I'm short on time for this workshop so my immediate solution may be to fork my own arrow-less version of AMRgen for workshop use.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions