nf_core.download
Downloads a nf-core pipeline to the local file system.
class
nf_core.download.DownloadProgress(*columns: str | ProgressColumn, console: Console | None = None, auto_refresh: bool = True, refresh_per_second: float = 10, speed_estimate_period: float = 30.0, transient: bool = False, redirect_stdout: bool = True, redirect_stderr: bool = True, get_time: Callable[[], float] | None = None, disable: bool = False, expand: bool = False)
Bases: Progress
Custom Progress bar class, allowing us to have two progress bars with different columns / layouts.
get_renderables()
Get a number of renderables for the progress display.
class
nf_core.download.DownloadWorkflow(pipeline, release=None, outdir=None, compress_type='tar.gz', force=False, singularity=False, singularity_cache_only=False, parallel_downloads=4)
Bases: object
Downloads a nf-core workflow from GitHub to the local file system.
Can also download its Singularity container image if required.
- Parameters:
- pipeline (str) – A nf-core pipeline name.
- release (str) – The workflow release version to download, like 1.0. Defaults to None.
- singularity (bool) – Flag, if the Singularity container should be downloaded as well. Defaults to False.
- outdir (str) – Path to the local download directory. Defaults to None.
compress_download()
Take the downloaded files and make a compressed .tar.gz archive.
download_configs()
Downloads the centralised config profiles from nf-core/configs to self.outdir
.
download_wf_files()
Downloads workflow files from GitHub to the self.outdir
.
download_workflow()
Starts a nf-core workflow download.
fetch_workflow_details(wfs)
Fetches details of a nf-core workflow to download.
- Parameters: wfs (nf_core.list.Workflows) – A nf_core.list.Workflows object
- Raises: LockupError**,** if the pipeline can not be found. –
find_container_images()
Find container image names for workflow.
Starts by using nextflow config to pull out any process.container declarations. This works for DSL1.
Second, we look for DSL2 containers. These can’t be found with nextflow config at the time of writing, so we scrape the pipeline files.
get_singularity_images()
Loop through container names and download Singularity images
singularity_copy_cache_image(container, out_path, cache_path)
Copy Singularity image from NXF_SINGULARITY_CACHEDIR to target folder.
singularity_download_image(container, out_path, cache_path, progress)
Download a singularity image from the web.
Use native Python to download the file.
- Parameters:
- container (str) – A pipeline’s container name. Usually it is of similar format
to
https://depot.galaxyproject.org/singularity/name:version
- out_path (str) – The final target output path
- cache_path (str*,* None) – The NXF_SINGULARITY_CACHEDIR path if set, None if not
- progress (Progress) – Rich progress bar instance to add tasks to.
- container (str) – A pipeline’s container name. Usually it is of similar format
to
singularity_image_filenames(container)
Check Singularity cache for image, copy to destination folder if found.
- Parameters: container (str) – A pipeline’s container name. Can be direct download URL or a Docker Hub repository ID.
- Returns: Returns True if we have the image in the target location. : Returns a download path if not.
- Return type: results (bool, str)
singularity_pull_image(container, out_path, cache_path, progress)
Pull a singularity image using singularity pull
Attempt to use a local installation of singularity to pull the image.
- Parameters:
container (str) – A pipeline’s container name. Usually it is of similar format
to
nfcore/name:version
. - Raises: Various exceptions possible from subprocess execution of Singularity. –
validate_md5(fname, expected=None)
Calculates the md5sum for a file on the disk and validate with expected.
- Parameters:
- fname (str) – Path to a local file.
- expected (str) – The expected md5sum.
- Raises: IOError**,** if the md5sum does not match the remote sum. –
wf_use_local_configs()
Edit the downloaded nextflow.config file to use the local config files