Skip to contents

Algorithm 23 of the Supplementary Information to Jumper et al. (2021), p. 29. Six numbers are read off each residue's single representation: three quaternion components and a translation. Fixing the leading quaternion component to 1 before normalisation guarantees a valid unit quaternion without a constraint and biases the layer towards small rotations, since zero input gives the identity.

Usage

Alfbkb(s, w, b = NULL, frames = NULL)

Arguments

s

Single representation, an n x cs matrix.

w

Projection to (b, c, d, t1, t2, t3), a 6 x cs matrix.

b

Optional bias for that projection.

frames

Optional existing frames to compose with, giving T_i o BackboneUpdate(s_i) as in Algorithm 20 line 10.

Value

A list with frames, the normalised quat, estimate, n and method.

References

Jumper et al (2021) Nature 596:583-589, Suppl. Algorithm 23

Examples

M <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2)
Alfbkb(M, M)
#> $frames
#> $frames[[1]]
#> $frames[[1]]$R
#>      [,1] [,2] [,3]
#> [1,]   NA   NA   NA
#> [2,]   NA   NA   NA
#> [3,]   NA   NA   NA
#> 
#> $frames[[1]]$t
#> [1] NA NA NA
#> 
#> 
#> $frames[[2]]
#> $frames[[2]]$R
#>      [,1] [,2] [,3]
#> [1,]   NA   NA   NA
#> [2,]   NA   NA   NA
#> [3,]   NA   NA   NA
#> 
#> $frames[[2]]$t
#> [1] NA NA NA
#> 
#> 
#> 
#> $quat
#>      [,1] [,2] [,3] [,4]
#> [1,]   NA   NA   NA   NA
#> [2,]   NA   NA   NA   NA
#> 
#> $estimate
#> [1] NA
#> 
#> $n
#> [1] 2
#> 
#> $method
#> [1] "AlphaFold backbone update (quaternion to rigid frame)"
#>