import string # Module directory job_modules = "jobs/modules/" # Job params directory job_params = "jobs/params/" # Job wrappers directory job_wrappers = "jobs/wrappers/" # Job scripts directory job_scripts = "jobs/scripts/" # SYSTEM PATH, probably /bin system_path = "/bin/" # System commands mv, cp, sort, zcat, awk e.t.c system_commands = [ "mv", "cp", "sort", "zcat", "awk" ] # Current align tools align_tools = [ "bwa", "bowtie2" ] # Current peak calling tools peak_tools = [ "spp", "macs2", "gem", "peakranger", "ccat", "zerone", "hiddendomains", "pepr" ] # Peak_type validation peak_types = { "spp": ["narrow", "broad"], "macs2": ["narrow", "broad"], "gem": ["narrow"], "peakranger": ["narrow"], "ccat": ["broad"], "zerone": ["broad"], "hiddendomains": ["broad"], "pepr": ["narrow", "broad"] } # File extensions file_extensions = { "genome_index": ["fa", "fna"], "fastq": ["fastq", "fastq.gz"], "sai": ["sai"], "sam": ["sam"], "bam": ["bam"], "bed": ["bed", "peak", "region", "narrowPeak", "broadPeak", "tagAlign", "narrowPeak.gz", "broadPeak.gz"], "bwa_genome": ["amb", "ann", "bwt", "pac", "sa"], "bowtie2_genome": ["1.bt2", "2.bt2", "3.bt2", "4.bt2", "rev.1.bt2", "rev.2.bt2"], "quality": ["quality"], "qc": ["qc"], "pdf": ["pdf"], "ccscore": ["ccscore"], "xls": ["xls"], "yaml": ["yaml"], "result": ["bed", "narrowPeak", "broadPeak", "tagAlign", "bam"], "txt": ["txt"], "chrom_sizes": ["sizes"], "read_dist" : ["txt"], "plaintext": ["txt", "md"], "ccat_conf": ["txt", "conf"], "log": ["log"] } file_extensions["any"] = list(string.ascii_lowercase) # list of resources that can be specified per job (step) in # the workflow and corresponding Pegasus profile info resources = { "walltime": { "namespace": "globus", "key": "maxwalltime" }, "memory": { "namespace": "condor", "key": "request_memory" }, "cores": { "namespace": "pegasus", "key": "cores" }, "nodes": { "namespace": "pegasus", "key": "nodes" } } # Defines the types of input / output arguments # argument -> Any non file argument # string -> Any string argument # numeric -> Numeric arguments. # file -> Any file argument that isn't redirected # file -> Normal file arguments. # stdout -> Any file argument that is redirected from stdout # stderr -> Any file argument that is redirected from stderr # list -> For variable argument inputs # list -> Currently a list of files. argument_types = { "argument": ["string", "numeric"], "file": ["file", "rawfile", "stdout", "stderr"], "list": ["list"] } # Defines information about arguments argument_keys = { "required": ["type", "changeable", "has_value"], "optional": ["required", "default", "file_type", "path"] } # workflow_job keys job_keys = { "required": ["inputs", "additional_inputs", "outputs", "command", "arguments"] + resources.keys(), "optional": [] } # param keys param_keys = { "required": [], "optional": ["arguments"] + resources.keys() } file_list_keys = { "required": ["name", "type"], "optional": ["file_type"] } # workflow order workflow = ["align", "remove_duplicates", "peak_calling"] # genome info genomes = { "bwa": { "base_file": file_extensions["genome_index"], "additional_files": file_extensions["bwa_genome"] }, "bowtie2": { "base_file": file_extensions["genome_index"], "additional_files": file_extensions["bowtie2_genome"] } }