# shift

`bedtools shift` will move 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+<shift>,$3+<shift>}'`, `bedtools shift` will restrict the resizing to the size of the chromosome (i.e. no features before 0 or past the chromosome end).

Note

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

See also

slop

## Usage and option summary

Usage:

    bedtools shift [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> [-s or (-m and -p)]

(or):

    shiftBed [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> [-s or (-m and -p)]

Option | Description
--- | ---
-s | Shift the BED/GFF/VCF entry -s base pairs. Integer or Float (e.g. 0.1) if used with -pct
-m | Shift entries on the - strand -m base pairs. Integer or Float (e.g. 0.1) if used with -pct
-p | Shift entries on the + strand -p base pairs. Integer or Float (e.g. 0.1) if used with -pct
-pct | Define -s, -m and -p as a fraction of the feature’s length. E.g. if used on a 1000bp feature, -s 0.50, will shift the feature 500 bp "upstream". Default = false.
-header | Print the header from the input file prior to results.

## Default behavior

By default, `bedtools shift` will shift features a fixed number of bases. This shift can either be applied to all features (`-s`), or seperately to features on the plus (`-p`) and minus (`-m`) strands. Shifts can either be positive or negative.

    $ cat A.bed
    chr1 5 100 +
    chr1 800 980 -

    $ cat my.genome
    chr1 1000

    $ bedtools shift -i A.bed -g my.genome -s 5
    chr1 10 105 +
    chr1 805 985 -

    $ bedtools shift -i A.bed -g my.genome -p 2 -m -3
    chr1 7 102 +
    chr1 797 977 -

However, if the requested number of bases exceeds the boundaries of the chromosome, `bedtools shift` will “clip” the feature accordingly.

    $ cat A.bed
    chr1  5   100 +
    chr1  800 980 +

    $ cat my.genome
    chr1  1000

    $ bedtools shift -i A.bed -g my.genome -s 5000
    chr1  999   1000 +
    chr1  999   1000 +

## `-pct` Shifting features by a given fraction

`bedtools shift` will shift the feature by a user-specific fraction of the feature length. Hence, 0.5 will add half the length of the feature to the start and end coordinates.

For example:

    $ cat A.bed
    chr1 100 200 a1 1 +

    $ bedtools shift -i A.bed -g my.genome -s 0.5 -pct
    chr1 150  250 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.

comments powered by Disqus