diff --git a/chipseq.py b/chipseq.py index df54226..8a80a3c 100755 --- a/chipseq.py +++ b/chipseq.py @@ -148,6 +148,7 @@ def get_default_param_dict(): # this is not ordered "subsample_xcor" : { "_order_" : 1, "_default_" : "15M", "_help_" : "Number of reads to be subsampled for cross corr. analysis only." }, "speak_xcor" : { "_order_" : 2, "_default_" : -1, "_help_" : "Set user-defined cross-corr. peak strandshift (-speak= in run_spp.R). Use -1 to disable." }, "extra_param_xcor" : { "_order_" : 3, "_default_" : "", "_help_" : "Set extra parameters for run_spp.R" }, + "max_ppsize_xcor" : { "_order_" : 4, "_default_" : "", "_help_" : "R stack size (R parameter --max-ppsize=; between 5000 and 5000000) for cross-corr. analysis." }, }, "callpeak" : { "_order_" : 4, "_group_desc_" : "Peak-calling settings. spp and macs2 are stable for calling peaks and IDR analysis on called peaks. peakseq and gem are currently in BETA test.", diff --git a/modules/callpeak_macs2_chipseq.bds b/modules/callpeak_macs2_chipseq.bds index e2f05a2..2e0daea 100644 --- a/modules/callpeak_macs2_chipseq.bds +++ b/modules/callpeak_macs2_chipseq.bds @@ -95,7 +95,7 @@ string[] macs2_chipseq_npeak_and_signal( string tag, string ctl_tag, string frag sys macs2 callpeak -t $tag $ctl -f BED -n $peak_o_dir/$prefix_basename -g $gensz -p $pval_thresh_macs2 --nomodel --shift $shift_macs2 $extsize_param --keep-dup $keep_dup_macs2 -B --SPMR $extra_param_macs2 //# Sort by Col8 in descending order and replace long peak names in Column 4 with Peak_ - sys sort -k 8gr,8gr "$prefix"_peaks.narrowPeak | awk 'BEGIN{OFS="\t"}{$4="Peak_"NR ; print $0}' > $npeakfile.tmp + sys sort -k 8gr,8gr "$prefix"_peaks.narrowPeak | awk 'BEGIN{OFS="\t"}{$4="Peak_"NR; if ($2<0) $2=0; if ($3<0) $3=0; print $0}' > $npeakfile.tmp sys head -n $cap_num_peak_macs2 $npeakfile.tmp | gzip -nc > $npeakfile sys rm -f $npeakfile.tmp diff --git a/modules/postalign_xcor.bds b/modules/postalign_xcor.bds index a7f64bb..f9b236c 100644 --- a/modules/postalign_xcor.bds +++ b/modules/postalign_xcor.bds @@ -8,6 +8,7 @@ include "module_template.bds" help == postalign bed/tagalign settings fraglen0 := false help (LEGACY PARAM) Set predefined fragment length as zero for cross corr. analysis (add -speak=0 to run_spp.R). speak_xcor := -1 help Set user-defined cross-corr. peak strandshift (-speak= in run_spp.R). Use -1 to disable (default: -1). +max_ppsize_xcor := "" help R stack size (R parameter --max-ppsize=; between 5000 and 5000000) for cross corr. analysis. extra_param_xcor := "" help Set extra parameters for run_spp.R (cross-corr. analysis only). mem_xcor := "15G" help Max. memory for cross-corr. analysis (default: 15G). @@ -22,6 +23,7 @@ void init_postalign_xcor() { speak_xcor = get_conf_val_int( speak_xcor, ["speak_xcor"] ) extra_param_xcor= get_conf_val( extra_param_xcor, ["extra_param_xcor"] ) mem_xcor = get_conf_val( mem_xcor, ["mem_xcor"] ) + max_ppsize_xcor = get_conf_val( max_ppsize_xcor, ["max_ppsize_xcor"] ) // backward compatibility if ( speak_xcor == -1 && fraglen0 ) speak_xcor = 0 @@ -31,6 +33,7 @@ void init_postalign_xcor() { print( "User-defined cross-corr. peak strandshift\t: $speak_xcor\n") print( "Extra parameters for cross-corr. analysis\t: $extra_param_xcor\n") print( "Max. memory for cross-corr. analysis\t\t: $mem_xcor\n") + print( "Stack size for cross-corr. analysis\t\t:$max_ppsize_xcor\n") } string subsample_tag_PE_for_xcor( string tag, int nlines, bool non_mito, string o_dir, string group ) { @@ -86,6 +89,7 @@ string[] xcor( string tag, string o_dir, string group, int nth_xcor ) { xcor_score := "$prefix.cc.qc" xcor_plot := "$prefix.cc.plot.pdf" param_speak := speak_xcor > -1 ? "-speak=$speak_xcor" : "" + extra_param := max_ppsize_xcor ? "--max-ppsize=$max_ppsize_xcor " : "" in := [ tag ] out := [ xcor_score, xcor_plot ] @@ -106,7 +110,7 @@ string[] xcor( string tag, string o_dir, string group, int nth_xcor ) { //# CCSCORE FILE format //# Filename numReads estFragLen correstFragLen PhantomPeak corrphantomPeak argmincorr mincorr phantomPeakCoef relPhantomPeakCoef QualityTag - sys Rscript ${RUN_SPP} -rf \ + sys Rscript $extra_param ${RUN_SPP} -rf \ -c=$tag -p=$nth_xcor \ -filtchr=chrM -savp=$xcor_plot -out=$xcor_score $param_speak $extra_param_xcor sys sed -r 's/,[^\t]+//g' $xcor_score > $xcor_score.tmp