Minimal Structure Reduction

Share:

Description

Reduce a polygonal link to its minimal structure by applying Generalized Reidemeister Moves.

Usage

1
msr(points3D, ends = c(), n = 100)

Arguments

points3D

an N x 3 matrix of the x, y, z coordinates of a polygonal link

ends

a vector of positive integers defining the separators of the polygonal link

n

the number of iterations

Details

A minimal structure for a polygonal link L is a nested sequence of subsets of L:

L \supset L_1 \supset … \supset L_N

that cannot be extended. Each inclusion corresponds to a Generalized Reidemeister Move.

Value

Returns a list of three elements

points3D

an M x 3 matrix of the x, y, z coordinates of the reduced structure

ends

a vector of positive integers (if a non empty ends has been provided as an argument defining the separators of the reduced structure

M

the intersection matrix of the reduced structure

Note

This is a low-level function.

Note

The default number of iterations is 100. This value almost always allows to reach the minimal structure. If wished, a partial reduction can be achieved with n between 2 and 5. This is particularly suitable for graphical representations of the reduction process.

Author(s)

Federico Comoglio, federico.comoglio@bsse.ethz.ch

References

Comoglio F. and Rinaldi M. A Topological Framework for the Computation of the HOMFLY Polynomial and Its Application to Proteins (2011) PLoS ONE 6(4): e18693, doi:10.1371/journal.pone.0018693 ArXiv:1104.3405

Examples

1
2
3
4
5
6
7
8
9
## Not run: 
knot <- makeExampleKnot()
reduced <- msr(points3D = knot)

## 3D plot of both the trefoil and its reduced structure
plotKnot3D(knot, ends = c(), radius = 0.01, lwd = 2.5)
plotKnot3D(reduced$points3D, reduced$ends, colors = 'red', radius = 0.1, lwd = 2.5)

## End(Not run)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.