snowflake-cli-nextflow


Namesnowflake-cli-nextflow JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA Snowflake CLI plugin that enables running Nextflow workflows directly in Snowpark Container Services
upload_time2025-08-08 17:23:34
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseApache-2.0
keywords snowflake cli plugin nextflow workflow bioinformatics snowpark container-services
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Snowflake CLI Nextflow Plugin

A Snowflake CLI plugin that enables running [Nextflow](https://www.nextflow.io/) workflows directly in [Snowpark Container Services](https://docs.snowflake.com/en/developer-guide/snowpark-container-services/overview).

## Overview

This plugin extends the Snowflake CLI with Nextflow workflow capabilities, allowing you to:

- **Run Nextflow workflows at scale** using Snowflake's compute resources
- **Stream live execution logs** through secure WebSocket connections
- **Manage workflow execution** directly from your command line
- **Leverage Snowflake's security and governance** for bioinformatics and data pipelines

### Key Features

- 🚀 **Seamless Integration**: Run Nextflow workflows directly in Snowpark Container Services
- 📊 **Real-time Monitoring**: Stream live logs and execution status via WebSocket
- 🔒 **Enterprise Security**: Built-in Snowflake authentication and authorization
- 🎯 **Simple CLI Interface**: Familiar command-line experience for workflow management
- 📦 **Flexible Configuration**: Support for Nextflow profiles and custom configurations

## Getting Started

### Prerequisites

- All prerequisites of running snowflake-cli mentioned [here](https://docs.snowflake.com/en/developer-guide/snowflake-cli/installation/installation#requirements)
- Access to a Snowflake account with Snowpark Container Services enabled
- A Snowflake compute pool configured for container workloads
- Nextflow binary correctly installed in your PATH

### Installation

1. **Install Snowflake CLI**
   ```bash
   pip install snowflake-cli
   ```

2. **Install the Nextflow plugin**
   ```bash
   pip install snowflake-cli-nextflow
   ```

3. **Configure Snowflake connection**
   ```bash
   snow connection add
   ```
   Follow the prompts to configure your Snowflake connection with appropriate credentials.

4. **Enable the Nextflow plugin**
   ```bash
   snow plugin enable nextflow
   ```
   The `nextflow` command should now be available in the CLI.

### Quick Start

1. **Prepare your Nextflow project**
   
   Create a `nextflow.config` file in your project directory:
   ```groovy
   // nextflow.config
   snowflake {
       computePool = 'YOUR_COMPUTE_POOL'
       workDirStage = 'WORKDIR_STAGE'
       stageMounts = 'INPUT:/mnt/input,OUTPUT:/mnt/output'
   }
   ```

2. **Upload nf-snowflake image into snowflake image repository**
  
   ```bash
   snow nextflow image push --source ghcr.io/snowflake-labs/nf-snowflake:0.7.1 --target nf_repo --update-config
   ```

3. **Run your workflow**
   ```bash
   snow nextflow run /path/to/your/nextflow-project -profile snowflake
   ```

4. **Monitor execution**
   
   The plugin will automatically:
   - Upload your project to Snowflake
   - Submit the workflow to Snowpark Container Services
   - Stream live logs to your terminal

## Configuration

### Snowflake-specific Configuration

Your `nextflow.config` must include the following Snowflake-specific settings:

```groovy
plugins { id 'nf-snowflake@0.7.1' }

snowflake {
    computePool = 'YOUR_COMPUTE_POOL'
    workDirStage = 'WORKDIR_STAGE'
    stageMounts = 'INPUT:/mnt/input,OUTPUT:/mnt/output'
}
```

### Configuration Parameters

- **`computePool`** (Required): The name of your Snowflake compute pool where the Nextflow containers will run. This compute pool must be configured with appropriate resources and permissions for container workloads.

- **`workDirStage`** (Required): The Snowflake stage name where the plugin will upload your workflow files and store execution artifacts. This stage serves as the working directory for your Nextflow execution.

- **`stageMounts`** (Optional): A comma-separated list of stage mounts in the format `STAGE_NAME:/mount/path`. Each mount makes a Snowflake stage available inside the container at the specified path. Use this to provide input data and collect output results.

### Example with Multiple Stage Mounts

```groovy
snowflake {
    computePool = 'NEXTFLOW_POOL'
    workDirStage = 'NF_WORKSPACE'
    stageMounts = 'RAW_DATA:/mnt/input,RESULTS:/mnt/output,REFERENCES:/mnt/ref'
}
```

## Usage Examples

### Basic Workflow Execution

```bash
# Run with default profile
snow nextflow run ./my-workflow

# Run with specific profile
snow nextflow run ./my-workflow -profile snowflake

# Check available commands
snow nextflow --help
```

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- [Nextflow](https://www.nextflow.io/) - The workflow management system
- [Snowflake](https://www.snowflake.com/) - The cloud data platform
- [Snowpark Container Services](https://docs.snowflake.com/en/developer-guide/snowpark-container-services/overview) - Container orchestration platform

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "snowflake-cli-nextflow",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "snowflake, cli, plugin, nextflow, workflow, bioinformatics, snowpark, container-services",
    "author": null,
    "author_email": "Haowei Yu <haowei.yu@snowflake.com>",
    "download_url": "https://files.pythonhosted.org/packages/7b/e9/7707530aa98306cda97cc35e372673371104d5e8df1fb07362db89864378/snowflake_cli_nextflow-0.1.0.tar.gz",
    "platform": null,
    "description": "# Snowflake CLI Nextflow Plugin\n\nA Snowflake CLI plugin that enables running [Nextflow](https://www.nextflow.io/) workflows directly in [Snowpark Container Services](https://docs.snowflake.com/en/developer-guide/snowpark-container-services/overview).\n\n## Overview\n\nThis plugin extends the Snowflake CLI with Nextflow workflow capabilities, allowing you to:\n\n- **Run Nextflow workflows at scale** using Snowflake's compute resources\n- **Stream live execution logs** through secure WebSocket connections\n- **Manage workflow execution** directly from your command line\n- **Leverage Snowflake's security and governance** for bioinformatics and data pipelines\n\n### Key Features\n\n- \ud83d\ude80 **Seamless Integration**: Run Nextflow workflows directly in Snowpark Container Services\n- \ud83d\udcca **Real-time Monitoring**: Stream live logs and execution status via WebSocket\n- \ud83d\udd12 **Enterprise Security**: Built-in Snowflake authentication and authorization\n- \ud83c\udfaf **Simple CLI Interface**: Familiar command-line experience for workflow management\n- \ud83d\udce6 **Flexible Configuration**: Support for Nextflow profiles and custom configurations\n\n## Getting Started\n\n### Prerequisites\n\n- All prerequisites of running snowflake-cli mentioned [here](https://docs.snowflake.com/en/developer-guide/snowflake-cli/installation/installation#requirements)\n- Access to a Snowflake account with Snowpark Container Services enabled\n- A Snowflake compute pool configured for container workloads\n- Nextflow binary correctly installed in your PATH\n\n### Installation\n\n1. **Install Snowflake CLI**\n   ```bash\n   pip install snowflake-cli\n   ```\n\n2. **Install the Nextflow plugin**\n   ```bash\n   pip install snowflake-cli-nextflow\n   ```\n\n3. **Configure Snowflake connection**\n   ```bash\n   snow connection add\n   ```\n   Follow the prompts to configure your Snowflake connection with appropriate credentials.\n\n4. **Enable the Nextflow plugin**\n   ```bash\n   snow plugin enable nextflow\n   ```\n   The `nextflow` command should now be available in the CLI.\n\n### Quick Start\n\n1. **Prepare your Nextflow project**\n   \n   Create a `nextflow.config` file in your project directory:\n   ```groovy\n   // nextflow.config\n   snowflake {\n       computePool = 'YOUR_COMPUTE_POOL'\n       workDirStage = 'WORKDIR_STAGE'\n       stageMounts = 'INPUT:/mnt/input,OUTPUT:/mnt/output'\n   }\n   ```\n\n2. **Upload nf-snowflake image into snowflake image repository**\n  \n   ```bash\n   snow nextflow image push --source ghcr.io/snowflake-labs/nf-snowflake:0.7.1 --target nf_repo --update-config\n   ```\n\n3. **Run your workflow**\n   ```bash\n   snow nextflow run /path/to/your/nextflow-project -profile snowflake\n   ```\n\n4. **Monitor execution**\n   \n   The plugin will automatically:\n   - Upload your project to Snowflake\n   - Submit the workflow to Snowpark Container Services\n   - Stream live logs to your terminal\n\n## Configuration\n\n### Snowflake-specific Configuration\n\nYour `nextflow.config` must include the following Snowflake-specific settings:\n\n```groovy\nplugins { id 'nf-snowflake@0.7.1' }\n\nsnowflake {\n    computePool = 'YOUR_COMPUTE_POOL'\n    workDirStage = 'WORKDIR_STAGE'\n    stageMounts = 'INPUT:/mnt/input,OUTPUT:/mnt/output'\n}\n```\n\n### Configuration Parameters\n\n- **`computePool`** (Required): The name of your Snowflake compute pool where the Nextflow containers will run. This compute pool must be configured with appropriate resources and permissions for container workloads.\n\n- **`workDirStage`** (Required): The Snowflake stage name where the plugin will upload your workflow files and store execution artifacts. This stage serves as the working directory for your Nextflow execution.\n\n- **`stageMounts`** (Optional): A comma-separated list of stage mounts in the format `STAGE_NAME:/mount/path`. Each mount makes a Snowflake stage available inside the container at the specified path. Use this to provide input data and collect output results.\n\n### Example with Multiple Stage Mounts\n\n```groovy\nsnowflake {\n    computePool = 'NEXTFLOW_POOL'\n    workDirStage = 'NF_WORKSPACE'\n    stageMounts = 'RAW_DATA:/mnt/input,RESULTS:/mnt/output,REFERENCES:/mnt/ref'\n}\n```\n\n## Usage Examples\n\n### Basic Workflow Execution\n\n```bash\n# Run with default profile\nsnow nextflow run ./my-workflow\n\n# Run with specific profile\nsnow nextflow run ./my-workflow -profile snowflake\n\n# Check available commands\nsnow nextflow --help\n```\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- [Nextflow](https://www.nextflow.io/) - The workflow management system\n- [Snowflake](https://www.snowflake.com/) - The cloud data platform\n- [Snowpark Container Services](https://docs.snowflake.com/en/developer-guide/snowpark-container-services/overview) - Container orchestration platform\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "A Snowflake CLI plugin that enables running Nextflow workflows directly in Snowpark Container Services",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/Snowflake-Labs/snowflake-cli-nextflow",
        "Homepage": "https://github.com/Snowflake-Labs/snowflake-cli-nextflow",
        "Issues": "https://github.com/Snowflake-Labs/snowflake-cli-nextflow/issues",
        "Repository": "https://github.com/Snowflake-Labs/snowflake-cli-nextflow"
    },
    "split_keywords": [
        "snowflake",
        " cli",
        " plugin",
        " nextflow",
        " workflow",
        " bioinformatics",
        " snowpark",
        " container-services"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e6a3dcaaa9e1d0f821cd8bdc3257e87200187d41776420a456ee349ae78bad1b",
                "md5": "52fe954be0b139fd3da57c5efa523490",
                "sha256": "6ae1c3f5817ac34f8f8ac582a9a39752656089bd01036cd35a2fcea8c1c587ce"
            },
            "downloads": -1,
            "filename": "snowflake_cli_nextflow-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "52fe954be0b139fd3da57c5efa523490",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 22079,
            "upload_time": "2025-08-08T17:23:33",
            "upload_time_iso_8601": "2025-08-08T17:23:33.323980Z",
            "url": "https://files.pythonhosted.org/packages/e6/a3/dcaaa9e1d0f821cd8bdc3257e87200187d41776420a456ee349ae78bad1b/snowflake_cli_nextflow-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7be97707530aa98306cda97cc35e372673371104d5e8df1fb07362db89864378",
                "md5": "674b09b584aafff19a417f6d105aa9e2",
                "sha256": "a7e58fc855bd9b1980fc1f876c51e9842077d47cc5c0f9bcae22ebe23f900b04"
            },
            "downloads": -1,
            "filename": "snowflake_cli_nextflow-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "674b09b584aafff19a417f6d105aa9e2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 20426,
            "upload_time": "2025-08-08T17:23:34",
            "upload_time_iso_8601": "2025-08-08T17:23:34.796947Z",
            "url": "https://files.pythonhosted.org/packages/7b/e9/7707530aa98306cda97cc35e372673371104d5e8df1fb07362db89864378/snowflake_cli_nextflow-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-08 17:23:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Snowflake-Labs",
    "github_project": "snowflake-cli-nextflow",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "snowflake-cli-nextflow"
}
        
Elapsed time: 2.46136s