Configure foldseek pipeline for WES execution
- Update container image to harbor.cluster.omic.ai/omic/foldseek:latest - Update default paths to /omic/eureka/foldseek/ PVC mount paths - Add k8s profile with eureka-pvc storage - Remove stageInMode copy and containerOptions for k8s compatibility - Update params.json defaults to s3://omic/eureka/foldseek/ paths
This commit is contained in:
22
main.nf
22
main.nf
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
nextflow.enable.dsl=2
|
nextflow.enable.dsl=2
|
||||||
|
|
||||||
params.query = '/mnt/OmicNAS/private/old/olamide/foldseek/input/1CRN.pdb'
|
params.query = '/omic/eureka/foldseek/input/1CRN.pdb'
|
||||||
params.target = '/mnt/OmicNAS/private/old/olamide/foldseek/input/'
|
params.target = '/omic/eureka/foldseek/input/'
|
||||||
params.outdir = '/mnt/OmicNAS/private/old/olamide/foldseek/output/'
|
params.outdir = '/omic/eureka/foldseek/output'
|
||||||
params.mode = 'search'
|
params.mode = 'search'
|
||||||
params.sensitivity = 9.5
|
params.sensitivity = 9.5
|
||||||
params.evalue = 0.001
|
params.evalue = 0.001
|
||||||
@@ -14,10 +14,8 @@ params.coverage = 0.0
|
|||||||
params.format_output = 'query,target,fident,alnlen,mismatch,gapopen,qstart,qend,tstart,tend,evalue,bits'
|
params.format_output = 'query,target,fident,alnlen,mismatch,gapopen,qstart,qend,tstart,tend,evalue,bits'
|
||||||
|
|
||||||
process FOLDSEEK_SEARCH {
|
process FOLDSEEK_SEARCH {
|
||||||
container 'foldseek:latest'
|
container 'harbor.cluster.omic.ai/omic/foldseek:latest'
|
||||||
containerOptions '-v /mnt:/mnt'
|
|
||||||
publishDir params.outdir, mode: 'copy'
|
publishDir params.outdir, mode: 'copy'
|
||||||
stageInMode 'copy'
|
|
||||||
|
|
||||||
input:
|
input:
|
||||||
path query
|
path query
|
||||||
@@ -47,10 +45,8 @@ process FOLDSEEK_SEARCH {
|
|||||||
}
|
}
|
||||||
|
|
||||||
process FOLDSEEK_CLUSTER {
|
process FOLDSEEK_CLUSTER {
|
||||||
container 'foldseek:latest'
|
container 'harbor.cluster.omic.ai/omic/foldseek:latest'
|
||||||
containerOptions '-v /mnt:/mnt'
|
|
||||||
publishDir params.outdir, mode: 'copy'
|
publishDir params.outdir, mode: 'copy'
|
||||||
stageInMode 'copy'
|
|
||||||
|
|
||||||
input:
|
input:
|
||||||
path structures
|
path structures
|
||||||
@@ -77,10 +73,8 @@ process FOLDSEEK_CLUSTER {
|
|||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
process FOLDSEEK_MULTIMER_SEARCH {
|
process FOLDSEEK_MULTIMER_SEARCH {
|
||||||
container 'foldseek:latest'
|
container 'harbor.cluster.omic.ai/omic/foldseek:latest'
|
||||||
containerOptions '-v /mnt:/mnt'
|
|
||||||
publishDir params.outdir, mode: 'copy'
|
publishDir params.outdir, mode: 'copy'
|
||||||
stageInMode 'copy'
|
|
||||||
|
|
||||||
input:
|
input:
|
||||||
path query
|
path query
|
||||||
@@ -107,10 +101,8 @@ process FOLDSEEK_MULTIMER_SEARCH {
|
|||||||
}
|
}
|
||||||
|
|
||||||
process FOLDSEEK_CREATEDB {
|
process FOLDSEEK_CREATEDB {
|
||||||
container 'foldseek:latest'
|
container 'harbor.cluster.omic.ai/omic/foldseek:latest'
|
||||||
containerOptions '-v /mnt:/mnt'
|
|
||||||
publishDir params.outdir, mode: 'copy'
|
publishDir params.outdir, mode: 'copy'
|
||||||
stageInMode 'copy'
|
|
||||||
|
|
||||||
input:
|
input:
|
||||||
path structures
|
path structures
|
||||||
|
|||||||
@@ -1,18 +1,15 @@
|
|||||||
// Manifest for Nextflow metadata
|
|
||||||
manifest {
|
manifest {
|
||||||
name = 'Foldseek-Nextflow'
|
name = 'foldseek'
|
||||||
author = 'Generated from Foldseek repository'
|
author = 'Olamide'
|
||||||
homePage = 'https://github.com/steineggerlab/foldseek'
|
|
||||||
description = 'Nextflow pipeline for Foldseek - Fast protein structure search and clustering'
|
description = 'Nextflow pipeline for Foldseek - Fast protein structure search and clustering'
|
||||||
mainScript = 'main.nf'
|
mainScript = 'main.nf'
|
||||||
version = '1.0.0'
|
version = '1.0.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
// Global default parameters
|
|
||||||
params {
|
params {
|
||||||
query = "/mnt/OmicNAS/private/old/olamide/foldseek/input/1CRN.pdb"
|
query = "/omic/eureka/foldseek/input/1CRN.pdb"
|
||||||
target = "/mnt/OmicNAS/private/old/olamide/foldseek/input/"
|
target = "/omic/eureka/foldseek/input/"
|
||||||
outdir = "/mnt/OmicNAS/private/old/olamide/foldseek/output"
|
outdir = "/omic/eureka/foldseek/output"
|
||||||
mode = "search"
|
mode = "search"
|
||||||
sensitivity = 9.5
|
sensitivity = 9.5
|
||||||
evalue = 0.001
|
evalue = 0.001
|
||||||
@@ -22,22 +19,30 @@ params {
|
|||||||
format_output = "query,target,fident,alnlen,mismatch,gapopen,qstart,qend,tstart,tend,evalue,bits"
|
format_output = "query,target,fident,alnlen,mismatch,gapopen,qstart,qend,tstart,tend,evalue,bits"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Container configurations
|
|
||||||
docker {
|
docker {
|
||||||
enabled = true
|
enabled = true
|
||||||
runOptions = '-v /mnt:/mnt'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Process configurations
|
|
||||||
process {
|
process {
|
||||||
|
container = 'harbor.cluster.omic.ai/omic/foldseek:latest'
|
||||||
cpus = 4
|
cpus = 4
|
||||||
memory = '16 GB'
|
memory = '16 GB'
|
||||||
}
|
}
|
||||||
|
|
||||||
// Execution configurations
|
profiles {
|
||||||
executor {
|
standard {
|
||||||
$local {
|
docker {
|
||||||
cpus = 8
|
temp = 'auto'
|
||||||
memory = '32 GB'
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
k8s {
|
||||||
|
process {
|
||||||
|
executor = 'k8s'
|
||||||
|
}
|
||||||
|
k8s {
|
||||||
|
storageClaimName = 'eureka-pvc'
|
||||||
|
storageMountPath = '/omic/eureka'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
169
params.json
Normal file
169
params.json
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
{
|
||||||
|
"params": {
|
||||||
|
"query": {
|
||||||
|
"type": "file",
|
||||||
|
"description": "Path to input protein structure files (PDB/mmCIF format)",
|
||||||
|
"default": "s3://omic/eureka/foldseek/input/1CRN.pdb",
|
||||||
|
"required": true,
|
||||||
|
"pipeline_io": "input",
|
||||||
|
"var_name": "params.query",
|
||||||
|
"examples": [
|
||||||
|
"s3://omic/eureka/foldseek/input/1CRN.pdb",
|
||||||
|
"s3://omic/eureka/foldseek/input/*.pdb"
|
||||||
|
],
|
||||||
|
"pattern": ".*\\.(pdb|cif|mmcif)(\\.gz)?$",
|
||||||
|
"enum": [],
|
||||||
|
"validation": {},
|
||||||
|
"notes": "Can be a single PDB/mmCIF file or a pattern to match multiple files. Supports gzipped files."
|
||||||
|
},
|
||||||
|
"target": {
|
||||||
|
"type": "file",
|
||||||
|
"description": "Path to target database or directory for structure search",
|
||||||
|
"default": "s3://omic/eureka/foldseek/input/",
|
||||||
|
"required": true,
|
||||||
|
"pipeline_io": "input",
|
||||||
|
"var_name": "params.target",
|
||||||
|
"examples": [
|
||||||
|
"s3://omic/eureka/foldseek/input/",
|
||||||
|
"s3://omic/eureka/foldseek/databases/"
|
||||||
|
],
|
||||||
|
"pattern": ".*",
|
||||||
|
"enum": [],
|
||||||
|
"validation": {},
|
||||||
|
"notes": "Can be a Foldseek database or a directory containing structure files."
|
||||||
|
},
|
||||||
|
"outdir": {
|
||||||
|
"type": "folder",
|
||||||
|
"description": "Directory for Foldseek output results",
|
||||||
|
"default": "s3://omic/eureka/foldseek/output",
|
||||||
|
"required": true,
|
||||||
|
"pipeline_io": "output",
|
||||||
|
"var_name": "params.outdir",
|
||||||
|
"examples": [
|
||||||
|
"s3://omic/eureka/foldseek/output"
|
||||||
|
],
|
||||||
|
"pattern": ".*",
|
||||||
|
"enum": [],
|
||||||
|
"validation": {},
|
||||||
|
"notes": "Directory where all output files will be stored. Will be created if it doesn't exist."
|
||||||
|
},
|
||||||
|
"mode": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Operation mode for Foldseek pipeline",
|
||||||
|
"default": "search",
|
||||||
|
"required": true,
|
||||||
|
"pipeline_io": "parameter",
|
||||||
|
"var_name": "params.mode",
|
||||||
|
"examples": [
|
||||||
|
"search",
|
||||||
|
"cluster",
|
||||||
|
"multimersearch",
|
||||||
|
"createdb"
|
||||||
|
],
|
||||||
|
"pattern": "^(search|cluster|multimersearch|createdb)$",
|
||||||
|
"enum": ["search", "cluster", "multimersearch", "createdb"],
|
||||||
|
"validation": {},
|
||||||
|
"notes": "search: structure search, cluster: clustering, multimersearch: complex search, createdb: create database"
|
||||||
|
},
|
||||||
|
"sensitivity": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Search sensitivity (higher = more sensitive but slower)",
|
||||||
|
"default": 9.5,
|
||||||
|
"required": false,
|
||||||
|
"pipeline_io": "parameter",
|
||||||
|
"var_name": "params.sensitivity",
|
||||||
|
"examples": [
|
||||||
|
7.5,
|
||||||
|
9.5
|
||||||
|
],
|
||||||
|
"pattern": "^[0-9]+(\\.[0-9]+)?$",
|
||||||
|
"enum": [],
|
||||||
|
"validation": {},
|
||||||
|
"notes": "Fast: 7.5, Default: 9.5. Range: 1.0 to 15.0"
|
||||||
|
},
|
||||||
|
"evalue": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "E-value threshold for reporting matches",
|
||||||
|
"default": 0.001,
|
||||||
|
"required": false,
|
||||||
|
"pipeline_io": "parameter",
|
||||||
|
"var_name": "params.evalue",
|
||||||
|
"examples": [
|
||||||
|
0.001,
|
||||||
|
0.01,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
"pattern": "^[0-9]+(\\.[0-9]+)?([eE][+-]?[0-9]+)?$",
|
||||||
|
"enum": [],
|
||||||
|
"validation": {},
|
||||||
|
"notes": "Lower values are more stringent. Default: 0.001"
|
||||||
|
},
|
||||||
|
"threads": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Number of CPU threads to use",
|
||||||
|
"default": 4,
|
||||||
|
"required": false,
|
||||||
|
"pipeline_io": "parameter",
|
||||||
|
"var_name": "params.threads",
|
||||||
|
"examples": [
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
16
|
||||||
|
],
|
||||||
|
"pattern": "^[0-9]+$",
|
||||||
|
"enum": [],
|
||||||
|
"validation": {},
|
||||||
|
"notes": "More threads improve speed for larger searches."
|
||||||
|
},
|
||||||
|
"alignment_type": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Type of structural alignment algorithm",
|
||||||
|
"default": 2,
|
||||||
|
"required": false,
|
||||||
|
"pipeline_io": "parameter",
|
||||||
|
"var_name": "params.alignment_type",
|
||||||
|
"examples": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
"pattern": "^[0-3]$",
|
||||||
|
"enum": [0, 1, 2, 3],
|
||||||
|
"validation": {},
|
||||||
|
"notes": "0: 3Di only, 1: TMalign (global), 2: 3Di+AA (default), 3: LoLalign"
|
||||||
|
},
|
||||||
|
"coverage": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Minimum fraction of aligned residues",
|
||||||
|
"default": 0.0,
|
||||||
|
"required": false,
|
||||||
|
"pipeline_io": "parameter",
|
||||||
|
"var_name": "params.coverage",
|
||||||
|
"examples": [
|
||||||
|
0.0,
|
||||||
|
0.5,
|
||||||
|
0.8
|
||||||
|
],
|
||||||
|
"pattern": "^[0-1](\\.[0-9]+)?$",
|
||||||
|
"enum": [],
|
||||||
|
"validation": {},
|
||||||
|
"notes": "Range: 0.0 to 1.0. Higher values produce more global alignments."
|
||||||
|
},
|
||||||
|
"format_output": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Output format columns (comma-separated)",
|
||||||
|
"default": "query,target,fident,alnlen,mismatch,gapopen,qstart,qend,tstart,tend,evalue,bits",
|
||||||
|
"required": false,
|
||||||
|
"pipeline_io": "parameter",
|
||||||
|
"var_name": "params.format_output",
|
||||||
|
"examples": [
|
||||||
|
"query,target,fident,evalue,bits",
|
||||||
|
"query,target,alntmscore,qtmscore,ttmscore"
|
||||||
|
],
|
||||||
|
"pattern": ".*",
|
||||||
|
"enum": [],
|
||||||
|
"validation": {},
|
||||||
|
"notes": "Available columns: query, target, fident, alnlen, mismatch, gapopen, qstart, qend, tstart, tend, evalue, bits, alntmscore, qtmscore, ttmscore, lddt, prob"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user