File: slop.rst

package info (click to toggle)
bedtools 2.26.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 55,328 kB
  • sloc: cpp: 37,989; sh: 6,930; makefile: 2,225; python: 163
file content (147 lines) | stat: -rwxr-xr-x 4,949 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
.. _slop:

###############
*slop*
###############

|

.. image:: ../images/tool-glyphs/slop-glyph.png 
    :width: 600pt 

|

``bedtools slop`` will increase the size of each feature in a feature file by a 
user-defined number of bases. While something like this could be done with an 
``awk '{OFS="\t" print $1,$2-<slop>,$3+<slop>}'``,
``bedtools slop`` will restrict the resizing to the size of the chromosome 
(i.e. no start < 0 and no end > chromosome size).

.. note::

    In order to prevent the extension of intervals beyond chromosome boundaries,
    ``bedtools slop`` requires a *genome* file defining the length of each 
    chromosome or contig.

.. seealso::

    :doc:`../tools/flank`

==========================================================================
Usage and option summary
==========================================================================
**Usage**:
::

  bedtools slop [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> [-b or (-l and -r)]

**(or):**
::

  slopBed [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> [-b or (-l and -r)]
    
===========================      ===============================================================================================================================================================================================================
 Option                           Description
===========================      ===============================================================================================================================================================================================================
**-b**				             Increase the BED/GFF/VCF entry by the same number base pairs in each direction. *Integer*.							 
**-l**					         The number of base pairs to subtract from the start coordinate. *Integer*.
**-r**                           The number of base pairs to add to the end coordinate. *Integer*.
**-s**                           Define -l and -r based on strand. For example. if used, -l 500 for a negative-stranded feature, it will add 500 bp to the *end* coordinate.
**-pct**                         Define -l and -r as a fraction of the feature's length. E.g. if used on a 1000bp feature, -l 0.50, will add 500 bp "upstream".  Default = false.
**-header**                      Print the header from the input file prior to results.
===========================      ===============================================================================================================================================================================================================



==========================================================================
Default behavior
==========================================================================
By default, ``bedtools slop`` will either add a fixed number of bases in each 
direction (``-b``) or an asymmetric number of bases in each direction 
with ``-l`` and ``-r``.


.. code-block:: bash

  $ cat A.bed
  chr1 5 100
  chr1 800 980

  $ cat my.genome
  chr1 1000

  $ bedtools slop -i A.bed -g my.genome -b 5
  chr1 0 105
  chr1 795 985

  $ bedtools slop -i A.bed -g my.genome -l 2 -r 3
  chr1 3 103
  chr1 798 983
  

However, if the requested number of bases exceeds the boundaries of the 
chromosome, ``bedtools slop`` will "clip" the feature accordingly.

.. code-block:: bash

  $ cat A.bed
  chr1  5   100
  chr1  800 980

  $ cat my.genome
  chr1  1000

  $ bedtools slop -i A.bed -g my.genome -b 5000
  chr1  0   1000
  chr1  0   1000

  
  
==========================================================================
``-s`` Resizing features according to strand
==========================================================================
``bedtools slop`` will optionally increase the size of a feature based on strand.

For example:

.. code-block:: bash

  $ cat A.bed
  chr1 100 200 a1 1 +
  chr1 100 200 a2 2 -

  $ cat my.genome
  chr1 1000

  $ bedtools slop  -i A.bed -g my.genome -l 50 -r 80 -s
  chr1 50  280 a1 1 +
  chr1 20  250 a2 2 -
  
  
==========================================================================
``-pct`` Resizing features by a given fraction
==========================================================================
``bedtools slop`` will optionally increase the size of a feature by a 
user-specific fraction.

For example:

.. code-block:: bash

  $ cat A.bed
  chr1 100 200 a1 1 +

  $ bedtools slop -i A.bed -g my.genome -b 0.5 -pct
  chr1 50  250 a1 1 +

  $ bedtools slop -i a.bed -l 0.5 -r 0.0 -pct -g my.genome 
  chr1	50	200	a1	1	+


==========================================================================
``-header`` Print the header for the A file before reporting results.
==========================================================================
By default, if your A file has a header, it is ignored when reporting results.
This option will instead tell bedtools to first print the header for the
A file prior to reporting results.