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.
|