Skip to content
Snippets Groups Projects
Commit accf8ec8 authored by Iris Mestres Pascual's avatar Iris Mestres Pascual
Browse files

feat: simplify config

parent 4b3080c5
No related branches found
No related tags found
1 merge request!25feat: simplify config
--- ---
#### GLOBAL PARAMETERS ##### #############################
#### REQUIRED PARAMETERS ####
# Directories #############################
# Usually there is no need to change these
samples: "test_files/samples_table.csv" # For the mapping worflow samples: test_files/samples_table.csv
quantify_input_dir: "results" # For the quantify worflow
output_dir: "results" #### GENOME RESOURCES ####
scripts_dir: "../scripts"
local_log: "logs/local"
cluster_log: "logs/cluster" genome_url: "ftp://ftp.ensembl.org/pub/release-98/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna_sm.chromosome.Y.fa.gz"
gtf_url: "ftp://ftp.ensembl.org/pub/release-98/gtf/homo_sapiens/Homo_sapiens.GRCh38.98.gtf.gz"
####################################################################################################### mirna_url: "https://www.mirbase.org/ftp/CURRENT/genomes/hsa.gff3"
#### map_chr_url: "https://raw.githubusercontent.com/dpryan79/ChromosomeMappings/master/GRCh38_UCSC2ensembl.txt"
#### PREPARE PARAMETERS
####
#######################################################################################################
###############################
# Isomirs annotation #### "OPTIONAL" PARAMETERS ####
# Number of base pairs to add/substract from 5' (start) and 3' (end) coordinates. ###############################
bp_5p: [-1, 0, +1]
bp_3p: [-1, 0, +1] #### DIRECTORIES #####
output_dir: results/
#### PARAMETERS SPECIFIC TO INPUTS ##### local_log: logs/local/
cluster_log: logs/cluster/
organism: "homo_sapiens/chrY" scripts_dir: ../scripts/
homo_sapiens/chrY:
# URLs to genome, gene & miRNA annotations #### ISOMIR GENERATION PARAMETERS ####
genome_url: "ftp://ftp.ensembl.org/pub/release-98/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna_sm.chromosome.Y.fa.gz"
gtf_url: "ftp://ftp.ensembl.org/pub/release-98/gtf/homo_sapiens/Homo_sapiens.GRCh38.98.gtf.gz" bp_5p: [-2, -1, 0, +1, +2]
mirna_url: "https://www.mirbase.org/ftp/CURRENT/genomes/hsa.gff3" bp_3p: [-2, -1, 0, +1, +2]
# Chromosome name mappings between UCSC <-> Ensembl
# Other organisms available at: https://github.com/dpryan79/ChromosomeMappings #### PROCESSING PARAMETERS ####
map_chr_url: "https://raw.githubusercontent.com/dpryan79/ChromosomeMappings/master/GRCh38_UCSC2ensembl.txt"
# Chromosome name mapping parameters:
column: 1
delimiter: "TAB"
#######################################################################################################
####
#### MAP PARAMETERS
####
#######################################################################################################
#### PARAMETERS SPECIFIC TO INPUTS #####
# All of these are produced by the "prepare" workflow
genome: "results/homo_sapiens/chrY/genome.processed.fa"
gtf: "results/homo_sapiens/chrY/gene_annotations.filtered.gtf"
transcriptome: "results/homo_sapiens/chrY/transcriptome_idtrim.fa"
transcriptome_index_segemehl: "results/homo_sapiens/chrY/transcriptome_index_segemehl.idx"
genome_index_segemehl: "results/homo_sapiens/chrY/genome_index_segemehl.idx"
exons: "results/homo_sapiens/chrY/exons.bed"
header_of_collapsed_fasta: "results/homo_sapiens/chrY/headerOfCollapsedFasta.sam"
#### TOOL PARAMETERS ####
# quality filter # quality filter
q_value: 10 q_value: 10
p_value: 50 p_value: 50
# adapter removal # adapter removal
error_rate: 0.1 error_rate: 0.1
minimum_length: 15 minimum_length: 15
overlap: 3 overlap: 3
max_n: 0 max_n: 0
# mapping # mapping
max_length_reads: 30 max_length_reads: 30
nh: 100 nh: 100
####################################################################################################### #### QUANTIFICATION PARAMETERS ####
####
#### QUANTIFY PARAMETERS
####
#######################################################################################################
# Types of miRNAs to quantify
#mir_list: ["miRNA", "miRNA_primary_transcript", "isomirs"]
mir_list: ["miRNA", "miRNA_primary_transcript"] mir_list: ["miRNA", "miRNA_primary_transcript"]
# Resources: miR annotations, chromosome name mappings
# All of these are produced by the "prepare" workflow
mirnas_anno: "results/homo_sapiens/chrY/mirna_filtered.bed"
isomirs_anno: "results/homo_sapiens/chrY/isomirs_annotation.bed"
... ...
\ No newline at end of file
--- ---
#### GLOBAL PARAMETERS ##### #############################
#### REQUIRED PARAMETERS ####
# Directories #############################
# Usually there is no need to change these
samples: "test_files/samples_table.csv" # For the mapping worflow # All paths are relative to the current working directory unless noted otherwise
quantify_input_dir: "results" # For the quantify worflow
output_dir: "results" samples: path/to/samples_table.csv
scripts_dir: "../scripts"
local_log: "logs/local" #### GENOME RESOURCES #####
cluster_log: "logs/cluster"
####################################################################################################### # All genome resources have to match the source/organism
#### # of all samples in the sample table
#### PREPARE PARAMETERS
#### # FTP/HTTP URL to gzipped genome in FASTA format, Ensembl style
####################################################################################################### genome_url: # e.g. "ftp://ftp.ensembl.org/pub/release-106/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna_sm.primary_assembly.fa.gz"
# Isomirs annotation file # FTP/HTTP URL to gzipped gene annotations in GTF format, Ensembl style
# Number of base pairs to add/substract from 5' (start) and 3' (end) coordinates. gtf_url: # e.g. "ftp://ftp.ensembl.org/pub/release-106/gtf/homo_sapiens/Homo_sapiens.GRCh38.106.chr.gtf.gz"
bp_5p: [0] # array of numbers, e.g., [-2,-1,0,+1], to include 2 upstream and 1 downstream nts
bp_3p: [0] # array of numbers, e.g., [-2,-1,0,+1], to include 2 upstream and 1 downstream nts # FTP/HTTP URL to unzipped microRNA annotations in GFF format, miRBase style
mirna_url: # e.g. "https://www.mirbase.org/ftp/CURRENT/genomes/hsa.gff3"
#### PARAMETERS SPECIFIC TO INPUTS ##### # Tab-separated mappings table between UCSC (column 1)
# and Ensembl (coulm 2) chromosome names
organism: "org/pre" # e.g., "homo_sapiens/GRCh38.100" or "mus_musculus/GRCm37.98" # Available at: https://github.com/dpryan79/ChromosomeMappings
# this string specifies a path, and the "/" is important for this map_chr_url: # e.g. "https://raw.githubusercontent.com/dpryan79/ChromosomeMappings/master/GRCh38_UCSC2ensembl.txt"
# "pre" specifies the assembly version
###############################
org/pre: # One section for each list item in "organism"; entry should match precisely what #### "OPTIONAL" PARAMETERS ####
# is in the "organism" section above, one entry per list item above, omitting the "" ###############################
# URLs to genome, gene & miRNA annotations
genome_url: # FTP/HTTP URL to gzipped genome in FASTA format, Ensembl style # The below parameters only need to be changed if the default behavior of
# e.g. "ftp://ftp.ensembl.org/pub/release-106/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna_sm.primary_assembly.fa.gz" # MIRFLOWZ is to be changed; however, they still need to be present!
gtf_url: # FTP/HTTP URL to gzipped gene annotations in GTF format, Ensembl style
# e.g. "ftp://ftp.ensembl.org/pub/release-106/gtf/homo_sapiens/Homo_sapiens.GRCh38.106.chr.gtf.gz" #### DIRECTORIES ####
mirna_url: # FTP/HTTP URL to unzipped microRNA annotations in GFF format, miRBase style
# e.g. "https://www.mirbase.org/ftp/CURRENT/genomes/hsa.gff3" output_dir: results/
local_log: logs/local/
# Chromosome name mappings between UCSC <-> Ensembl cluster_log: logs/cluster/
# Other organisms available at: https://github.com/dpryan79/ChromosomeMappings scripts_dir: ../scripts/
map_chr_url: # FTP/HTTP URL to mapping table
# e.g. "https://raw.githubusercontent.com/dpryan79/ChromosomeMappings/master/GRCh38_UCSC2ensembl.txt"
# Chromosome name mapping parameters: #### ISOMIR GENERATION PARAMETERS ####
column: 1 # Column number from input file where to change chromosome name
delimiter: "TAB" # Delimiter of the input file # Generate isomiR annotations with the indicated number of shifts relative to
# the start and end position of each annotated mature miRNA, as an array of
####################################################################################################### # relative positions
#### # Examples:
#### MAP PARAMETERS # - `bp_5p: [-2,0,+1]` and `bp_3p: [+1]` generates 3 isomiRs for each mature
#### # miRNA: one that starts two nucleotides before, one that starts exactly at
####################################################################################################### # and one that starts one nucleotide after the annotated mature miRNA; all
# isomiRs will stop one nucleotide after the end of the annotated mature
#### PARAMETERS SPECIFIC TO INPUTS ##### # miRNA; note that because `0` is not included in the `bp_3p` array, the
# annotated mature miRNAs will not be included in this example
# Resources: genome, transcriptome, genes, miRs # - Use `bp_5p: [0]` and `bp_3p: [0]` to only include the mature annotated
# All of these are produced by the "prepare" workflow # miRNAs and no isomiRs
genome: "path/to/genome.processed.fa"
gtf: "path/to/gene_annotations.filtered.gtf" bp_5p: [-2, -1, 0, +1, +2]
transcriptome: "path/to/transcriptome_idtrim.fa" bp_3p: [-2, -1, 0, +1, +2]
transcriptome_index_segemehl: "path/to/transcriptome_index_segemehl.idx"
genome_index_segemehl: "path/to/genome_index_segemehl.idx" #### PROCESSING PARAMETERS ####
exons: "path/to/exons.bed"
header_of_collapsed_fasta: "path/to/headerOfCollapsedFasta.sam"
#### TOOL PARAMETERS ####
# quality filter # quality filter
q_value: 10 # Q (Phred) score; minimum quality score to keep q_value: 10 # Q (Phred) score; minimum quality score to keep
p_value: 50 # minimum % of bases that must have Q quality p_value: 50 # minimum % of bases that must have Q quality
# adapter removal # adapter removal
error_rate: 0.1 # fraction of allowed errors error_rate: 0.1 # fraction of allowed errors
minimum_length: 15 # discard processed reads shorter than the indicated length minimum_length: 15 # discard processed reads shorter than the indicated length
overlap: 3 # minimum overlap length of adapter and read to trim the bases overlap: 3 # minimum overlap length of adapter and read to trim the bases
max_n: 0 # discard reads containing more than the indicated number of N bases max_n: 0 # discard reads containing more than the indicated number of N bases
# mapping # mapping
max_length_reads: 30 # maximum length of processed reads to map with oligomap max_length_reads: 30 # maximum length of processed reads to map with oligomap
nh: 100 # discard reads with more mappings than the indicated number nh: 100 # discard reads with more mappings than the indicated number
#######################################################################################################
####
#### QUANTIFY PARAMETERS
####
#######################################################################################################
#### QUANTIFICATION PARAMETERS ####
# Types of miRNAs to quantify # Types of miRNAs to quantify
# Remove miRNA types you are not interested in # Remove miRNA types you are not interested in
mir_list: ["miRNA", "miRNA_primary_transcript", "isomirs"] mir_list: ["miRNA", "miRNA_primary_transcript", "isomirs"]
...
# Resources: miR annotations, chromosome name mappings
# All of these are produced by the "prepare" workflow
mirnas_anno: "path/to/mirna_filtered.bed"
isomirs_anno: "path/to/isomirs_annotation.bed"
...
\ No newline at end of file
--- ---
#### GLOBAL PARAMETERS ##### #############################
#### REQUIRED PARAMETERS ####
#############################
# Directories samples: test_files/samples_table.csv
# Usually there is no need to change these
samples: "test_files/samples_table.csv" # For the mapping worflow
quantify_input_dir: "results" # For the quantify worflow
output_dir: "results"
scripts_dir: "../scripts"
local_log: "logs/local"
cluster_log: "logs/cluster"
####################################################################################################### #### GENOME RESOURCES ####
####
#### PREPARE PARAMETERS
####
#######################################################################################################
# Isomirs annotation genome_url: "ftp://ftp.ensembl.org/pub/release-98/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna_sm.chromosome.Y.fa.gz"
# Number of base pairs to add/substract from 5' (start) and 3' (end) coordinates. gtf_url: "ftp://ftp.ensembl.org/pub/release-98/gtf/homo_sapiens/Homo_sapiens.GRCh38.98.gtf.gz"
bp_5p: [-1, 0, +1] mirna_url: "https://www.mirbase.org/ftp/CURRENT/genomes/hsa.gff3"
bp_3p: [-1, 0, +1]
map_chr_url: "https://raw.githubusercontent.com/dpryan79/ChromosomeMappings/master/GRCh38_UCSC2ensembl.txt"
#### PARAMETERS SPECIFIC TO INPUTS ##### ###############################
#### "OPTIONAL" PARAMETERS ####
###############################
organism: "homo_sapiens/chrY" #### DIRECTORIES #####
homo_sapiens/chrY: output_dir: results/
# URLs to genome, gene & miRNA annotations local_log: logs/local/
genome_url: "ftp://ftp.ensembl.org/pub/release-98/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna_sm.chromosome.Y.fa.gz" cluster_log: logs/cluster/
gtf_url: "ftp://ftp.ensembl.org/pub/release-98/gtf/homo_sapiens/Homo_sapiens.GRCh38.98.gtf.gz" scripts_dir: ../scripts/
mirna_url: "https://www.mirbase.org/ftp/CURRENT/genomes/hsa.gff3"
# Chromosome name mappings between UCSC <-> Ensembl
# Other organisms available at: https://github.com/dpryan79/ChromosomeMappings
map_chr_url: "https://raw.githubusercontent.com/dpryan79/ChromosomeMappings/master/GRCh38_UCSC2ensembl.txt"
# Chromosome name mapping parameters:
column: 1
delimiter: "TAB"
####################################################################################################### #### ISOMIR GENERATION PARAMETERS ####
####
#### MAP PARAMETERS
####
#######################################################################################################
#### PARAMETERS SPECIFIC TO INPUTS ##### bp_5p: [-2, -1, 0, +1, +2]
bp_3p: [-2, -1, 0, +1, +2]
genome: "results/homo_sapiens/chrY/genome.processed.fa"
gtf: "results/homo_sapiens/chrY/gene_annotations.filtered.gtf"
transcriptome: "results/homo_sapiens/chrY/transcriptome_idtrim.fa"
transcriptome_index_segemehl: "results/homo_sapiens/chrY/transcriptome_index_segemehl.idx"
genome_index_segemehl: "results/homo_sapiens/chrY/genome_index_segemehl.idx"
exons: "results/homo_sapiens/chrY/exons.bed"
header_of_collapsed_fasta: "results/homo_sapiens/chrY/headerOfCollapsedFasta.sam"
#### PROCESSING PARAMETERS ####
#### TOOL PARAMETERS ####
# quality filter # quality filter
q_value: 10 q_value: 10
p_value: 50 p_value: 50
# adapter removal # adapter removal
error_rate: 0.1 error_rate: 0.1
minimum_length: 15 minimum_length: 15
overlap: 3 overlap: 3
max_n: 0 max_n: 0
# mapping # mapping
max_length_reads: 30 max_length_reads: 30
nh: 100 nh: 100
#######################################################################################################
####
#### QUANTIFY PARAMETERS
####
#######################################################################################################
#### QUANTIFICATION PARAMETERS ####
# Types of miRNAs to quantify
#mir_list: ["miRNA", "miRNA_primary_transcript", "isomirs"]
mir_list: ["miRNA", "miRNA_primary_transcript"] mir_list: ["miRNA", "miRNA_primary_transcript"]
# Resources: miR annotations, chromosome name mappings
# All of these are produced by the "prepare" workflow
mirnas_anno: "results/homo_sapiens/chrY/mirna_filtered.bed"
isomirs_anno: "results/homo_sapiens/chrY/isomirs_annotation.bed"
... ...
\ No newline at end of file
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
import os import os
import pandas as pd import pandas as pd
configfile: "../config/config.yaml" configfile: "config.yaml"
############################################################################### ###############################################################################
### Global configuration ### Global configuration
...@@ -45,53 +45,29 @@ include: os.path.join("rules" , "quantify.smk") ...@@ -45,53 +45,29 @@ include: os.path.join("rules" , "quantify.smk")
############################################################################### ###############################################################################
rule finish: rule finish:
input: input:
idx_transcriptome=expand( idx_transcriptome=os.path.join(
os.path.join(
config["output_dir"], config["output_dir"],
"{organism}",
"transcriptome_index_segemehl.idx", "transcriptome_index_segemehl.idx",
),
organism=config["organism"],
), ),
idx_genome=expand( idx_genome=os.path.join(
os.path.join(
config["output_dir"], config["output_dir"],
"{organism}",
"genome_index_segemehl.idx", "genome_index_segemehl.idx",
),
organism=config["organism"],
), ),
exons=expand( exons=os.path.join(
os.path.join(
config["output_dir"], config["output_dir"],
"{organism}",
"exons.bed", "exons.bed",
),
organism=config["organism"],
), ),
header=expand( header=os.path.join(
os.path.join(
config["output_dir"], config["output_dir"],
"{organism}",
"headerOfCollapsedFasta.sam", "headerOfCollapsedFasta.sam",
),
organism=config["organism"],
), ),
mirnafilt=expand( mirnafilt=os.path.join(
os.path.join(
config["output_dir"], config["output_dir"],
"{organism}",
"mirna_filtered.bed", "mirna_filtered.bed",
),
organism=config["organism"],
), ),
isomirs=expand( isomirs=os.path.join(
os.path.join(
config["output_dir"], config["output_dir"],
"{organism}",
"isomirs_annotation.bed", "isomirs_annotation.bed",
),
organism=config["organism"],
), ),
maps=expand( maps=expand(
os.path.join( os.path.join(
......
...@@ -268,8 +268,8 @@ rule fastx_collapser: ...@@ -268,8 +268,8 @@ rule fastx_collapser:
rule mapping_genome_segemehl: rule mapping_genome_segemehl:
input: input:
reads=os.path.join(config["output_dir"], "{sample}", "collapsed.fasta"), reads=os.path.join(config["output_dir"], "{sample}", "collapsed.fasta"),
genome=config["genome"], genome=os.path.join(config["output_dir"], "genome.processed.fa"),
genome_index_segemehl=config["genome_index_segemehl"], genome_index_segemehl=os.path.join(config["output_dir"], "genome_index_segemehl.idx"),
output: output:
gmap=os.path.join( gmap=os.path.join(
config["output_dir"], "{sample}", "segemehlGenome_map.sam" config["output_dir"], "{sample}", "segemehlGenome_map.sam"
...@@ -306,8 +306,8 @@ rule mapping_genome_segemehl: ...@@ -306,8 +306,8 @@ rule mapping_genome_segemehl:
rule mapping_transcriptome_segemehl: rule mapping_transcriptome_segemehl:
input: input:
reads=os.path.join(config["output_dir"], "{sample}", "collapsed.fasta"), reads=os.path.join(config["output_dir"], "{sample}", "collapsed.fasta"),
transcriptome=config["transcriptome"], transcriptome=os.path.join(config["output_dir"], "transcriptome_idtrim.fa"),
transcriptome_index_segemehl=config["transcriptome_index_segemehl"], transcriptome_index_segemehl=os.path.join(config["output_dir"], "transcriptome_index_segemehl.idx"),
output: output:
tmap=os.path.join( tmap=os.path.join(
config["output_dir"], "{sample}", "segemehlTranscriptome_map.sam" config["output_dir"], "{sample}", "segemehlTranscriptome_map.sam"
...@@ -379,7 +379,7 @@ rule mapping_genome_oligomap: ...@@ -379,7 +379,7 @@ rule mapping_genome_oligomap:
reads=os.path.join( reads=os.path.join(
config["output_dir"], "{sample}", "filtered_for_oligomap.fasta" config["output_dir"], "{sample}", "filtered_for_oligomap.fasta"
), ),
target=config["genome"], target=os.path.join(config["output_dir"], "genome.processed.fa"),
output: output:
gmap=os.path.join( gmap=os.path.join(
config["output_dir"], "{sample}", "oligoGenome_map.fa" config["output_dir"], "{sample}", "oligoGenome_map.fa"
...@@ -496,7 +496,7 @@ rule mapping_transcriptome_oligomap: ...@@ -496,7 +496,7 @@ rule mapping_transcriptome_oligomap:
reads=os.path.join( reads=os.path.join(
config["output_dir"], "{sample}", "filtered_for_oligomap.fasta" config["output_dir"], "{sample}", "filtered_for_oligomap.fasta"
), ),
target=config["transcriptome"], target=os.path.join(config["output_dir"], "transcriptome_idtrim.fa"),
output: output:
tmap=os.path.join( tmap=os.path.join(
config["output_dir"], "{sample}", "oligoTranscriptome_map.fa" config["output_dir"], "{sample}", "oligoTranscriptome_map.fa"
...@@ -808,7 +808,7 @@ rule trans_to_gen: ...@@ -808,7 +808,7 @@ rule trans_to_gen:
"noheader_TranscriptomeMappings.sam", "noheader_TranscriptomeMappings.sam",
), ),
script=os.path.join(config["scripts_dir"], "sam_trx_to_sam_gen.pl"), script=os.path.join(config["scripts_dir"], "sam_trx_to_sam_gen.pl"),
exons=config["exons"], exons=os.path.join(config["output_dir"], "exons.bed"),
output: output:
genout=os.path.join(config["output_dir"], "{sample}", "TransToGen.sam"), genout=os.path.join(config["output_dir"], "{sample}", "TransToGen.sam"),
params: params:
...@@ -861,7 +861,7 @@ rule cat_mapping: ...@@ -861,7 +861,7 @@ rule cat_mapping:
rule add_header: rule add_header:
input: input:
header=config["header_of_collapsed_fasta"], header=os.path.join(config["output_dir"], "headerOfCollapsedFasta.sam"),
catmaps=os.path.join( catmaps=os.path.join(
config["output_dir"], "{sample}", "catMappings.sam" config["output_dir"], "{sample}", "catMappings.sam"
), ),
......
This diff is collapsed.
...@@ -74,7 +74,7 @@ rule finish_quantify: ...@@ -74,7 +74,7 @@ rule finish_quantify:
rule bamtobed: rule bamtobed:
input: input:
alignment=os.path.join( alignment=os.path.join(
config["quantify_input_dir"], config["output_dir"],
"{sample}", "{sample}",
"convertedSortedMappings_{sample}.bam", "convertedSortedMappings_{sample}.bam",
), ),
...@@ -143,7 +143,9 @@ rule intersect_mirna: ...@@ -143,7 +143,9 @@ rule intersect_mirna:
alignment=os.path.join( alignment=os.path.join(
config["output_dir"], "{sample}", "sorted.alignments.bed12" config["output_dir"], "{sample}", "sorted.alignments.bed12"
), ),
mirna=config["mirnas_anno"], mirna=os.path.join(
config["output_dir"], "mirna_filtered.bed"
),
output: output:
intersect=os.path.join( intersect=os.path.join(
config["output_dir"], "{sample}", "intersect_mirna.bed" config["output_dir"], "{sample}", "intersect_mirna.bed"
...@@ -178,7 +180,9 @@ rule intersect_mirna: ...@@ -178,7 +180,9 @@ rule intersect_mirna:
# alignment=os.path.join( # alignment=os.path.join(
# config["output_dir"], "{sample}", "sorted.alignments.bed12" # config["output_dir"], "{sample}", "sorted.alignments.bed12"
# ), # ),
# isomirs=config["isomirs_anno"], # isomirs=os.path.join(
# config["output_dir"], "isomirs_annotation.bed",
# ),
# output: # output:
# intersect=os.path.join( # intersect=os.path.join(
# config["output_dir"], "{sample}", "intersect_isomirs.bed" # config["output_dir"], "{sample}", "intersect_isomirs.bed"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment