[
    {
        "id": "moments2Dinfer",
        "name": "moments infer 2D model",
        "article": "10.1534\/genetics.117.200493",
        "website": "https:\/\/bitbucket.org\/simongravel\/moments\/",
        "git": "https:\/\/bitbucket.org\/simongravel\/moments\/src\/master\/",
        "description": "moments implements methods for demographic history and selection inference from genetic data, based on diffusion approximations to the allele frequency spectrum.",
        "version": "1.1.16",
        "documentation": "https:\/\/moments.readthedocs.io\/",
        "multiqc": "custom",
        "commands": [
            {
                "name": "moments2Dinfer",
                "command": "",
                "category": "genet_pop",
                "output_dir": "moments2Dinfer",
                "inputs": [
                    {
                        "name": "vcfFile",
                        "type": "vcf_file",
                        "description": "A vcf file to compute a SFS from"
                    },
                    {
                        "name": "popmap_file",
                        "type": "popmap",
                        "file": "",
                        "description": "Path to tsv file with samples group"
                    }
                ],
                "outputs": [
                    {
                        "name": "moments2DinferDone",
                        "type": "txt",
                        "file": "moments2DinferDone.txt",
                        "description": "Demographic inference is done"
                    }
                ],
                "options": [
                    {
                        "name": "moments2Dinfer_polarized",
                        "prefix": null,
                        "type": "checkbox",
                        "value": false,
                        "label": "If True, the data are assumed to be correctly polarized by 'outgroup_allele'"
                    },
                    {
                        "name": "moments2Dinfer_projections",
                        "prefix": "--projections",
                        "type": "numeric",
                        "value": 20,
                        "min": 10,
                        "max": 1000,
                        "step": 1,
                        "label": "sample sizes to project down to for each population."
                    },
                    {
                        "name": "moments2Dinfer_model",
                        "prefix": "",
                        "type": "select",
                        "choices": [
                            {
                                "Strict Isolation.": "SI"
                            },
                            {
                                "Strict Isolation with exponential size changes.": "SIexp"
                            },
                            {
                                "Strict Isolation with heterogeneous Ne (shared between populations).": "SI2N"
                            },
                            {
                                "Isolation with Migration.": "IM"
                            },
                            {
                                "Isolation with Migration with exponential size changes.": "IMexp"
                            },
                            {
                                "Isolation with Migration with heterogeneous Ne (shared between populations).": "IM2N"
                            },
                            {
                                "Isolation with Migration with heterogeneous Me (shared between populations).": "IM2M"
                            },
                            {
                                "Isolation with Migration with heterogeneous Me (population-specific).": "IM2M2P"
                            },
                            {
                                "Isolation with Migration with heterogeneous Ne (shared between populations) and heterogeneous Me (shared between populations).": "IM2N2M"
                            },
                            {
                                "Isolation with Migration with heterogeneous Ne (shared between populations) and heterogeneous Me (population-specific).": "IM2N2M2P"
                            },
                            {
                                "Secondary Contact.": "SC"
                            },
                            {
                                "Secondary Contact with exponential size changes.": "SCexp"
                            },
                            {
                                "Secondary Contact with heterogeneous Ne (shared between populations).": "SC2N"
                            },
                            {
                                "Secondary Contact with heterogeneous Me (shared between populations).": "SC2M"
                            },
                            {
                                "Secondary Contact with heterogeneous Me (population-specific).": "SC2M2P"
                            },
                            {
                                "Secondary Contact with heterogeneous Ne (shared between populations) and heterogeneous Me (shared between populations).": "SC2N2M"
                            },
                            {
                                "Secondary Contact with heterogeneous Ne (shared between populations) and heterogeneous Me (population-specific).": "SC2N2M2P"
                            },
                            {
                                "Ancient Migration.": "AM"
                            },
                            {
                                "Ancient Migration with exponential size changes.": "AMexp"
                            },
                            {
                                "Ancient Migration with heterogeneous Ne (shared between populations).": "AM2N"
                            },
                            {
                                "Ancient Migration with heterogeneous Me (shared between populations).": "AM2M"
                            },
                            {
                                "Ancient Migration with heterogeneous Me (population-specific).": "AM2M2P"
                            },
                            {
                                "Ancient Migration with heterogeneous Ne (shared between populations) and heterogeneous Me (shared between populations).": "AM2N2M"
                            },
                            {
                                "Ancient Migration with heterogeneous Ne (shared between populations) and heterogeneous Me (population-specific).": "AM2N2M2P"
                            }
                        ],
                        "value": "SI",
                        "label": "Migration Model"
                    },
                    {
                        "name": "moments2Dinfer_optimizer",
                        "prefix": "",
                        "type": "select",
                        "choices": [
                            {
                                "BFGS algorithm": "optimize_log"
                            },
                            {
                                "L-BFGS-B algorithm": "optimize_log_lbfgsb"
                            },
                            {
                                "downhill simplex on log params": "optimize_log_fmin"
                            },
                            {
                                "Powell method on slices of parameter space sequentially": "optimize_log_powell"
                            },
                            {
                                "Modified version of scipy dual_anneal": "optimize_dual_anneal"
                            }
                        ],
                        "value": "optimize_log",
                        "label": "given a demographic model and a set of parameters, Optimzation method find those parameters that minimize the negative log-likelihood of the data given the model"
                    },
                    {
                        "name": "moments2Dinfer_MaxIter",
                        "prefix": "",
                        "type": "numeric",
                        "value": 1,
                        "min": 1,
                        "max": 100,
                        "step": 1,
                        "label": "How long the optimizer will run"
                    },
                    {
                        "name": "moments2Dinfer_firstpop",
                        "prefix": "",
                        "type": "numeric",
                        "value": 1,
                        "min": 1,
                        "max": 50,
                        "step": 1,
                        "label": "index of the first population to analyse"
                    },
                    {
                        "name": "moments2Dinfer_secondpop",
                        "prefix": "",
                        "type": "numeric",
                        "value": 2,
                        "min": 1,
                        "max": 50,
                        "step": 1,
                        "label": "index of the second population to analyse"
                    },
                    {
                        "name": "moments2Dinfer_mutation",
                        "prefix": "",
                        "type": "numeric",
                        "value": 2,
                        "min": 1,
                        "max": 50,
                        "step": 1,
                        "label": "mutation rate in %"
                    },
                    {
                        "name": "moments2Dinfer_gtime",
                        "prefix": "",
                        "type": "numeric",
                        "value": 20,
                        "min": 1,
                        "max": 100,
                        "step": 1,
                        "label": "generation time in years"
                    }
                ]
            }
        ],
        "assets": [
            "models_and_params.txt",
            "moments_models_2pop.py",
            "local_Misc.py",
            "local_scipy_dual_anneal.py",
            "moments_inference_dualanneal.py"
        ],
        "install": [],
        "citations": {
            "moments": [
                "Jouganous, J., Long, W., Ragsdale, A. P., & Gravel, S. (2017). Inferring the joint demographic history of multiple populations: beyond the diffusion approximation. Genetics, 206(3), 1549-1567. doi: 10.1534\/genetics.117.200493"
            ]
        },
        "yaml": "{\n  id: moments2Dinfer,\n  name: moments infer 2D model,\n  article: \"10.1534\/genetics.117.200493\",\n  website: \"https:\/\/bitbucket.org\/simongravel\/moments\/\",\n  git: \"https:\/\/bitbucket.org\/simongravel\/moments\/src\/master\/\",\n  description: \"moments implements methods for demographic history and selection inference from genetic data, based on diffusion approximations to the allele frequency spectrum.\",\n  version: \"1.1.16\",\n  documentation: \"https:\/\/moments.readthedocs.io\/\",\n  multiqc: \"custom\",\n  commands:\n    [\n      {\n        name: moments2Dinfer,\n        command: \"\",\n        category: \"genet_pop\",\n        output_dir: moments2Dinfer,\n        inputs: [\n               { name: vcfFile, type: \"vcf_file\", description: \"A vcf file to compute a SFS from\"},\n               { name: popmap_file, type: \"popmap\", file: \"\", description: \"Path to tsv file with samples group\"}\n             ],\n        outputs: [{ name: moments2DinferDone, type: \"txt\",file: \"moments2DinferDone.txt\",  description: \"Demographic inference is done\" }],\n        options: [\n          {\n              name: moments2Dinfer_polarized,\n              prefix: ,\n              type: checkbox,\n              value: FALSE,\n              label: \"If True, the data are assumed to be correctly polarized by 'outgroup_allele'\",\n          },\n          {\n              name: moments2Dinfer_projections,\n              prefix: --projections,\n              type: numeric,\n              value: 20,\n              min: 10,\n              max: 1000,\n              step: 1,\n              label: \"sample sizes to project down to for each population.\",\n          },\n          {\n              name: \"moments2Dinfer_model\",\n              prefix: \"\",\n              type: \"select\",\n              choices:\n                [\n                  Strict Isolation.: \"SI\",\n                  Strict Isolation with exponential size changes.: \"SIexp\",\n                  Strict Isolation with heterogeneous Ne (shared between populations).: \"SI2N\",\n                  Isolation with Migration.: \"IM\",\n                  Isolation with Migration with exponential size changes.: \"IMexp\",\n                  Isolation with Migration with heterogeneous Ne (shared between populations).: \"IM2N\",\n                  Isolation with Migration with heterogeneous Me (shared between populations).: \"IM2M\",\n                  Isolation with Migration with heterogeneous Me (population-specific).: \"IM2M2P\",\n                  Isolation with Migration with heterogeneous Ne (shared between populations) and heterogeneous Me (shared between populations).: \"IM2N2M\",\n                  Isolation with Migration with heterogeneous Ne (shared between populations) and heterogeneous Me (population-specific).: \"IM2N2M2P\",\n                  Secondary Contact.: \"SC\",\n                  Secondary Contact with exponential size changes.: \"SCexp\",\n                  Secondary Contact with heterogeneous Ne (shared between populations).: \"SC2N\",\n                  Secondary Contact with heterogeneous Me (shared between populations).: \"SC2M\",\n                  Secondary Contact with heterogeneous Me (population-specific).: \"SC2M2P\",\n                  Secondary Contact with heterogeneous Ne (shared between populations) and heterogeneous Me (shared between populations).: \"SC2N2M\",\n                  Secondary Contact with heterogeneous Ne (shared between populations) and heterogeneous Me (population-specific).: \"SC2N2M2P\",\n                  Ancient Migration.: \"AM\",\n                  Ancient Migration with exponential size changes.: \"AMexp\",\n                  Ancient Migration with heterogeneous Ne (shared between populations).: \"AM2N\",\n                  Ancient Migration with heterogeneous Me (shared between populations).: \"AM2M\",\n                  Ancient Migration with heterogeneous Me (population-specific).: \"AM2M2P\",\n                  Ancient Migration with heterogeneous Ne (shared between populations) and heterogeneous Me (shared between populations).: \"AM2N2M\",\n                  Ancient Migration with heterogeneous Ne (shared between populations) and heterogeneous Me (population-specific).: \"AM2N2M2P\"\n                ],\n              value: \"SI\",\n              label: \"Migration Model\",\n            },\n            {\n              name: \"moments2Dinfer_optimizer\",\n              prefix: \"\",\n              type: \"select\",\n              choices:\n                [\n                  BFGS algorithm: \"optimize_log\",\n                  L-BFGS-B algorithm: \"optimize_log_lbfgsb\",\n                  downhill simplex on log params: \"optimize_log_fmin\",\n                  Powell method on slices of parameter space sequentially: \"optimize_log_powell\",\n                  Modified version of scipy dual_anneal: \"optimize_dual_anneal\",\n                ],\n              value: \"optimize_log\",\n              label: \"given a demographic model and a set of parameters, Optimzation method find those parameters that minimize the negative log-likelihood of the data given the model\",\n            },\n            {\n              name: \"moments2Dinfer_MaxIter\",\n              prefix: \"\",\n              type: numeric,\n              value: 1,\n              min: 1,\n              max: 100,\n              step: 1,\n              label:  \"How long the optimizer will run\"\n            }, \n            {\n              name: moments2Dinfer_firstpop,\n              prefix: \"\",\n              type: numeric,\n              value: 1,\n              min: 1,\n              max: 50,\n              step: 1,\n              label: \"index of the first population to analyse\",\n            },\n            {\n              name: moments2Dinfer_secondpop,\n              prefix: \"\",\n              type: numeric,\n              value: 2,\n              min: 1,\n              max: 50,\n              step: 1,\n              label: \"index of the second population to analyse\",\n            },\n            {\n              name: moments2Dinfer_mutation,\n              prefix: \"\",\n              type: numeric,\n              value: 2,\n              min: 1,\n              max: 50,\n              step: 1,\n              label: \"mutation rate in %\",\n            },\n            {\n              name: moments2Dinfer_gtime,\n              prefix: \"\",\n              type: numeric,\n              value: 20,\n              min: 1,\n              max: 100,\n              step: 1,\n              label: \"generation time in years\",\n            },\n        ],\n      },\n    ],\n  assets:  [\"models_and_params.txt\",\"moments_models_2pop.py\",\"local_Misc.py\",\"local_scipy_dual_anneal.py\",\"moments_inference_dualanneal.py\"],  \n  install:\n    {\n      # moments: [\n      #   'pip3 install cython==0.29.0',\n      #   'pip3 install git+https:\/\/bitbucket.org\/simongravel\/moments.git '\n      # ],\n    },\n  citations:\n    {\n     moments: [\n      \"Jouganous, J., Long, W., Ragsdale, A. P., & Gravel, S. (2017). Inferring the joint demographic history of multiple populations: beyond the diffusion approximation. Genetics, 206(3), 1549-1567. doi: 10.1534\/genetics.117.200493\"\n     ],\n    },\n}\n"
    }
]