diff --git a/CHANGELOG.md b/CHANGELOG.md index 4976f40..be98a73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). ## Unreleased +### Added + +- experimental p300 ChIP-seq support + ### Changed - updated dependencies diff --git a/anansnake/envs/ananse.yaml b/anansnake/envs/ananse.yaml index e1b5c00..80feaf4 100644 --- a/anansnake/envs/ananse.yaml +++ b/anansnake/envs/ananse.yaml @@ -3,5 +3,11 @@ channels: - conda-forge - bioconda dependencies: - - python =3.10 - - ananse =0.5.0 + - conda-forge::python =3.10 + - bioconda::ananse =0.5.1 + - conda-forge::icu =73 # ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.15' not found (sql and pyarrow import order related) + - conda-forge::conda-ecosystem-user-package-isolation=1.0 + + - pip + - pip: + - git+https://github.com/vanheeringen-lab/ANANSE.git@p300_2 diff --git a/anansnake/envs/gimme.yaml b/anansnake/envs/gimme.yaml index 4ab14b0..57b4867 100644 --- a/anansnake/envs/gimme.yaml +++ b/anansnake/envs/gimme.yaml @@ -3,8 +3,13 @@ channels: - conda-forge - bioconda dependencies: - - python =3.10 - - gimmemotifs-minimal =0.18.0 + - python =3.11 + #- gimmemotifs-minimal =0.18.3 - gffread - orthofinder - - xgboost # optional maelstrom dependency + - conda-forge::conda-ecosystem-user-package-isolation=1.0 + + - pip + - pip: + - git+https://github.com/vanheeringen-lab/gimmemotifs@scanner_fix + - xgboost >= 1.0.2 # cannot be installed using pip diff --git a/anansnake/rules/ananse.smk b/anansnake/rules/ananse.smk index ce4a170..c5a122c 100644 --- a/anansnake/rules/ananse.smk +++ b/anansnake/rules/ananse.smk @@ -14,11 +14,13 @@ rule binding: expand("{binding_dir}/{{condition}}.h5", ** config), log: expand("{log_dir}/binding_{{condition}}.txt", **config), - benchmark: - expand("{benchmark_dir}/binding_{{condition}}.txt", **config)[0] + # benchmark: + # expand("{benchmark_dir}/binding_{{condition}}.txt", **config)[0] params: atac_samples=lambda wildcards: CONDITIONS[wildcards.condition]["ATAC-seq samples"], + enhancer_data=lambda wildcards: "-P" if config.get("enhancer_data", "").lower() == "p300" else ("-H" if config.get("enhancer_data", "").lower() == "h3k27ac" else "-A"), jaccard=config["jaccard"], + tfs=f"--tfs {config['tfs']} if "tfs" in config else "", threads: 1 # multithreading not required when using a pfmscorefile resources: mem_mb=40_000, # 30-50 GB @@ -33,14 +35,16 @@ rule binding: # additional log info printf "using columns: {params.atac_samples}\n\n" > {log} + printf "enhancer data input argument: {params.enhancer_data}\n\n" > {log} ananse binding \ - -A {input.atac} \ + {params.enhancer_data} {input.atac} \ -c {params.atac_samples} \ -g {input.genome} \ -p {input.pfm} \ --pfmscorefile {input.pfmscorefile} \ --jaccard-cutoff {params.jaccard} \ + {params.tfs} \ -n {threads} \ -o $outdir \ >> {log} 2>&1 @@ -73,10 +77,11 @@ rule network: expand("{network_dir}/{{condition}}.tsv",**config), log: expand("{log_dir}/network_{{condition}}.txt",**config), - benchmark: - expand("{benchmark_dir}/network_{{condition}}.txt",**config)[0] + # benchmark: + # expand("{benchmark_dir}/network_{{condition}}.txt",**config)[0] params: rna_samples=lambda wildcards: CONDITIONS[wildcards.condition]["RNA-seq samples"], + tfs=f"--tfs {config['tfs']} if "tfs" in config else "", threads: 1 # multithreading explodes memory resources: network=1, @@ -96,6 +101,7 @@ rule network: {input.binding} \ -e {input.genes} \ -c {params.rna_samples} \ + {params.tfs} \ -g {input.genome} \ -o {output} \ --full-output \ @@ -125,8 +131,8 @@ rule influence: diff_inf = expand("{influence_dir}/{{contrast}}_diffnetwork.tsv",** config), log: expand("{log_dir}/influence_{{contrast}}.txt",** config)[0] - benchmark: - expand("{benchmark_dir}/influence_{{contrast}}.txt",**config)[0] + # benchmark: + # expand("{benchmark_dir}/influence_{{contrast}}.txt",**config)[0] params: edges=config["edges"], padj=config["padj"], diff --git a/example/config.yaml b/example/config.yaml index 69c5c99..19d2f3a 100644 --- a/example/config.yaml +++ b/example/config.yaml @@ -50,6 +50,7 @@ merged_technical_reps: true # set to false if you used 'technical_replicates: " merged_biological_reps: true # set to false if you used 'biological_replicates: "keep" in s2s' # ANANSE binding +enhancer_data: ATAC # experimental option: p300 jaccard: 0.2 # default: 0.1 # ANANSE influence