/tools/peakcalling/nps.xml
https://bitbucket.org/cistrome/cistrome-harvard/ · XML · 201 lines · 172 code · 29 blank · 0 comment · 0 complexity · b6fa26ceaa9d37e5d120864c3eb9543a MD5 · raw file
- <tool name="NPS" id="peakcalling_nps">
- <description>Nucleosome Positioning from Sequencing</description>
- <command interpreter="command">/bin/bash $shscript</command>
- <inputs>
- <param format="bed" name="bfile" type="data" label="BED file(center will be aligned, 35,000,000 lines max)" />
- <param name="use_wavelet" type="boolean" label="use wavelet to denoising?" checked="no" truevalue="yes" falsevalue="no" />
- <conditional name="pre">
- <param name="pre_select" type="select" label="------- Preprocessing Options -------">
- <option value="no">Use defaults</option>
- <option value="yes">Show settings</option>
- </param>
- <when value="yes">
- <param name="fragment_size" type="integer" label="The estimate fragment size (bp)" value="150">
- <validator type="in_range" max="400" min="75" message="Extension shoube in range 75 - 400" />
- </param>
- <param name="sort" type="boolean" label="sort the tags?" checked="yes" truevalue="yes" falsevalue="no"/>
- <param name="tag_thread" type="integer" label="minimum tag count to declare as a peak" value="2" />
- </when>
- <when value="no">
- <param name="fragment_size" type="hidden" value="150"/>
- <param name="sort" type="hidden" value="yes"/>
- <param name="tag_thread" type="hidden" value="2"/>
- </when>
- </conditional>
- <conditional name="wavelet">
- <param name="wavelet_select" type="select" label="------- Wavelet Denoising Options (Better use default.) -------">
- <option value="no">Use defaults</option>
- <option value="yes">Show settings</option>
- </param>
- <when value="yes">
- <param name="wav_decomp_level" type="integer" label="which level of wavelet decomposition" value="2" />
- <param name="wav_method" type="select" label="use what kind of wavelet denosing?">
- <option value="coif4">coif4</option>
- </param>
- <param name="wav_threshold_est" type="select" label="Use what for denoising threshold selection?">
- <option value="heursure">heursure</option>
- </param>
- <param name="wav_threshold_type" type="select" label="type of threshold?">
- <option value="soft">soft</option>
- </param>
- <param name="wav_scale" type="text" label="scale of denosing" value="mln" />
- </when>
- <when value="no">
- <param name="wav_decomp_level" type="hidden" value="2"/>
- <param name="wav_method" type="hidden" value="coif4"/>
- <param name="wav_threshold_est" type="hidden" value="heursure"/>
- <param name="wav_threshold_type" type="hidden" value="soft"/>
- <param name="wav_scale" type="hidden" value="mln"/>
- </when>
- </conditional>
- <conditional name="peakfind">
- <param name="peakfind_select" type="select" label="------- Peak Finding Options -------">
- <option value="no">Use defaults</option>
- <option value="yes">Show settings</option>
- </param>
- <when value="yes">
- <param name="peakf_pvalue" type="text" label="p value cut-off for identifying nucleosomes" value="1e-5" />
- <param name="peakf_min_w" type="integer" label="minimum peak width" value="80" />
- <param name="peakf_max_w" type="integer" label="maximum peak width" value="250" />
- <param name="peakf_PIR" type="text" label="minimum peak to inflection point ratio" value="1.2" />
- <param name="peakf_bios_ratio" type="float" label="allowable ratio between + tags and â tags" value="4" />
- </when>
- <when value="no">
- <param name="peakf_pvalue" type="hidden" value="1e-5"/>
- <param name="peakf_min_w" type="hidden" value="80"/>
- <param name="peakf_max_w" type="hidden" value="250"/>
- <param name="peakf_PIR" type="hidden" value="1.2"/>
- <param name="peakf_bios_ratio" type="hidden" value="4"/>
- </when>
- </conditional>
- </inputs>
- <outputs>
- <data format="bed" name="outputbed" label="NPS peak output for ${bfile.name}" />
- <data format="wig" name="outputwig" label="NPS wig output for ${bfile.name}" />
- <data format="txt" name="log" label="NPS log" />
- <data format="txt" name="tagfile" label="NPS tag file" />
- </outputs>
- <configfiles>
- <configfile name="tag_file">
- #import sys
- #import os
- #set $dollar = chr(36)
- #set $gt = chr(62)
- #set $lt = chr(60)
- #set $ad = chr(38)
- ###set $static_library_path = os.path.abspath($__app__.config.cistrome_static_library_path)
- #if $bfile.metadata.dbkey == "hg18"
- #set $genome_len = str(2770000000)
- #end if
- #if $bfile.metadata.dbkey == "hg19"
- #set $genome_len = str(2790000000)
- #end if
- #if $bfile.metadata.dbkey == "mm8"
- #set $genome_len = str(1870000000)
- #end if
- #if $bfile.metadata.dbkey == "mm9"
- #set $genome_len = str(1910000000)
- #end if
- #if $bfile.metadata.dbkey == "ce4"
- #set $genome_len = str(90300000)
- #end if
- #if $bfile.metadata.dbkey == "ce6"
- #set $genome_len = str(90300000)
- #end if
- #if $bfile.metadata.dbkey == "dm2"
- #set $genome_len = str(119000000)
- #end if
- #if $bfile.metadata.dbkey == "dm3"
- #set $genome_len = str(152000000)
- #end if
- #set $shiftsize = (int($pre.fragment_size.value)-75)/2
- \# Parameters for ChIP Sequence data analysis.
- \# Input and output files
- INFILE = $bfile
- OUTFILE = $outputbed
- OUTFILEWIG = $outputwig
- \# Preprocessing
- SPENAME = $bfile.metadata.dbkey
- EXTENSION = 75
- SHIFT = $shiftsize
- WANT_SORT = $pre.sort
- TAG_THR = $pre.tag_thread
- \# Wavelet denoising
- WANT_DENOISE = $use_wavelet
- DECOMP_LEVEL = $wavelet.wav_decomp_level
- WAVELET = $wavelet.wav_method
- THRESHOLD_EST = $wavelet.wav_threshold_est
- THRESHOLD_TYPE = $wavelet.wav_threshold_type
- SCALE = $wavelet.wav_scale
- \# Peak finding
- INTERVAL = 10
- GENOME_LEN = $genome_len
- PVALUE = $peakfind.peakf_pvalue
- TAG_NUM = NEED_TO_FILE_IN_LATER
- LOG = 3
- SLOPE = 2
- MIN_WIDTH = $peakfind.peakf_min_w
- MAX_WIDTH = $peakfind.peakf_max_w
- MIN_HEIGHT = 0
- MAX_HEIGHT = 10000
- PEAK_INFLECTION_RATIO = $peakfind.peakf_PIR
- MED_WSIZE = 5
- BIAS_RATIO = $peakfind.peakf_bios_ratio
- </configfile>
- <configfile name="shscript">
- #set $gt = chr(62)
- #set $ad = chr(38)
- #set $dollar = chr(36)
- tagnum=`grep -c -v ^\# $bfile`
- perl -pi -e s/NEED_TO_FILE_IN_LATER/${dollar}tagnum/ $tag_file
- if [[ ${dollar}tagnum -gt 35000000 ]];then
- echo "bed file is too big! 35M lines is the maximum!" ${gt}${ad} $log
- exit;
- fi
- SeqTag.py $tag_file ${ad}${gt} $log
- cp $tag_file $tagfile
- </configfile>
- </configfiles>
- <help>
- NPS
- Please find instruction and parameters here.
- http://liulab.dfci.harvard.edu/NPS/
- .. class:: warningmark
- **NEED IMPROVEMENT**
- -----
- **Outputs**
- - **BED file** for nucleosome locations in BED format
- - **LOG file** job log. If you see errors, please attach this in
- the bug report
- - **TAG file** with all the information input into the tool
- </help>
- </tool>