Use a YAML File to Specify Perturbations
Sometimes the default settings of bedshift does not allow enough control over perturbations. For example, the order of perturbations is fixed as shift, add, cut, merge, drop, so if you wanted to change the order you would have to specify multiple commands. The same problem arises when you want to run multiple "add from file" commands - there is just no way to do it using a single command.
This is why we created the YAML config file perturbation option. In the YAML file, users can specify as many perturbations as they want, along with the parameters specific to each perturbation. An example of a YAML config file follows:
bedshift_operations:
- add_from_file:
file: exons.bed
rate: 0.2
- add_from_file:
file: snp.bed
rate: 0.05
- shift_from_file:
file: exons.bed
rate: 0.4
mean: 100
stdev: 85
- shift_from_file:
file: snp.bed
rate: 0.4
mean: 2
stdev: 1
- merge:
rate: 0.15
The order of perturbations is run in the same order they are specified. So in this example, we add from two different files, then also shift those regions that were just added. Finally we perform a merge at 15% rate.