# Model weights paths
model_resource:
  root: /gpfs/data/aifantislab/home/zhouh05/genomics/dimitris/chromnitron/run_202603/data/input/model_weights
  base_weights: chromnitron_base.pt
  per_cap_lora_weights: CAPs

# Input resources paths
input_resource:
  root: /gpfs/data/aifantislab/home/zhouh05/genomics/dimitris/chromnitron/run_202603/data/input/input_resources
  sequence: DNA_sequence
  atac: ATAC_seq
  cap: CAP_embeddings

# Loci selection config
# NOTE: Single cell line mode — rep1 as control, rep2 as experimental.
# Use only the 'conserved' output from downstream steps, which captures
# stably active loci across both replicates (the true KG1 landscape).
# Ignore upregulated/downregulated outputs as they only reflect replicate noise.
loci_source_config:
  mode: ATAC_seq
  rna:
    log2fc_csv:
    top_diff_genes:
    top_conserved_genes:
    tss_radius:
    log2fc_threshold:
  atac:
    data_path:
      control: KG1_rep1
      experimental: KG1_rep2
    active_locus_threshold: 1
    log2fc_threshold: 0.1
    top_diff_genes: 2000
    top_conserved_genes: 2000  # increased: conserved is the focus here
  atac_seq_specific_config:
    mode: Promoter
    promoter:
      tss_radius: 500
    all_peaks:

preprocessing_data_config:
  gff_file: gencode.v45.transcripts.annotation.gff3
  chr_sizes_file: hg38.chrom.sizes
  output:
    path: /gpfs/data/aifantislab/home/zhouh05/genomics/dimitris/chromnitron/run_202603/downstream/results_with_lncrna/s1_preprocessing

# Inference configuration
inference_config:
  input:
    root: /gpfs/data/aifantislab/home/zhouh05/genomics/dimitris/chromnitron/run_202603/chromnitron/chromnitron_allchroms/examples/inputs
    assembly: hg38
    excluded_region_path: auto
    locus_list_path: locus.bed
    locus_list_out: locus_KG1.bed
    celltype_list_path: celltype.txt
    cap_list_path: cap.txt
  inference:
    enable: True
    use_finetune: auto
    batch_size: 8
    num_workers: 8
  output:
    path: /gpfs/data/aifantislab/home/zhouh05/genomics/dimitris/chromnitron/run_202603/chromnitron_output
  post_processing:
    enable: True
    valid_margin: 1024
    store_bigwig: True
    store_zarr: True
    peak_calling: True

# Merge inference configuration
merge_inference_config:
  output:
    path: /gpfs/data/aifantislab/home/zhouh05/genomics/dimitris/chromnitron/run_202603/downstream/results_with_lncrna/KG1/s3_merge_inference/outputs

# Extract data matrices configuration
extract_data_config:
  output:
    path: /gpfs/data/aifantislab/home/zhouh05/genomics/dimitris/chromnitron/run_202603/downstream/results_with_lncrna/KG1/s4_data_matrices

# Postprocessing configuration
postprocess_config:
  output:
    path: /gpfs/data/aifantislab/home/zhouh05/genomics/dimitris/chromnitron/run_202603/downstream/results_with_lncrna/KG1/s5_postprocessing
  variance_filtering:
    enable: True
    n_genes: 2000
    n_caps: 500
    condition: conserved  # focus on conserved since no real comparison condition
  remove_noise:
    enable: True
    top_percent: 10.0
    conditions: ['all']
  plotting:
    plot_histograms: True
    plot_variability: True
    plot_chipseq: True

# Signature configuration
signature_config:
  output:
    path: /gpfs/data/aifantislab/home/zhouh05/genomics/dimitris/chromnitron/run_202603/downstream/results_with_lncrna/KG1/s6_signature
  method: nmf
  seed: 9
  kmeans:
    min_k: 3
    max_k: 40
  nmf:
    init: nndsvd
    n_components: 4
    min_components: 3
    max_components: 40
    max_iter: 200
