diff --git a/main.nf b/main.nf index a676182..4d4a5cf 100644 --- a/main.nf +++ b/main.nf @@ -59,6 +59,7 @@ workflow NFCORE_PROTEINANNOTATOR { params.skip_interproscan, params.interproscan_db_url, params.interproscan_db, + params.interproscan_batch_size, params.skip_s4pred ) emit: diff --git a/nextflow.config b/nextflow.config index 8fec262..3827eda 100644 --- a/nextflow.config +++ b/nextflow.config @@ -39,6 +39,7 @@ params { interproscan_db = null interproscan_applications = 'Hamap,PANTHER,PIRSF,TIGRFAM,sfld' interproscan_enableprecalc = false + interproscan_batch_size = 1000 // Secondary structure prediction (s4pred) skip_s4pred = false diff --git a/nextflow_schema.json b/nextflow_schema.json index 25cabc4..50029ba 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -346,6 +346,14 @@ "help_text": "This increases the speed of functional annotation with InterProScan by pre-calculating matches found in the UniProtKB, thereby identifying unique matches in the query sequences for faster annotation. By default this is turned off.\n\nFor more information about this flag see the tool [documentation](https://interproscan-docs.readthedocs.io/en/latest/HowToRun.html).\n\n> Modifies tool parameter(s):\n> - InterProScan: `--disable-precalc`", "description": "Pre-calculates residue mutual matches.", "fa_icon": "fas fa-clock" + }, + "interproscan_batch_size": { + "type": "integer", + "default": 1000, + "minimum": 1, + "description": "Number of sequences per InterProScan batch.", + "help_text": "Split input FASTA files into batches of this many sequences before running InterProScan. This enables parallel processing of large proteomes and reduces memory usage per job. Results are automatically concatenated after all batches complete. Default: 1000 sequences per batch.", + "fa_icon": "fas fa-layer-group" } }, "help_text": "This subworkflow adds additional protein annotations to all input sequences. Currently, only annotation with InterProScan is integrated in the subworkflow.", diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 1959e5e..934db02 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -22,8 +22,8 @@ "@id": "./", "@type": "Dataset", "creativeWorkStatus": "InProgress", - "datePublished": "2026-07-24T12:36:11+00:00", - "description": "

\n \n \n \"nf-core/proteinannotator\"\n \n

\n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/proteinannotator)\n[![GitHub Actions CI Status](https://github.com/nf-core/proteinannotator/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/proteinannotator/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/proteinannotator/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/proteinannotator/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/proteinannotator/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.4-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.0.3-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.3)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/proteinannotator)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23proteinannotator-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/proteinannotator)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/proteinannotator** is a bioinformatics pipeline that ...\n\n\n\n\n2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/get_started/environment_setup/overview) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/get_started/run-your-first-pipeline) with `-profile test` before running the workflow on actual data.\n\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run nf-core/proteinannotator \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/running/run-pipelines#using-parameter-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/proteinannotator/usage) and the [parameter documentation](https://nf-co.re/proteinannotator/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/proteinannotator/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/proteinannotator/output).\n\n## Credits\n\nnf-core/proteinannotator was originally written by Olga Botvinnik, Evangelos Karatzas.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](docs/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#proteinannotator` channel](https://nfcore.slack.com/channels/proteinannotator) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "datePublished": "2026-02-09T13:54:13+00:00", + "description": "

\n \n \n \"nf-core/proteinannotator\"\n \n

\n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/proteinannotator)\n[![GitHub Actions CI Status](https://github.com/nf-core/proteinannotator/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/proteinannotator/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/proteinannotator/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/proteinannotator/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/proteinannotator/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.18547735-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.18547735)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.5.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.5.1)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/proteinannotator)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23proteinannotator-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/proteinannotator)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/proteinannotator** is a bioinformatics pipeline that computes statistics for protein FASTA inputs and produces protein annotations based on predicted sequence features, including conserved domains, functions, and secondary structure.\n\n

\n \n \n \"nf-core/proteinannotator\"\n \n

\n\n### Check quality and pre-process\n\nGenerate input amino acid sequence statistics with ([`SeqFu`](https://github.com/telatin/seqfu2/)) and pre-process them (i.e., gap removal, convert to upper case, validate, filter by length, replace special characters such as `/`, and remove duplicate sequences) with ([`SeqKit`](https://github.com/shenwei356/seqkit/))\n\n### Annotate sequences\n\n1. Conserved domain annotation with ([`hmmer`](https://github.com/EddyRivasLab/hmmer/)) against databases\n such as [Pfam](https://ftp.ebi.ac.uk/pub/databases/Pfam/) and [FunFam](https://download.cathdb.info/cath/releases/all-releases/)\n2. Functional annotation:\n - ([`InterProScan`](https://interproscan-docs.readthedocs.io/en/v5/)) a software tool used to analyze protein sequences by scanning them against the signatures of protein families, domains, and sites in the [InterPro](https://www.ebi.ac.uk/interpro/) database, helping to identify their functional characteristics.\n3. Predict secondary structure compositional features such as \u03b1-helices, \u03b2-strands and coils with ([`s4pred`](https://github.com/psipred/s4pred))\n4. Present QC stats for input sequences before and after initial pre-processing with ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\nFirst, prepare a samplesheet with your input data that looks as follows:\n\n`samplesheet.csv`:\n\n```csv\nid,fasta\nspecies1,species1_proteins.fasta\nspecies2,species2_proteins.fasta\n```\n\nEach row represents a FASTA file of proteins from a single species.\n\nNow, you can run the pipeline using:\n\n```bash\nnextflow run nf-core/proteinannotator \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/proteinannotator/usage) and the [parameter documentation](https://nf-co.re/proteinannotator/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/proteinannotator/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/proteinannotator/output).\n\n## Credits\n\nnf-core/proteinannotator was originally written by Olga Botvinnik and Evangelos Karatzas.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n- [Michael L Heuer](https://github.com/heuermh)\n- [Edmund Miller](https://github.com/edmundmiller)\n- [Eric Wei](https://github.com/eweizy)\n- [Martin Beracochea](https://github.com/mberacochea)\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#proteinannotator` channel](https://nfcore.slack.com/channels/proteinannotator) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\nIf you use nf-core/proteinannotator for your analysis, please cite it using the following doi: [10.5281/zenodo.18547735](https://doi.org/10.5281/zenodo.18547735)\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { "@id": "main.nf" diff --git a/subworkflows/local/functional_annotation/main.nf b/subworkflows/local/functional_annotation/main.nf index 5bc5086..447c2cb 100644 --- a/subworkflows/local/functional_annotation/main.nf +++ b/subworkflows/local/functional_annotation/main.nf @@ -4,10 +4,11 @@ include { INTERPROSCAN } from '../../../modules/nf-core/interproscan/main' workflow FUNCTIONAL_ANNOTATION { take: - ch_fasta // channel: [ val(meta), [ fasta ] ] - skip_interproscan // boolean - interproscan_db_url // string, url to download db - interproscan_db // string, existing db + ch_fasta // channel: [ val(meta), [ fasta ] ] + skip_interproscan // boolean + interproscan_db_url // string, url to download db + interproscan_db // string, existing db + interproscan_batch_size // integer, number of sequences per batch main: ch_interproscan_tsv = channel.empty() @@ -23,8 +24,24 @@ workflow FUNCTIONAL_ANNOTATION { ch_interproscan_db = UNTAR.out.untar.map{ f -> f[1] } } - INTERPROSCAN( ch_fasta, ch_interproscan_db ) - ch_interproscan_tsv = ch_interproscan_tsv.mix(INTERPROSCAN.out.tsv) + // Split FASTA into batches for parallel InterProScan processing + ch_fasta_batched = ch_fasta + .flatMap { meta, fasta -> + def chunks = fasta.splitFasta(by: interproscan_batch_size, file: true) + if (chunks instanceof Path) { + // Single chunk (fewer sequences than batch size) + return [[ meta, chunks ]] + } + chunks.withIndex().collect { chunk, idx -> + def new_meta = meta.clone() + new_meta.original_id = meta.id + new_meta.id = "${meta.id}_batch${idx}" + [ new_meta, chunk ] + } + } + + INTERPROSCAN( ch_fasta_batched, ch_interproscan_db ) + ch_interproscan_tsv = INTERPROSCAN.out.tsv } emit: diff --git a/subworkflows/local/functional_annotation/tests/main.nf.test b/subworkflows/local/functional_annotation/tests/main.nf.test index 8ea5d3d..3d433ab 100644 --- a/subworkflows/local/functional_annotation/tests/main.nf.test +++ b/subworkflows/local/functional_annotation/tests/main.nf.test @@ -21,6 +21,7 @@ nextflow_workflow { input[1] = false input[2] = params.pipelines_testdata_base_path + '/testdata/interproscan/interproscan_test.tar.gz' input[3] = [] + input[4] = 1000 """ } } @@ -49,6 +50,7 @@ nextflow_workflow { input[1] = true input[2] = [] input[3] = [] + input[4] = 1000 """ } } diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 6fe1665..f2e3e44 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -102,21 +102,21 @@ "downloaded_dbs/nmpfamsdb_test.hmm.gz", "functional_annotation", "functional_annotation/interproscan", - "functional_annotation/interproscan/T1024", - "functional_annotation/interproscan/T1024/T1024.gff3", - "functional_annotation/interproscan/T1024/T1024.json", - "functional_annotation/interproscan/T1024/T1024.tsv", - "functional_annotation/interproscan/T1024/T1024.xml", - "functional_annotation/interproscan/T1026", - "functional_annotation/interproscan/T1026/T1026.gff3", - "functional_annotation/interproscan/T1026/T1026.json", - "functional_annotation/interproscan/T1026/T1026.tsv", - "functional_annotation/interproscan/T1026/T1026.xml", - "functional_annotation/interproscan/l_arginase", - "functional_annotation/interproscan/l_arginase/l_arginase.gff3", - "functional_annotation/interproscan/l_arginase/l_arginase.json", - "functional_annotation/interproscan/l_arginase/l_arginase.tsv", - "functional_annotation/interproscan/l_arginase/l_arginase.xml", + "functional_annotation/interproscan/T1024_batch0", + "functional_annotation/interproscan/T1024_batch0/T1024_batch0.gff3", + "functional_annotation/interproscan/T1024_batch0/T1024_batch0.json", + "functional_annotation/interproscan/T1024_batch0/T1024_batch0.tsv", + "functional_annotation/interproscan/T1024_batch0/T1024_batch0.xml", + "functional_annotation/interproscan/T1026_batch0", + "functional_annotation/interproscan/T1026_batch0/T1026_batch0.gff3", + "functional_annotation/interproscan/T1026_batch0/T1026_batch0.json", + "functional_annotation/interproscan/T1026_batch0/T1026_batch0.tsv", + "functional_annotation/interproscan/T1026_batch0/T1026_batch0.xml", + "functional_annotation/interproscan/l_arginase_batch0", + "functional_annotation/interproscan/l_arginase_batch0/l_arginase_batch0.gff3", + "functional_annotation/interproscan/l_arginase_batch0/l_arginase_batch0.json", + "functional_annotation/interproscan/l_arginase_batch0/l_arginase_batch0.tsv", + "functional_annotation/interproscan/l_arginase_batch0/l_arginase_batch0.xml", "multiqc", "multiqc/multiqc_data", "multiqc/multiqc_data/llms-full.txt", @@ -206,12 +206,18 @@ "interproscan_test.tar.gz:md5,cde88c0cd841c84dc1203e64854c762b", "metagroot_test.hmm.gz:md5,d23de95bf39fb6e27ffb266ce61ac98e", "nmpfamsdb_test.hmm.gz:md5,ad7a094618ccfdaeed1c03e93f6abf1e", - "T1024.json:md5,0288f7551a14faedc409dd374b3e073e", - "T1024.xml:md5,63a3db0eb0e1f76403411602c23b721e", - "T1026.json:md5,5c2a40474b1cfb50cd043fe0be5e5d52", - "T1026.xml:md5,335552ce1703548565212a1d54681d75", - "l_arginase.json:md5,e0d127dd8a952cbd798999851d1338e6", - "l_arginase.xml:md5,7248992d9c1618cf7baa7515ae79ce32", + "T1024_batch0.gff3:md5,14701bc0093dced3ce9747ae5fc154f7", + "T1024_batch0.json:md5,0288f7551a14faedc409dd374b3e073e", + "T1024_batch0.tsv:md5,d41d8cd98f00b204e9800998ecf8427e", + "T1024_batch0.xml:md5,63a3db0eb0e1f76403411602c23b721e", + "T1026_batch0.gff3:md5,14701bc0093dced3ce9747ae5fc154f7", + "T1026_batch0.json:md5,5c2a40474b1cfb50cd043fe0be5e5d52", + "T1026_batch0.tsv:md5,d41d8cd98f00b204e9800998ecf8427e", + "T1026_batch0.xml:md5,335552ce1703548565212a1d54681d75", + "l_arginase_batch0.gff3:md5,3362ac4dde1351d84ef66d81369297f1", + "l_arginase_batch0.json:md5,e0d127dd8a952cbd798999851d1338e6", + "l_arginase_batch0.tsv:md5,3007fcbf69e07173deb698ad465f5545", + "l_arginase_batch0.xml:md5,7248992d9c1618cf7baa7515ae79ce32", "multiqc_T1024_after.txt:md5,f2a552d4750ff8360941b10cec141499", "multiqc_T1024_before.txt:md5,f2a552d4750ff8360941b10cec141499", "multiqc_T1026_after.txt:md5,aabd4e58ed67d366fd04592ca09dbc9b", @@ -242,10 +248,10 @@ "GI|225038609|EFDID|719595|FULL.ss2:md5,e7d8eaa84d46a6a714ffe00d7f21cdfb" ] ], - "timestamp": "2026-05-05T11:10:57.929189129", "meta": { - "nf-test": "0.9.5", - "nextflow": "26.04.0" - } + "nf-test": "0.9.2", + "nextflow": "25.10.4" + }, + "timestamp": "2026-07-27T17:01:25.693103" } } \ No newline at end of file diff --git a/workflows/proteinannotator.nf b/workflows/proteinannotator.nf index 2b7f0b3..79d50ce 100644 --- a/workflows/proteinannotator.nf +++ b/workflows/proteinannotator.nf @@ -42,6 +42,7 @@ workflow PROTEINANNOTATOR { skip_interproscan // boolean interproscan_db_url // string, url to download db interproscan_db // string, existing db + interproscan_batch_size // integer, number of sequences per batch skip_s4pred // boolean main: @@ -71,7 +72,8 @@ workflow PROTEINANNOTATOR { FAA_SEQFU_SEQKIT.out.fasta, skip_interproscan, interproscan_db_url, - interproscan_db + interproscan_db, + interproscan_batch_size ) if (!skip_s4pred) {