contact2ambig.py

Note

This is a helper script. It is not directly called by the user. Below are some technical notes about this script.

This script implements the AMBIG algorithm. It takes an origami domain-level graph (derived from the origami contact map) and quantifies which nodes are fixed in place by sequence constraints, and which nodes can be moved whilst still preserving scaffold-staple sequence complementarity. This is useful information to have, as potentially mobile junctions can be identified.

For each node in the origami domain-level graph (scaffold base), the algorithm constructs a constraints tree for a proposed move and allows the move if a depth-first search of the constraints tree reveals that all tree nodes are globally valid. The output is a simple “ambig” file detailing how much each node in the origami domain-level graph can be moved, whilst still preserving scaffold-staple sequence complementarity. Lines in the file take the form:

node_id, maximum - change, maximum + change

In the origami guide schematic produced by contact2schematic.py, this ambiguity information is used to create the “Sequence-Ambiguous Junction View” with green and red coloured origami sections.