Source code for rnaglib.transforms.partition.from_dict

from typing import Iterator

from rnaglib.transforms import PartitionTransform

[docs] class PartitionFromDict(PartitionTransform): """Partitions an RNA according to a partition defined in a dictionary. :param dict partition_dict: dictionary of the form {RNA_name:[[residue_name_1,...,residue_name_6],...,[residue_name_i,...,residue_name_N]]} where we want the RNA to be broken down into several sub-RNAs among which one sub-RNA containing residue_name_1,...,residue_name_6, another one with residue_name_i,...,residue_name_N etc. """
[docs] def __init__( self, partition_dict, **kwargs ): self.partition_dict = partition_dict super().__init__(**kwargs)
def forward(self, rna_dict: dict) -> Iterator[dict]: g = rna_dict["rna"] subgraph_idx = 0 for current_subgraph_nodes in self.partition_dict[g.graph["name"]]: subgraph = g.subgraph(current_subgraph_nodes).copy() if len(subgraph.nodes())>0: subgraph.name += "_" + str(subgraph_idx) yield {"rna": subgraph} subgraph_idx += 1