:py:mod:`alhambra.nuad`
=======================

.. py:module:: alhambra.nuad


Module Contents
---------------


Functions
~~~~~~~~~

.. autoapisummary::

   alhambra.nuad.load_nuad_design
   alhambra.nuad.update_nuad_design
   alhambra.nuad.tileset_to_nuad_design
   alhambra.nuad.group_strand_pairs_by_groups_and_complementary_domains



Attributes
~~~~~~~~~~

.. autoapisummary::

   alhambra.nuad.log


.. py:data:: log

   

.. py:function:: load_nuad_design(tileset: alhambra.tilesets.TileSet, design: nuad.constraints.Design, update_tiles: bool = True, inplace: bool = False) -> alhambra.tilesets.TileSet


.. py:function:: update_nuad_design(tileset: alhambra.tilesets.TileSet, old_design: nuad.constraints.Design, groups: Literal[structure] | Mapping[str, str] | Callable[[alhambra.tiles.Tile], str] = 'structure') -> nuad.constraints.Design

   From an Alhambra tileset and an existing Nuad Design. IN-PLACE


.. py:function:: tileset_to_nuad_design(tileset: alhambra.tilesets.TileSet, groups: Literal[structure] | Mapping[str, str] | Callable[[alhambra.tiles.Tile], str] = 'structure') -> nuad.constraints.Design

   From an Alhambra tileset, generate a Nuad Design with all of its domains.

   groups:
       Methods for setting the group of each strand.


.. py:function:: group_strand_pairs_by_groups_and_complementary_domains(design: nuad.constraints.Design, strands: Optional[Optional[Iterable[nc.Strand]]] = None) -> Dict[Tuple[str, str, int], list[Tuple[nc.Strand, nc.Strand]]]

   Group pairs of strands by their groups (sorted) and number of complementary domains.


