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
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 optionally increase the size of a feature by a
user-specific fraction.
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.