polymerist.polymers.smidgelib.smidgeread ======================================== .. py:module:: polymerist.polymers.smidgelib.smidgeread .. autoapi-nested-parse:: Automata for reading SMIDGE strings into their graph representations Attributes ---------- .. autoapisummary:: polymerist.polymers.smidgelib.smidgeread.LOGGER Classes ------- .. autoapisummary:: polymerist.polymers.smidgelib.smidgeread.SMIDGEReaderRegister polymerist.polymers.smidgelib.smidgeread.SMIDGEReadState polymerist.polymers.smidgelib.smidgeread.Accumulate polymerist.polymers.smidgelib.smidgeread.ChainNew polymerist.polymers.smidgelib.smidgeread.MonomerStart polymerist.polymers.smidgelib.smidgeread.MonomerEnd polymerist.polymers.smidgelib.smidgeread.BondStart polymerist.polymers.smidgelib.smidgeread.BondEnd polymerist.polymers.smidgelib.smidgeread.BranchStart polymerist.polymers.smidgelib.smidgeread.BranchEnd polymerist.polymers.smidgelib.smidgeread.SMIDGEReader Module Contents --------------- .. py:data:: LOGGER .. py:class:: SMIDGEReaderRegister Information accessed by machine states during the SMIDGE writing process .. py:attribute:: monograph :type: Optional[polymerist.polymers.monographs.MonomerGraph] .. py:attribute:: bond_info :type: polymerist.polymers.smidgelib.MonomerGraphBondInfo .. py:attribute:: curr_token :type: str :value: '' .. py:attribute:: node_idx :type: int :value: 0 .. py:attribute:: str_buffer :type: str :value: '' .. py:attribute:: node_stack :type: list[int] :value: [] .. py:class:: SMIDGEReadState Bases: :py:obj:`abc.ABC` Abstract based for reading MID graphs from SMIDGE strings .. py:method:: state_action(register: SMIDGEReaderRegister) -> None :abstractmethod: .. py:method:: transition(register: SMIDGEReaderRegister) -> SMIDGEReadState Define which states should follow the current one based on input .. py:class:: Accumulate Bases: :py:obj:`SMIDGEReadState` Collect characters into a buffer .. py:method:: state_action(register: SMIDGEReaderRegister) -> None .. py:class:: ChainNew Bases: :py:obj:`SMIDGEReadState` Reset actions when beginning a new chain .. py:method:: state_action(register: SMIDGEReaderRegister) -> None .. py:class:: MonomerStart Bases: :py:obj:`SMIDGEReadState` Begin reading in a new monomer .. py:method:: state_action(register: SMIDGEReaderRegister) -> None .. py:class:: MonomerEnd Bases: :py:obj:`SMIDGEReadState` Finish reading a monomer and add it to the graph .. py:method:: state_action(register: SMIDGEReaderRegister) -> None .. py:class:: BondStart Bases: :py:obj:`SMIDGEReadState` Initialize reading of a bond token .. py:method:: state_action(register: SMIDGEReaderRegister) -> None .. py:class:: BondEnd Bases: :py:obj:`SMIDGEReadState` Abstract based for reading MID graphs from SMIDGE strings .. py:method:: state_action(register: SMIDGEReaderRegister) -> None .. py:class:: BranchStart Bases: :py:obj:`SMIDGEReadState` Mark position of branch point in stack for backtrack .. py:method:: state_action(register: SMIDGEReaderRegister) -> None .. py:class:: BranchEnd Bases: :py:obj:`SMIDGEReadState` Return to previous branch point .. py:method:: state_action(register: SMIDGEReaderRegister) -> None .. py:class:: SMIDGEReader Pushdown automaton for translating SMIDGE strings to and from monomer graphs .. py:attribute:: state :type: SMIDGEReadState .. py:method:: read_smidge(smidge_string: str, start_node_idx: int = 0) -> polymerist.polymers.monographs.MonomerGraph Parse a SMIDGE ("SMILES-like Monomer Interconnectivity & Degree Graph Encoding") string and read it into a networkX Graph