The DNA Flexibility plugin should search for high DNA flexibility regions in an input sequence (the input sequence may only contain A, C, G and T characters).
A user should be able to input the following parameters: window size (int), window step (int) and threshold (double).
The default values should be:
window size = 100
window step = 1
threshold 13.7
The following should also be taken into account:
0 <= window size <= sequence length
0 <= window step <= sequence length - 2
0 <= threshold
The input sequence should be analyzed in the following way:
- A threshold should be calculated in each window (i.e. subsequence of the specified length).
- Different windows are shifted by the step specified by the user, the first window starts from the beginning of the sequence.
- The threshold calculated in each window is compared with the threshold input by the user.
- If there are two or more consecutive windows with threshold greater that the specified, an annotation should be created on this area.
The annotation should have a qualifier that would specify the area average threshold.
To calculate a threshold in a window "angle" values for each dinucleotide in a window should be summed and divided by the number of dinucleotides. The angle values are the following:
AA: 7.6
AC: 14.6
AG: 8.2
AT: 25
CA: 10.9
CC: 7.2
CG: 8.9
CT: 8.2
GA: 8.8
GC: 11.1
GG: 7.2
GT: 14.6
TA: 12.5
TC: 8.8
TG: 10.9
TT: 7.6
Additionally the user should be able to choose the annotation parameters and be able to save high flexibility settings (i.e. window size, etc) to the application settings and to restore the defaults.