When the 'HELIX/HELIX_NR SAI's are analyzed the following steps are performed:
-
HELIX_NR contains the helix numbering. A helix number is a number between 0 and 100 optionally followed by one letter: e.g. 11a, 23g, 0i, 6, 23,
A helix number is valid from the position of the first digit to the position just before the next helix number.
eg. .........1a.........23b......... . .........|||||||||||............
The '|' symbols indicate the positions for '1a'
-
All '<[{(' symbols in HELIX are replaced by '(' All '>]})' symbols in HELIX are replaced by ')'
eg. ...[<<[..]>>].. is the same as ...((((..))))..
-
For each helix number 'HN' a temporary helix is created that contains all '()' symbols of the 'SAI HELIX' at all positions where 'HN' is valid.
eg. HELIX_NR .....1a.....23b.......1a....23b.....
HELIX .....[<<[...[<[.......]>>]..]>].....
-> 1a .....((((.............))))..........
-> 23b ............(((.............))).....
-
The (usually) paired positions can simply be defined by recursively removing the innermost bracket pairs in the temporary helices:
eg. HELIX_NR .....1a.....23b.......1a....23b.....
HELIX .....[<<[...[<[.......]>>]..]>].....
Pos 123456789012345678901234567890123456
-> 1a .....((((.............))))..........
-> 23b ............(((.............))).....
1a 9-23 ........+-------------+.............
1a 8-24 .......+---------------+............
1a 7-25 ......+-----------------+...........
1a 6-26 .....+-------------------+..........
23b 15-29 .............+------------+.......
23b 14-30 ............+--------------+......
23b 13-31 ...........+----------------+.....
|