Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Address review comments and update documentation #160

Merged
merged 21 commits into from
Jun 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
2642202
Publish pdb_seqres when from prepare_alphafold2_dbs
JoseEspinosa Jun 4, 2024
f3be7a5
Publish pdb_seqres when downloaded using prepare_alphafold2_dbs
JoseEspinosa Jun 4, 2024
6a02035
Merge branch 'updates' of https://github.com/JoseEspinosa/nf-core-pro…
JoseEspinosa Jun 4, 2024
a9fc87e
Add previous PR and update parameter table
JoseEspinosa Jun 4, 2024
adf0118
Simplify CI by using matrix of parameterers
JoseEspinosa Jun 4, 2024
1f86e49
Update README
JoseEspinosa Jun 4, 2024
17b3f2f
Modify contributing as suggested in review
JoseEspinosa Jun 4, 2024
028733b
Fix several comments of tests config files
JoseEspinosa Jun 4, 2024
f303668
Apply review suggestions to usage
JoseEspinosa Jun 4, 2024
0fffa5f
Align comments of subworkflows
JoseEspinosa Jun 4, 2024
ff82923
Create channels instead of using just file method
JoseEspinosa Jun 4, 2024
b641a37
Create channels instead of using just file method
JoseEspinosa Jun 5, 2024
3b092aa
Add meta to aria2 call
JoseEspinosa Jun 5, 2024
ded727e
Force value channel for bfd
JoseEspinosa Jun 7, 2024
dd38311
Create channels instead of just using file method
JoseEspinosa Jun 10, 2024
83b0b6b
Update docs
JoseEspinosa Jun 10, 2024
9857ca2
Make lint happy
JoseEspinosa Jun 10, 2024
f5bdad2
Make nf-core lint happy
JoseEspinosa Jun 10, 2024
48a0a3f
Add uniref30_alphafold2_link parameter to changelog
JoseEspinosa Jun 10, 2024
0637765
Merge branch 'updates' of https://github.com/JoseEspinosa/nf-core-pro…
JoseEspinosa Jun 10, 2024
6f083ce
Make lint happy
JoseEspinosa Jun 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ If you're not used to this workflow with git, you can start with some [docs from
You have the option to test your changes locally by running the pipeline. For receiving warnings about process selectors and other `debug` information, it is recommended to use the debug profile. Execute all the tests with the following command:

```bash
nf-test test --profile debug,test,docker --verbose
nextflow run . --profile debug,test,docker --outdir <OUTDIR>
```

