/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

  1. <tool name="NPS" id="peakcalling_nps">
  2. <description>Nucleosome Positioning from Sequencing</description>
  3. <command interpreter="command">/bin/bash $shscript</command>
  4. <inputs>
  5. <param format="bed" name="bfile" type="data" label="BED file(center will be aligned, 35,000,000 lines max)" />
  6. <param name="use_wavelet" type="boolean" label="use wavelet to denoising?" checked="no" truevalue="yes" falsevalue="no" />
  7. <conditional name="pre">
  8. <param name="pre_select" type="select" label="------- Preprocessing Options -------">
  9. <option value="no">Use defaults</option>
  10. <option value="yes">Show settings</option>
  11. </param>
  12. <when value="yes">
  13. <param name="fragment_size" type="integer" label="The estimate fragment size (bp)" value="150">
  14. <validator type="in_range" max="400" min="75" message="Extension shoube in range 75 - 400" />
  15. </param>
  16. <param name="sort" type="boolean" label="sort the tags?" checked="yes" truevalue="yes" falsevalue="no"/>
  17. <param name="tag_thread" type="integer" label="minimum tag count to declare as a peak" value="2" />
  18. </when>
  19. <when value="no">
  20. <param name="fragment_size" type="hidden" value="150"/>
  21. <param name="sort" type="hidden" value="yes"/>
  22. <param name="tag_thread" type="hidden" value="2"/>
  23. </when>
  24. </conditional>
  25. <conditional name="wavelet">
  26. <param name="wavelet_select" type="select" label="------- Wavelet Denoising Options (Better use default.) -------">
  27. <option value="no">Use defaults</option>
  28. <option value="yes">Show settings</option>
  29. </param>
  30. <when value="yes">
  31. <param name="wav_decomp_level" type="integer" label="which level of wavelet decomposition" value="2" />
  32. <param name="wav_method" type="select" label="use what kind of wavelet denosing?">
  33. <option value="coif4">coif4</option>
  34. </param>
  35. <param name="wav_threshold_est" type="select" label="Use what for denoising threshold selection?">
  36. <option value="heursure">heursure</option>
  37. </param>
  38. <param name="wav_threshold_type" type="select" label="type of threshold?">
  39. <option value="soft">soft</option>
  40. </param>
  41. <param name="wav_scale" type="text" label="scale of denosing" value="mln" />
  42. </when>
  43. <when value="no">
  44. <param name="wav_decomp_level" type="hidden" value="2"/>
  45. <param name="wav_method" type="hidden" value="coif4"/>
  46. <param name="wav_threshold_est" type="hidden" value="heursure"/>
  47. <param name="wav_threshold_type" type="hidden" value="soft"/>
  48. <param name="wav_scale" type="hidden" value="mln"/>
  49. </when>
  50. </conditional>
  51. <conditional name="peakfind">
  52. <param name="peakfind_select" type="select" label="------- Peak Finding Options -------">
  53. <option value="no">Use defaults</option>
  54. <option value="yes">Show settings</option>
  55. </param>
  56. <when value="yes">
  57. <param name="peakf_pvalue" type="text" label="p value cut-off for identifying nucleosomes" value="1e-5" />
  58. <param name="peakf_min_w" type="integer" label="minimum peak width" value="80" />
  59. <param name="peakf_max_w" type="integer" label="maximum peak width" value="250" />
  60. <param name="peakf_PIR" type="text" label="minimum peak to inflection point ratio" value="1.2" />
  61. <param name="peakf_bios_ratio" type="float" label="allowable ratio between + tags and – tags" value="4" />
  62. </when>
  63. <when value="no">
  64. <param name="peakf_pvalue" type="hidden" value="1e-5"/>
  65. <param name="peakf_min_w" type="hidden" value="80"/>
  66. <param name="peakf_max_w" type="hidden" value="250"/>
  67. <param name="peakf_PIR" type="hidden" value="1.2"/>
  68. <param name="peakf_bios_ratio" type="hidden" value="4"/>
  69. </when>
  70. </conditional>
  71. </inputs>
  72. <outputs>
  73. <data format="bed" name="outputbed" label="NPS peak output for ${bfile.name}" />
  74. <data format="wig" name="outputwig" label="NPS wig output for ${bfile.name}" />
  75. <data format="txt" name="log" label="NPS log" />
  76. <data format="txt" name="tagfile" label="NPS tag file" />
  77. </outputs>
  78. <configfiles>
  79. <configfile name="tag_file">
  80. #import sys
  81. #import os
  82. #set $dollar = chr(36)
  83. #set $gt = chr(62)
  84. #set $lt = chr(60)
  85. #set $ad = chr(38)
  86. ###set $static_library_path = os.path.abspath($__app__.config.cistrome_static_library_path)
  87. #if $bfile.metadata.dbkey == "hg18"
  88. #set $genome_len = str(2770000000)
  89. #end if
  90. #if $bfile.metadata.dbkey == "hg19"
  91. #set $genome_len = str(2790000000)
  92. #end if
  93. #if $bfile.metadata.dbkey == "mm8"
  94. #set $genome_len = str(1870000000)
  95. #end if
  96. #if $bfile.metadata.dbkey == "mm9"
  97. #set $genome_len = str(1910000000)
  98. #end if
  99. #if $bfile.metadata.dbkey == "ce4"
  100. #set $genome_len = str(90300000)
  101. #end if
  102. #if $bfile.metadata.dbkey == "ce6"
  103. #set $genome_len = str(90300000)
  104. #end if
  105. #if $bfile.metadata.dbkey == "dm2"
  106. #set $genome_len = str(119000000)
  107. #end if
  108. #if $bfile.metadata.dbkey == "dm3"
  109. #set $genome_len = str(152000000)
  110. #end if
  111. #set $shiftsize = (int($pre.fragment_size.value)-75)/2
  112. \# Parameters for ChIP Sequence data analysis.
  113. \# Input and output files
  114. INFILE = $bfile
  115. OUTFILE = $outputbed
  116. OUTFILEWIG = $outputwig
  117. \# Preprocessing
  118. SPENAME = $bfile.metadata.dbkey
  119. EXTENSION = 75
  120. SHIFT = $shiftsize
  121. WANT_SORT = $pre.sort
  122. TAG_THR = $pre.tag_thread
  123. \# Wavelet denoising
  124. WANT_DENOISE = $use_wavelet
  125. DECOMP_LEVEL = $wavelet.wav_decomp_level
  126. WAVELET = $wavelet.wav_method
  127. THRESHOLD_EST = $wavelet.wav_threshold_est
  128. THRESHOLD_TYPE = $wavelet.wav_threshold_type
  129. SCALE = $wavelet.wav_scale
  130. \# Peak finding
  131. INTERVAL = 10
  132. GENOME_LEN = $genome_len
  133. PVALUE = $peakfind.peakf_pvalue
  134. TAG_NUM = NEED_TO_FILE_IN_LATER
  135. LOG = 3
  136. SLOPE = 2
  137. MIN_WIDTH = $peakfind.peakf_min_w
  138. MAX_WIDTH = $peakfind.peakf_max_w
  139. MIN_HEIGHT = 0
  140. MAX_HEIGHT = 10000
  141. PEAK_INFLECTION_RATIO = $peakfind.peakf_PIR
  142. MED_WSIZE = 5
  143. BIAS_RATIO = $peakfind.peakf_bios_ratio
  144. </configfile>
  145. <configfile name="shscript">
  146. #set $gt = chr(62)
  147. #set $ad = chr(38)
  148. #set $dollar = chr(36)
  149. tagnum=`grep -c -v ^\# $bfile`
  150. perl -pi -e s/NEED_TO_FILE_IN_LATER/${dollar}tagnum/ $tag_file
  151. if [[ ${dollar}tagnum -gt 35000000 ]];then
  152. echo "bed file is too big! 35M lines is the maximum!" ${gt}${ad} $log
  153. exit;
  154. fi
  155. SeqTag.py $tag_file ${ad}${gt} $log
  156. cp $tag_file $tagfile
  157. </configfile>
  158. </configfiles>
  159. <help>
  160. NPS
  161. Please find instruction and parameters here.
  162. http://liulab.dfci.harvard.edu/NPS/
  163. .. class:: warningmark
  164. **NEED IMPROVEMENT**
  165. -----
  166. **Outputs**
  167. - **BED file** for nucleosome locations in BED format
  168. - **LOG file** job log. If you see errors, please attach this in
  169. the bug report
  170. - **TAG file** with all the information input into the tool
  171. </help>
  172. </tool>