{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://raw.githubusercontent.com/nf-core/proteinfamilies/main/assets/schema_input.json",
    "title": "nf-core/proteinfamilies pipeline - params.input schema",
    "description": "Schema for the file provided with params.input",
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "sample": {
                "type": "string",
                "pattern": "^\\S+$",
                "errorMessage": "Sample name must be provided and cannot contain spaces",
                "meta": ["id"]
            },
            "fasta": {
                "type": "string",
                "format": "file-path",
                "exists": true,
                "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.(fa|fasta|faa|fas)(\\.gz)?$",
                "errorMessage": "Fasta file for amino acid sequences must be provided, cannot contain spaces and must have extension '.fa', '.fasta', '.faa', '.fas', '.fa.gz', '.fasta.gz', '.faa.gz' or '.fas.gz'"
            },
            "existing_hmms_to_update": {
                "type": "string",
                "format": "file-path",
                "exists": true,
                "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.tar\\.gz$",
                "description": "Gzipped tarball file containing existing protein family Hidden Markov Models (HMMs). These models will be used to 'fish' new sequences from the input and then be updated accordingly. Example: 'example.tar.gz'"
            },
            "existing_msas_to_update": {
                "type": "string",
                "format": "file-path",
                "exists": true,
                "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.tar\\.gz$",
                "description": "Tarball file containing Multiple Sequence Alignments (MSAs) for the families to be updated. These alignments are essential for the update process and should match the Hidden Markov Model (HMM) filenames one by one. Example: 'example.tar.gz'"
            }
        },
        "required": ["sample", "fasta"]
    }
}