When you create a pull request with changes, [GitHub Actions](https://github.com/features/actions) will run automatic tests.
Expand Down
109 changes: 11 additions & 98 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,15 @@ jobs:
NXF_VER:
- "23.04.0"
- "latest-everything"
parameters:
- "test"
- "test_alphafold2_split"
- "test_alphafold2_download"
- "test_colabfold_local"
- "test_colabfold_webserver"
- "test_colabfold_download"
- "test_esmfold"

steps:
- name: Check out pipeline code
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
Expand All @@ -38,102 +47,6 @@ jobs:
- name: Disk space cleanup
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1

- name: Run pipeline with test data
run: |
nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results

test_alphafold2_split:
name: Test alphafold2 split workflow
if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/proteinfold') }}
runs-on: ubuntu-latest
steps:
- name: Check out pipeline code
uses: actions/checkout@v2

- name: Install Nextflow
run: |
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
- name: Run pipeline with stub-run in alphafold2 split mode
run: |
nextflow run ${GITHUB_WORKSPACE} -profile test_alphafold2_split,docker --outdir ./results

test_alphafold2_download:
name: Test alphafold2 download workflow
if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/proteinfold') }}
runs-on: ubuntu-latest
steps:
- name: Check out pipeline code
uses: actions/checkout@v2

- name: Install Nextflow
run: |
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
- name: Run pipeline with stub-run in alphafold2 standard mode (download)
run: |
nextflow run ${GITHUB_WORKSPACE} -profile test_alphafold2_download,docker --outdir ./results

test_colabfold_local:
name: Test Colabfold local workflow
if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/proteinfold') }}
runs-on: ubuntu-latest
steps:
- name: Check out pipeline code
uses: actions/checkout@v2

- name: Install Nextflow
run: |
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
- name: Run pipeline with stub-run in colabfold_local mode
run: |
nextflow run ${GITHUB_WORKSPACE} -profile test_colabfold_local,docker --outdir ./results

test_colabfold_webserver:
name: Test Colabfold webserver workflow
if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/proteinfold') }}
runs-on: ubuntu-latest
steps:
- name: Check out pipeline code
uses: actions/checkout@v2

- name: Install Nextflow
run: |
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
- name: Run pipeline with stub-run in colabfold_webserver mode
run: |
nextflow run ${GITHUB_WORKSPACE} -profile test_colabfold_webserver,docker --outdir ./results

test_colabfold_download:
name: Test colabfold download workflow
if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/proteinfold') }}
runs-on: ubuntu-latest
steps:
- name: Check out pipeline code
uses: actions/checkout@v2

- name: Install Nextflow
run: |
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
- name: Run pipeline with stub-run in colabfold webserver (download)
run: |
nextflow run ${GITHUB_WORKSPACE} -profile test_colabfold_download,docker --outdir ./results

test_esmfold:
name: Test ESMFold workflow
if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/proteinfold') }}
runs-on: ubuntu-latest
steps:
- name: Check out pipeline code
uses: actions/checkout@v2

- name: Install Nextflow
run: |
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
- name: Run pipeline with stub-run in esmfold mode
- name: Run pipeline with test data ${{ matrix.parameters }} profile
run: |
nextflow run ${GITHUB_WORKSPACE} -profile test_esmfold,docker --outdir ./results
nextflow run ${GITHUB_WORKSPACE} -profile ${{ matrix.parameters }},docker --outdir ./results_${{ matrix.parameters }}
3 changes: 1 addition & 2 deletions .nf-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@ repository_type: pipeline
nf_core_version: "2.14.1"
lint:
files_unchanged:
- .github/ISSUE_TEMPLATE/bug_report.yml
- pyproject.toml
- .github/CONTRIBUTING.md
multiqc_config: false
29 changes: 26 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [[#130](https://github.com/nf-core/proteinfold/issues/130)] - Add `--skip_multiqc` parameter.
- [[PR #154](https://github.com/nf-core/proteinfold/pull/154)] - Update pipeline template to [nf-core/tools 2.14.1](https://github.com/nf-core/tools/releases/tag/2.14.1).
- [[#148](https://github.com/nf-core/proteinfold/issues/148)] - Update Colabfold DBs.
- [[PR #159](https://github.com/nf-core/proteinfold/pull/159)] - Update `mgnify` paths to new available version.

### Parameters

| Old parameter | New parameter |
| ------------- | ---------------- |
| | `--skip_multiqc` |
| Old parameter | New parameter |
| --------------------- | ---------------------------------------- |
| `--uniclust30` | |
| `--bfd` | `--bfd_link` |
| `--small_bfd` | `--small_bfd_link` |
| `--alphafold2_params` | `--alphafold2_params_link` |
| `--mgnify` | `--mgnify_link` |
| `--pdb70` | `--pdb70_link` |
| `--pdb_mmcif` | `--pdb_mmcif_link` |
| `--pdb_obsolete` | `--pdb_obsolete_link` |
| `--uniref90` | `--uniref90_link` |
| `--pdb_seqres` | `--pdb_seqres_link` |
| `--uniprot_sprot` | `--uniprot_sprot_link` |
| `--uniprot_trembl` | `--uniprot_trembl_link` |
| `--uniclust30_path` | `--uniref30_alphafold2_path` |
| `--uniref30` | `--uniref30_colabfold_link` |
| `--uniref30_path` | `--uniref30_colabfold_path` |
| | `--uniref30_alphafold2_link` |
| | `--esmfold_db` |
| | `--esmfold_model_preset` |
| | `--esmfold_3B_v1` |
| | `--esm2_t36_3B_UR50D` |
| | `--esm2_t36_3B_UR50D_contact_regression` |
| | `--esmfold_params_path` |
| | `--skip_multiqc` |

> **NB:** Parameter has been **updated** if both old and new parameter information is present.
> **NB:** Parameter has been **added** if just the new parameter information is present.
Expand Down
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ On release, automated continuous integration tests run the pipeline on a full-si

1. Choice of protein structure prediction method:

i. [AlphaFold2](https://github.com/deepmind/alphafold)
i. [AlphaFold2](https://github.com/deepmind/alphafold) - Regular AlphaFold2 (MSA computation and model inference in the same process)

ii. [AlphaFold2 split](https://github.com/luisas/alphafold_split) - AlphaFold2 MSA computation and model inference in separate processes

iii. [ColabFold](https://github.com/sokrypton/ColabFold) - MMseqs2 API server followed by ColabFold

iv. [ColabFold](https://github.com/sokrypton/ColabFold) - MMseqs2 local search followed by ColabFold

v. [ESMFold](https://github.com/facebookresearch/esm)
v. [ESMFold](https://github.com/facebookresearch/esm) - Regular ESM

## Usage

Expand All @@ -55,9 +55,9 @@ nextflow run nf-core/proteinfold \
--outdir <OUTDIR>
```

The pipeline takes care of downloading the databases and parameters required by AlphaFold2, Colabfold or ESMFold. In case you have already downloaded the required files, you can skip this step by providing the path to the databases in parameters using the corresponding parameter [`--alphafold2_db`], [`--colabfold_db`] or [`--esmfold_db`]
The pipeline takes care of downloading the databases and parameters required by AlphaFold2, Colabfold or ESMFold. In case you have already downloaded the required files, you can skip this step by providing the path to the databases using the corresponding parameter [`--alphafold2_db`], [`--colabfold_db`] or [`--esmfold_db`]. Please refer to the [usage documentation](https://nf-co.re/proteinfold/usage) to check the directory structure you need to provide for each of the databases.

- Typical command to run AlphaFold2 mode:
- The typical command to run AlphaFold2 mode is shown below:

```console
nextflow run nf-core/proteinfold \
Expand All @@ -71,7 +71,7 @@ The pipeline takes care of downloading the databases and parameters required by
-profile <docker/singularity/podman/shifter/charliecloud/conda/institute>
```

- Typical command to run AlphaFold2 splitting the MSA from the prediction execution:
- Here is the command to run AlphaFold2 splitting the MSA from the prediction execution:

```console
nextflow run nf-core/proteinfold \
Expand All @@ -86,7 +86,7 @@ The pipeline takes care of downloading the databases and parameters required by
-profile <docker/singularity/podman/shifter/charliecloud/conda/institute>
```

- Typical command to run colabfold_local mode:
- Below, the command to run colabfold_local mode:

```console
nextflow run nf-core/proteinfold \
Expand All @@ -103,7 +103,7 @@ The pipeline takes care of downloading the databases and parameters required by
-profile <docker/singularity/podman/shifter/charliecloud/conda/institute>
```

- Typical command to run colabfold_webserver mode:
- The typical command to run colabfold_webserver mode would be:

```console
nextflow run nf-core/proteinfold \
Expand All @@ -120,10 +120,11 @@ The pipeline takes care of downloading the databases and parameters required by
-profile <docker/singularity/podman/shifter/charliecloud/conda/institute>
```

> **Warning**
[!WARNING]

> If you aim to carry out a large amount of predictions using the colabfold_webserver mode, please setup and use your own custom MMSeqs2 API Server. You can find instructions [here](https://github.com/sokrypton/ColabFold/tree/main/MsaServer).

- Typical command to run esmfold mode:
- The esmfold mode can be run using the command below:

```console
nextflow run nf-core/proteinfold \
Expand Down
2 changes: 1 addition & 1 deletion conf/modules_alphafold2.config
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
//

process {
withName: 'GUNZIP|COMBINE_UNIPROT|DOWNLOAD_PDBMMCIF' {
withName: 'GUNZIP|COMBINE_UNIPROT|DOWNLOAD_PDBMMCIF|ARIA2_PDB_SEQRES' {
publishDir = [
path: {"${params.outdir}/DBs/${params.mode}/${params.alphafold2_mode}"},
mode: 'symlink',
Expand Down
2 changes: 1 addition & 1 deletion conf/test_alphafold_download.config
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Defines input files and everything required to run a fast and simple pipeline test.

Use as follows:
nextflow run nf-core/proteinfold -profile test,<docker/singularity> --outdir <OUTDIR>
nextflow run nf-core/proteinfold -profile test_alphafold2_download,<docker/singularity> --outdir <OUTDIR>

----------------------------------------------------------------------------------------
*/
Expand Down
2 changes: 1 addition & 1 deletion conf/test_alphafold_split.config
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Defines input files and everything required to run a fast and simple pipeline test.

Use as follows:
nextflow run nf-core/proteinfold -profile test,<docker/singularity> --outdir <OUTDIR>
nextflow run nf-core/proteinfold -profile test_alphafold2_split,<docker/singularity> --outdir <OUTDIR>

----------------------------------------------------------------------------------------
*/
Expand Down
2 changes: 1 addition & 1 deletion conf/test_colabfold_download.config
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Defines input files and everything required to run a fast and simple pipeline test.

Use as follows:
nextflow run nf-core/proteinfold -profile test,<docker/singularity> --outdir <OUTDIR>
nextflow run nf-core/proteinfold -profile test_colabfold_download,<docker/singularity> --outdir <OUTDIR>

----------------------------------------------------------------------------------------
*/
Expand Down
2 changes: 1 addition & 1 deletion conf/test_colabfold_local.config
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Defines input files and everything required to run a fast and simple pipeline test.
Use as follows:
nextflow run nf-core/proteinfold -profile test,<docker/singularity> --outdir <OUTDIR>
nextflow run nf-core/proteinfold -profile test_colabfold_local,<docker/singularity> --outdir <OUTDIR>
----------------------------------------------------------------------------------------
*/

Expand Down
2 changes: 1 addition & 1 deletion conf/test_colabfold_webserver.config
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Defines input files and everything required to run a fast and simple pipeline test.
Use as follows:
nextflow run nf-core/proteinfold -profile test,<docker/singularity> --outdir <OUTDIR>
nextflow run nf-core/proteinfold -profile test_colabfold_webserver,<docker/singularity> --outdir <OUTDIR>
----------------------------------------------------------------------------------------
*/

Expand Down
2 changes: 1 addition & 1 deletion conf/test_esmfold.config
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Defines input files and everything required to run a fast and simple pipeline test.
Use as follows:
nextflow run nf-core/proteinfold -profile test,<docker/singularity> --outdir <OUTDIR>
nextflow run nf-core/proteinfold -profile test_esmfold,<docker/singularity> --outdir <OUTDIR>
----------------------------------------------------------------------------------------
*/

Expand Down
2 changes: 1 addition & 1 deletion conf/test_full_esmfold.config
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Defines input files and everything required to run a full size pipeline test.

Use as follows:
nextflow run nf-core/proteinfold -profile test_full_colabfold_webserver,<docker/singularity> --outdir <OUTDIR>
nextflow run nf-core/proteinfold -profile test_full_esmfold,<docker/singularity> --outdir <OUTDIR>

----------------------------------------------------------------------------------------
*/
Expand Down
2 changes: 1 addition & 1 deletion conf/test_full_esmfold_multimer.config
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Defines input files and everything required to run a full size pipeline test.

Use as follows:
nextflow run nf-core/proteinfold -profile test_full_colabfold_webserver,<docker/singularity> --outdir <OUTDIR>
nextflow run nf-core/proteinfold -profile test_full_esmfold_multimer,<docker/singularity> --outdir <OUTDIR>

----------------------------------------------------------------------------------------
*/
Expand Down
Loading