Skip to content
Snippets Groups Projects
Verified Commit e2884900 authored by Mia Croiset's avatar Mia Croiset
Browse files

create build_matrix_cool module + finish args def

parent b3ded1fb
No related branches found
No related tags found
No related merge requests found
......@@ -146,6 +146,7 @@ if __name__ == "__main__":
parser.add_argument("-q", "--min_qual")
parser.add_argument("-e", "--enzyme")
parser.add_argument("-f", "--fasta")
parser.add_argument("-c", "--circular")
args = parser.parse_args()
bam1 = args.bam1
......@@ -156,6 +157,7 @@ if __name__ == "__main__":
min_qual = int(args.min_qual)
enzyme = args.enzyme
fasta = args.fasta
circular = args.circular
#hicstuff case sensitive enzymes adaptation
if enzyme == "hindiii":
......@@ -175,7 +177,7 @@ if __name__ == "__main__":
for record in SeqIO.parse(hio.read_compressed(fasta), "fasta"):
# Get chromosome restriction table
restrict_table[record.id] = hcd.get_restriction_table(
record.seq, enzyme, circular=False
record.seq, enzyme, circular=circular
)
hcd.attribute_fragments(out_pairs, out_idx, restrict_table)
......
......@@ -5,6 +5,7 @@ import argparse
import pysam as ps
import pandas as pd
import shutil as st
import subprocess as sp
import itertools
from hicstuff_log import logger
import hicstuff_io as hio
......
......@@ -129,6 +129,7 @@ params {
hicstuff_valid_pairs = 'valid.pairs'
hicstuff_valid_idx = 'valid_idx.pairs'
hicstuff_min_qual = 30
hicstuff_matrix = 'abs_fragments_contacts_weighted.txt'
}
process {
......@@ -167,7 +168,8 @@ process {
ext.args = { [
" -o ${params.hicstuff_valid_pairs}",
" -x ${params.hicstuff_valid_idx}",
" -q ${params.hicstuff_min_qual}"
" -q ${params.hicstuff_min_qual}",
" -c ${params.hicstuff_circular}"
].join('').trim() }
publishDir = [
path: { "${params.outdir}/hicstuff/pairs" },
......@@ -175,6 +177,14 @@ process {
]
}
withName: 'BUILD_MATRIX' {
ext.args = params.hicstuff_matrix
publishDir = [
path: { "${params.outdir}/hicstuff/matrix" },
mode: 'copy'
]
}
withName: 'BUILD_MATRIX_COOL' {
ext.args = params.hicstuff_matrix
publishDir = [
path: { "${params.outdir}/hicstuff/matrix" },
mode: 'copy'
......
process BAM2PAIRS {
tag "$info_contigs"
tag "$meta1"
label 'process_high'
conda "conda-forge::python=3.9 conda-forge::biopython=1.80 conda-forge::numpy=1.22.3 conda-forge::matplotlib=3.6.3 conda-forge::pandas=1.5.3"
......
process BUILD_MATRIX {
tag "$idx_pairs"
tag "$meta1.id"
label 'process_single'
conda "conda-forge::python=3.9 conda-forge::biopython=1.80 conda-forge::numpy=1.22.3 conda-forge::matplotlib=3.6.3 conda-forge::pandas=1.5.3"
......@@ -10,12 +10,15 @@ process BUILD_MATRIX {
tuple val(meta), path(fragments_list)
output:
tuple val(meta), path("${meta1.id}_fragments_contacts_weighted.txt"), emit: matrix
tuple val(meta), path("${meta1.id}_*"), emit: matrix
script:
def args = task.ext.args ?: ''
"""
hicstuff_build_matrix.py -p ${idx_pairs} -f ${fragments_list} -t graal -o abs_fragments_contacts_weighted.txt
hicstuff_build_matrix.py -p ${idx_pairs} -f ${fragments_list} -t graal -o ${args}
mv abs_fragments_contacts_weighted.txt ${meta1.id}_fragments_contacts_weighted.txt
mv ${args} ${meta1.id}_${args}
"""
}
process BUILD_MATRIX_COOL {
tag "$meta1.id"
label 'process_single'
conda "conda-forge::python=3.9 conda-forge::biopython=1.80 conda-forge::numpy=1.22.3 conda-forge::matplotlib=3.6.3 conda-forge::pandas=1.5.3"
container = "lbmc/hicstuff:3.1.3"
input:
tuple val(meta1), path(idx_pairs)
tuple val(meta), path(fragments_list)
output:
tuple val(meta), path("${meta1.id}_*.cool"), emit: matrix
script:
def args = task.ext.args ?: ''
def base = args.replaceFirst(/.txt/,"")
"""
hicstuff_build_matrix.py -p ${idx_pairs} -f ${fragments_list} -t cool -o ${args}
mv ${base}.cool ${meta1.id}_${base}.cool
"""
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment