/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Nextflow config file for running full-size tests
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Defines input files and everything required to run a full size pipeline test.

    Use as follows:
        nextflow run nf-core/proteinfamilies -profile test_full,<docker/singularity> --outdir <OUTDIR>

----------------------------------------------------------------------------------------
*/

params {
    config_profile_name        = 'Full test profile'
    config_profile_description = 'Full test dataset to check simultaneous create and update/create pipeline functions with two input samples'

    // Input data for full size test
    // Input data
    input                        = params.pipelines_testdata_base_path + 'samplesheets/samplesheet_full.csv'
    // Clustering
    clustering_tool              = 'linclust'
    cluster_seq_identity         = 0.5
    cluster_coverage             = 0.9
    cluster_size_threshold       = 5
    // Downstream samplesheets
    skip_proteinfold_samplesheet = false
}

process {
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:FAA_SEQFU_SEQKIT:SEQFU_STATS_BEFORE' {
        memory = { 12.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:FAA_SEQFU_SEQKIT:SEQKIT_SEQ' {
        memory = { 60.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:FAA_SEQFU_SEQKIT:SEQKIT_REPLACE' {
        memory = { 1.3.GB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:FAA_SEQFU_SEQKIT:SEQKIT_RMDUP' {
        memory = { 50.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:FAA_SEQFU_SEQKIT:SEQFU_STATS_AFTER' {
        memory = { 12.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:UNTAR_HMM' {
        memory = { 6.MB * task.attempt }
        time   = { 2.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:UNTAR_MSA' {
        memory = { 10.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:CAT_HMM' {
        memory = { 12.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:HMMER_HMMSEARCH' {
        memory = { 100.MB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:BRANCH_HITS_FASTA' {
        memory = { 2.GB * task.attempt }
        time   = { 2.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:SEQKIT_SEQ' {
        memory = { 50.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:CAT_FASTA' {
        memory = { 6.MB * task.attempt }
        time   = { 2.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:MMSEQS_FASTA_CLUSTER:MMSEQS_CREATEDB' {
        memory = { 220.MB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:MMSEQS_FASTA_CLUSTER:MMSEQS_LINCLUST' {
        memory = { 6.MB * task.attempt }
        time   = { 2.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:MMSEQS_FASTA_CLUSTER:MMSEQS_CREATETSV' {
        memory = { 6.MB * task.attempt }
        time   = { 2.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:REMOVE_REDUNDANT_SEQS' {
        memory = { 60.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:ALIGN_SEQUENCES:FAMSA_ALIGN' {
        memory = { 1.2.GB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:CLIPKIT' {
        memory = { 2.GB * task.attempt }
        time   = { 2.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:HMMER_HMMBUILD' {
        memory = { 180.MB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:EXTRACT_FAMILY_MEMBERS' {
        memory = { 60.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:UPDATE_FAMILIES:EXTRACT_FAMILY_REPS' {
        memory = { 60.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:MMSEQS_FASTA_CLUSTER:MMSEQS_CREATEDB' {
        memory = { 220.MB * task.attempt }
        time   = { 3.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:MMSEQS_FASTA_CLUSTER:MMSEQS_LINCLUST' {
        memory = { 2.5.GB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:MMSEQS_FASTA_CLUSTER:MMSEQS_CREATETSV' {
        memory = { 12.MB * task.attempt }
        time   = { 3.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:CALCULATE_CLUSTER_DISTRIBUTION' {
        memory = { 14.MB * task.attempt }
        time   = { 3.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:CHUNK_CLUSTERS' {
        memory = { 4.GB * task.attempt }
        time   = { 3.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:GENERATE_FAMILIES:ALIGN_SEQUENCES:FAMSA_ALIGN' {
        memory = { 1.2.GB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:GENERATE_FAMILIES:CLIPKIT' {
        memory = { 2.GB * task.attempt }
        time   = { 2.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:GENERATE_FAMILIES:HMMER_HMMBUILD' {
        memory = { 180.MB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:GENERATE_FAMILIES:HMMER_HMMSEARCH' {
        memory = { 300.MB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:GENERATE_FAMILIES:FILTER_RECRUITED' {
        memory = { 250.MB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:GENERATE_FAMILIES:HMMER_HMMALIGN' {
        memory = { 20.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:EXTRACT_FAMILY_REPS' {
        memory = { 60.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:FIND_CONCATENATE_HMMS' {
        memory = { 7.MB * task.attempt }
        time   = { 3.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:HMMER_HMMSEARCH' {
        memory = { 200.MB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:IDENTIFY_REDUNDANT_FAMS' {
        memory = { 1.9.GB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:FIND_CONCATENATE_SKIP_IDS' {
        memory = { 7.MB * task.attempt }
        time   = { 2.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:FILTER_NON_REDUNDANT_HMM' {
        memory = { 20.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:FILTER_NON_REDUNDANT_SEED_MSA' {
        memory = { 18.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:FILTER_NON_REDUNDANT_FULL_MSA' {
        memory = { 20.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:FILTER_NON_REDUNDANT_FASTA' {
        memory = { 30.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:MMSEQS_FASTA_CLUSTER:MMSEQS_CREATEDB' {
        memory = { 210.MB * task.attempt }
        time   = { 2.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:MMSEQS_FASTA_CLUSTER:MMSEQS_LINCLUST' {
        memory = { 210.MB * task.attempt }
        time   = { 3.m    * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:MMSEQS_FASTA_CLUSTER:MMSEQS_CREATETSV' {
        memory = { 6.MB * task.attempt }
        time   = { 2.m  * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:REMOVE_REDUNDANT_SEQS' {
        memory = { 50.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:REMOVE_REDUNDANCY:ALIGN_SEQUENCES:FAMSA_ALIGN' {
        memory = { 50.MB * task.attempt }
        time   = { 3.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:EXTRACT_FAMILY_MEMBERS' {
        memory = { 60.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:EXTRACT_FAMILY_REPS' {
        memory = { 60.MB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
    withName: 'NFCORE_PROTEINFAMILIES:PROTEINFAMILIES:MULTIQC' {
        memory = { 20.GB * task.attempt }
        time   = { 2.m   * task.attempt }
    }
}
