Hi Mateusz,
Thanks for using 3DNA. Your specific question on how the ABI (A/B index) is calculated is of general interest: it echoes my personal experience that concrete examples are informative and often required for a full understanding of even simple mathematical formulae. So let's work out the details.
Since 3DNA v2.3 is now open source, the full details can be examined at the source code level. Here it is the function
get_ABI in file
ana_fncs.c, with the following content:
/* Following Stephen Harvey:
* 1 | Zp - ZpA chi - chiA |
* ABI = --- | ---------- + ----------- |
* 2 | ZpB - ZpA chiB - chiA |
* where: ZpA = 2.2, ZpB = -0.4
* chiA = -157 (203); chiB = -108 (252)
* ref: Table 1 of the A-DNA motif paper, JMB2000
*/
static double get_ABI(long idx, double Zp, double **chi_angle)
{
double ZpA = 2.2, ZpB = -0.4, chiA = 203, chiB = 252;
double x11, x12, x21, x22, xave, ABI = EMPTY_NUMBER;
double ZpAB, chiAB, tZp, tchi;
x11 = chi_angle[1][idx];
x12 = chi_angle[1][idx + 1];
x21 = chi_angle[2][idx];
x22 = chi_angle[2][idx + 1];
if (x11 > EMPTY_CRITERION && x12 > EMPTY_CRITERION && x21 > EMPTY_CRITERION &&
x22 > EMPTY_CRITERION) {
x11 = get_chi360(x11);
x12 = get_chi360(x12);
x21 = get_chi360(x21);
x22 = get_chi360(x22);
if (in_trans(x11) && in_trans(x12) && in_trans(x21) && in_trans(x22)) {
xave = (x11 + x12 + x21 + x22) / 4.0;
ZpAB = ZpB - ZpA;
chiAB = chiB - chiA;
tZp = (Zp - ZpA) / ZpAB;
tchi = (xave - chiA) / chiAB;
ABI = 0.5 * (tZp + tchi);
}
}
return ABI;
}
Using the classic Dickerson B-DNA dodecamer,
355d, as an example. Running the following command,
find_pair 355d.pdb | analyze -abi
You will get an output file named
355d.out, with the following content:
****************************************************************************
Classification of each dinucleotide step in a right-handed nucleic acid
structure: A-like; B-like; TA-like; intermediate of A and B, or other cases.
For definition of the A-B index (ABI), see Waters et al. (2016).
``Transitions of Double-Stranded DNA Between the A- and B-Forms.''
J. Phys. Chem. B, 120(33), pp8449–8456.
step Xp Yp Zp XpH YpH ZpH Form ABI
1 CG/CG -2.24 8.78 0.37 -3.51 8.41 2.60 B 0.72
2 GC/GC -2.27 8.89 0.20 -0.59 8.76 -1.53 B 0.83
3 CG/CG -3.22 9.14 -0.51 -4.60 8.57 3.24 B 1.01
4 GA/TC -3.17 8.84 -0.33 -3.50 8.85 -0.03 B 0.95
5 AA/TT -3.43 8.95 -0.40 -3.97 8.95 -0.30 B 0.95
6 AT/AT -3.45 9.06 -0.20 -4.03 9.01 -0.92 B 0.90
7 TT/AA -3.53 9.07 -0.65 -4.04 9.05 -0.91 B 0.98
8 TC/GA -2.74 8.65 0.14 -2.85 8.65 -0.19 B 0.87
9 CG/CG -2.88 8.85 -0.43 -2.37 8.81 1.05 B 1.00
10 GC/GC -2.59 9.03 -0.04 -1.21 8.82 -1.93 B 0.90
11 CG/CG -2.96 8.99 -0.97 -3.62 9.01 0.77 B 1.17
As you can see, the first CG/CG step has
Zp=0.37, and
ABI=0.72. In the ABI formula, as shown in the comment to the
get_ABI function, we already have:
ZpA = 2.2, ZpB = -0.4, chiA = 203, chiB = 252
So now all we need is the
chi value of the step. Again, as is clear in the source code, the requires
chi value is the average of the 4 chi torsion angles associated with each of the four nucleotides. See below:
nt chi
C A.DC1 -105.9 254.1
G A.DG2 -85.4 274.6
C B.DC23 -150.3 209.7
G B.DG24 -141.3 218.7
------------------------
sum: 957.1 ---> 957.1/4 = 239.28
So the ABI for this first step is:
0.5 * ((0.37 - 2.2) / (-0.4 - 2.2) + (239.28 - 203) / (252 - 203)) = 0.72
It helps for your own understanding, and for the benefit of other viewers of this thread, that you work out the second step (GC/GC, ABI=0.83) and post the details on the Forum as a follow-up.
HTH,
Xiang-Jun