Search code examples
httpftpdependenciescondasnakemake

What do bioconda's perl-net-ftp and perl-lwp-protocol-https do?


I was given some code of a previous intern and I'm supposed to find out what it does.

It is a snakemake pipeline that has a my_pipeline.yaml file which is supposed to contain all the 'general packages needed for the pipeline' The file looks like this:

name: my_pipeline

channels:
    - conda-forge
    - bioconda

dependencies:
    - snakemake
    - perl-net-ftp
    - perl-lwp-protocol-https

I googled both perl-net-ftp and perl-lwp-protocol-https but I was unable to find docs on them.

All I can gather from my limited understanding as a newbie: ftp stands for "file transfer protocol" and I definitely heard that sometime before, perl is a language (that I don't know). HTTPS is another protocol, sure...

Regarding the perl-net-ftp I even found the bioconda link but the description is unfortunately empty.

Same goes for the perl-lwp-protocol-https - the description on conda is blank.

In I see that the pipeline is using wget in the snakefile. Is it safe to assume that the 2 packages are needed inorder to run wget?

I'd be glad for an explanation for a beginner and of course documentation if your queries get better results.

https://anaconda.org/bioconda/perl-net-ftp


Solution

  • For Bioconda packages, it is usually better to look at the Bioconda Package Index rather than Anaconda Cloud (though admittedly the metadata here could be improved). Visiting the Bioconda pages for the perl-lwp-protocol-https and perl-net-ftp packages will lead to links to their respective upstream description pages.

    Broadly, these are Perl modules that implement functions to communicate with remote servers, which usually means downloading or uploading files in the context of a Perl script.

    wget does not depend on Perl or those modules. So, it is still unclear the particular purpose of those. Maybe don't rule out the possibility that they aren't actually needed - sometimes people start writing things one way and then forget to remove components that they no longer require.