API for padmet.classes
Instantiation
Node
- class padmet.classes.node.Node(_type, _id, misc=None)[source]
A Node represent an element in a metabolic network
e.g: compound, reaction.
- Parameters:
_type (str) – The type of the node (‘reaction’,’pathway’)
_id (str) – the identifier of the node (‘rxn-45)
misc (dict) – A dictionary of miscellaneous data ({‘DIRECTION’:[REVERSIBLE]}) (the default value is None)
Policy
- class padmet.classes.policy.Policy(policy_in_array=None)[source]
A Policy define the types of relations and nodes of a network.
A policy contains 3 attributes:
policy_in_array: Is a list of list of relations
e.g: [[‘reaction’,’consumes’,’compounds’],[‘reaction’,’produces’,’compounds’]]
class_of_node: Is a set of all the type of nodes represented in the network
e.g: set([‘reaction’, ‘compound’])
type_of_arc: Is a dictionary of all the types of arcs represented in the network
(e.g: {‘reaction’:[‘consumes’,’compounds’]})
- Parameters:
policy_in_array (list) –
Is a list of list of relations
e.g: [[‘reaction’,’consumes’,’compounds’],[‘reaction’,’produces’,’compounds’]]
(the default value is None)
Relation
- class padmet.classes.relation.Relation(id_in, _type, id_out, misc=None)[source]
A Relation represent a link between two elements (node) in a metabolic network.
e.g: RXN-1 consumes CPD-1
A Relation contains 4 attributes:
_type: The type of the relation (e.g: ‘consumes’ or ‘produces’)
id_in: the identifier of the node corresponding to the subject of the relation (e.g: ‘RXN-1)
id_out: the identifier of the node corresponding to the object of the relation (e.g: ‘CPD-1)
misc: A dictionary of miscellaneous data, k = tag of the data, v = list of values
(e.g: {‘STOICHIOMETRY’:[1.0]})
- Parameters:
id_in (str) – the identifier of the node corresponding to the subject of the relation (‘RXN-1)
_type (str) – The type of the relation (e.g: ‘consumes’ or ‘produces’)
id_out (str) – the identifier of the node corresponding to the object of the relation (‘CPD-1)
_misc (dict) – A dictionary of miscellaneous data (e.g: {‘STOICHIOMETRY’:[1.0]})
PadmetRef
- class padmet.classes.padmetRef.PadmetRef(padmetRef_file=None)[source]
PadmetRef is an object representing a DATABASE of metabolic network.
Contains <Policy>, <Node> and <Relation>:
The policy defines the way Node and Relation are associated.
A node is an Object that contains information about an element of the network (can be a pathway, reaction…).
A realtion defines how two nodes are connected. In a relation there is a node “in” and a node “out”. (reactionX’in’ consumes metaboliteX’out’).
- PadmetRef contains 3 attributs:
dicOfNode: a dictionary of node: key=Node’s unique id / value = <Node>.
dicOfRelationIn: a dictionnary of relation with: key= nodeIN id / value = list of <relation>.
dicOfRelationOut: a dictionnary of relation with: key= nodeOut id / value = list of <relation>.
policy: a <policy>.
info: a dictionnary of informations about the network, the database used… This dictionnary is always represented in the header of a padmet file.
if None, initializes an empty <PadmetRef>
- Parameters:
padmetRef_file (str) – pathname of the padmet file
- createNode(_type, _id, dicOfMisc={}, listOfRelation=None)[source]
Creation of new node to add in the network.
- Parameters:
_type (str) – type of node (gene, reaction…)
_id (str) – id of the node
dicOfMisc (dict) – dictionnary of miscellaneous data
listOfRelation (list or None) – list of relation
- Returns:
new_node
- Return type:
padmet.classes.Node
- delNode(node_id)[source]
Allows to delete a node, the relations associated to the node, and for some relations, delete the associated node. For relations where the node to del is ‘in’:
if rlt type in [‘has_xref’,’has_name’,’has_suppData’]: delNode out
- For relations where the node to del is ‘out’:
if rlt type in [‘consumes’,’produces’]
- Parameters:
node_id (str) – id of node to delete
- Returns:
True if node successfully deleted, False if node not in dicOfNode
- Return type:
bool
- generateFile(output)[source]
Allow to create a padmet file to stock all the data. @param output: pathname of the padmet file to create
- Parameters:
output (str) – path to output file
- getCompounds(get_id=True)[source]
Get all the compounds from a padmet instance.
- Parameters:
self (padmet) – padmet instance
get_id (bool) – True for the ID and False for the node corresponding to the compounds
- Returns:
list of compound IDs or nodes
- Return type:
list
- getGenes(get_id=True)[source]
Get all the genes from a padmet instance.
- Parameters:
self (padmet) – padmet instance
get_id (bool) – True for the ID and False for the node corresponding to the genes
- Returns:
list of genes IDs or nodes
- Return type:
list
- getPathways(get_id=True)[source]
Get all the pathways from a padmet instance.
- Parameters:
self (padmet) – padmet instance
get_id (bool) – True for the ID and False for the node corresponding to the pathways
- Returns:
list of pathways IDs or nodes
- Return type:
list
- getPathwaysReactions()[source]
Get all the pathways from a padmet instance with their reactions.
- Parameters:
self (padmet) – padmet instance
- Returns:
dictionary of pathways IDs as key with list of reactions IDs as value
- Return type:
dict
- getReactions(get_id=True)[source]
Get all the reactions from a padmet instance.
- Parameters:
self (padmet) – padmet instance
get_id (bool) – True for the ID and False for the node corresponding to the reactions
- Returns:
list of reactions IDs or nodes
- Return type:
list
- loadGraph(padmet_file)[source]
Allow to recover all the informations of the padmet file. The section Data Base informations corresponds to the self.info The section Nodes corresponds to the data of each nodes in self.dicOfNode, sep =” ” The section Relations corresponds to the data of each relations in self.dicOfRelationIn/Out, sep =” “
- Parameters:
padmet_file (str) – the pathname of the padmet file to load.
- setDicOfNode(source)[source]
Set dicOfNode from a dict or copying from an other padmet
- Parameters:
source (dict or padmet.classes.PadmetRef) – may be a dict or an other padmet from where will be copied the dicOfNode
- setInfo(source)[source]
All the information printed in the header of a padmet stocked in a dict. {“metacyc”:{version:XX,…},”ecocyc”:{…}…} set Info from a dictionnary or copying from an other padmet
- Parameters:
source (dict or padmet.classes.PadmetRef) – may be a dict or an other padmet from where will be copied the info
- setPolicy(source)[source]
Set policy from a list or copying from an other padmet
- Parameters:
source (list or padmet.classes.PadmetRef) – may be a list or an other padmet from where will be copied the policy
- setdicOfRelationIn(source)[source]
Set dicOfRelationIn from a dict or copying from an other padmet
- Parameters:
source (dict or padmet.classes.PadmetRef) – may be a dict or an other padmet from where will be copied the dicOfRelationIn
- setdicOfRelationOut(source)[source]
Set dicOfRelationOut from a dict or copying from an other padmet
- Parameters:
source (dict or padmet.classes.PadmetRef) – may be a dict or an other padmet from where will be copied the dicOfRelationOut
- updateFromSbml(sbml_file, verbose=False)[source]
Initialize a padmetRef from sbml. Copy all species, convert id with sbmlPlugin stock name in COMMON NAME. Copy all reactions, convert id with sbmlPlugin, stock name in common name, stock compart and stoichio data relative to reactants and products in the misc of consumes/produces relations
- Parameters:
sbml_file (str) – pathname of the sbml file
verbose (bool) – if True print supp info
PadmetSpec
- class padmet.classes.padmetSpec.PadmetSpec(padmetSpec_file=None)[source]
PadmetSpec is an object representing the metabolic network of a species(organism) based on a reference database PadmetRef. contains <Policy>, <Node> and <Relation> The policy defines the way Node and Relation are associated A node is an Object that contains information about an element of the network (can be a pathway, reaction…). A relation defines how two nodes are connected. In a relation there is a node “in” and a node “out”. (reactionX’in’ consumes metaboliteX’out’) PadmetSpec contains 3 attributes:
dicOfNode: a dictionary of node: key=Node’s unique id / value = <Node> dicOfRelationIn: a dictionary of relation with: key= nodeIN id / value = list of <relation> dicOfRelationOut: a dictionary of relation with: key= nodeOut id / value = list of <relation> policy: a <policy> info: a dictionary of informations about the network, the database used… This dictionary is always represented in the header of a padmet file
if None, initializes an empty <PadmetSpec>
- Parameters:
padmetSpec_file (str) – pathname of the padmet file
- copyNode(padmet, node_id)[source]
copyNode() allows to copy a node from an other padmetSpec or padmetRef. It copies all the relations ‘in’ and ‘out’ and it calls the function _copyNodeExtend() to recover the associated node.
- Parameters:
Padmet (padmet.classes.PadmetRef/PadmetSpec) – padmet from where to copy the node
node_id (str) – the id of the node to copy
- createNode(_type, _id, dicOfMisc={}, listOfRelation=None)[source]
Creation of new node to add in the network.
- Parameters:
_type (str) – type of node (gene, reaction…)
_id (str) – id of the node
dicOfMisc (dict) – dictionnary of miscellaneous data
listOfRelation (list or None) – list of relation
- Returns:
new_node
- Return type:
padmet.classes.Node
- delNode(node_id)[source]
Allows to delete a node, the relations associated to the node, and for some relations, delete the associated node. For relations where the node to del is ‘in’:
if rlt type in [‘has_xref’,’has_name’,’has_suppData’]: delNode out
- For relations where the node to del is ‘out’:
if rlt type in [‘consumes’,’produces’]
- Parameters:
node_id (str) – id of node to delete
- Returns:
True if node successfully deleted, False if node not in dicOfNode
- Return type:
bool
- extract_pathway(node_id, padmetRef_file, output, sbml=None)[source]
Allow to extract a pathway in a csv file. Need a padmetRef to check the total number of reactions in the pathway. Header = “Reactions (metacyc_id)”, “Reactions (common_name)”, “EC-Number”,
“Formula (metacyc_id)”, “Formula (common_name)”, “Found in the network”
- Parameters:
node_id (str) – id of the pathway
padmetRef_file (str) – pathname of the padmet ref file
output (str) – pathname of the output to create
sbml (None or str) – if path given, create a sbml file of this pathway
- generateFile(output)[source]
Allow to create a padmet file to stock all the data.
- Parameters:
output (str) – path to output file
- getAllRelation()[source]
return a set of all relations
- Returns:
return a set of all relations
- Return type:
set
- getCompounds(get_id=True)[source]
Get all the compounds from a padmet instance.
- Parameters:
self (padmet) – padmet instance
get_id (bool) – True for the ID and False for the node corresponding to the compounds
- Returns:
list of compound IDs or nodes
- Return type:
list
- getGenes(get_id=True)[source]
Get all the genes from a padmet instance.
- Parameters:
self (padmet) – padmet instance
get_id (bool) – True for the ID and False for the node corresponding to the genes
- Returns:
list of genes IDs or nodes
- Return type:
list
- getPathways(get_id=True)[source]
Get all the pathways from a padmet instance.
- Parameters:
self (padmet) – padmet instance
get_id (bool) – True for the ID and False for the node corresponding to the pathways
- Returns:
list of pathways IDs or nodes
- Return type:
list
- getPathwaysReactions()[source]
Get all the pathways from a padmet instance with their reactions.
- Parameters:
self (padmet) – padmet instance
- Returns:
dictionary of pathways IDs as key with list of reactions IDs as value
- Return type:
dict
- getReactions(get_id=True)[source]
Get all the reactions from a padmet instance.
- Parameters:
self (padmet) – padmet instance
get_id (bool) – True for the ID and False for the node corresponding to the reactions
- Returns:
list of reactions IDs or nodes
- Return type:
list
- getRelation(rlt_id_in, rlt_type, rlt_id_out)[source]
return a relation
- Returns:
return a relation
- Return type:
- getRelationTypeIDIn(rlt_type, rlt_id_in)[source]
return a relation
- Returns:
return a relation
- Return type:
- get_growth_medium(b_compart='C-BOUNDARY')[source]
return set of metabolites corresponding to the growth medium
- ko(genes, verbose=False)[source]
remove all reactions associated to a given gene or list of genes
- Parameters:
genes (str or list) – one gene or list of genes to remove
verbose (bool) – print more info
- loadGraph(padmet_file)[source]
Allow to recover all the information of the padmet file. The section Data Base information corresponds to the self.info The section Nodes corresponds to the data of each nodes in self.dicOfNode, sep =” ” The section Relations corresponds to the data of each relations in self.dicOfRelationIn/Out, sep =” “
- Parameters:
padmet_file (str) – the pathname of the padmet file to load.
- network_report(output_dir, padmetRef_file=None, verbose=False)[source]
Summurizes the network in a folder (output_dir) of 4 files. all_pathways.tsv: report on the pathways of the network. PadmetRef is used to recover the total reactions of a pathways. (sep = “ “) line = dbRef_id, Common name, Number of reactions found,
Total number of reaction, Ratio (Reaction found / Total)
all_reactions.tsv: report on the reactions of the network. (sep = “ “) line = dbRef_id, Common name, formula (with id),
formula (with common name), in pathways, associated genes, sources
all_metabolites.tsv: report on the metabolites of the network. (sep = “ “) line = dbRef_id, Common name, Produced (p), Consumed (c), Both (cp) all_genes.tsv: report on the genes of the network. (sep= “ “) line = “id”, “Common name”, “linked reactions”
- Parameters:
padmetRef_file (str) – pathname of the padmet of reference
output_dir (str) – pathname of the folder where to create the reports
verbose (bool) – if true print info.
- setDicOfNode(source)[source]
Set dicOfNode from a dict or copying from an other padmet
- Parameters:
source (dict or padmet.classes.PadmetRef/PadmetSpec) – may be a dict or an other padmet from where will be copied the dicOfNode
- setInfo(source)[source]
All the information printed in the header of a padmet stocked in a dict. {“metacyc”:{version:XX,…},”ecocyc”:{…}…} set Info from a dictionary or copying from an other padmet
- Parameters:
source (dict or padmet.classes.PadmetRef/PadmetSpec) – may be a dict or an other padmet from where will be copied the info
- setPolicy(source)[source]
Set policy from a list or copying from an other padmet
- Parameters:
source (list or padmet.classes.PadmetRef/PadmetSpec) – may be a list or an other padmet from where will be copied the policy
- set_growth_medium(new_growth_medium=None, padmetRef=None, rxn_prefix={'ExchangeSeed', 'TransportSeed'}, b_compart='C-BOUNDARY', e_compart='e', c_compart='c', verbose=False)[source]
if new_growth_medium is None: just remove the growth medium by deleting reactions starting with rxn_prefix else: remove and change by the new growth_medium, a list of compounds.
- Parameters:
new_growth_medium (list or None) – list of metabolites ids for the new media
padmetRef (str) – path name of the padmet ref file
rxn_prefix (set) – set of prefix corresponding to reactions of exchanges (specific to growth medium)
b_compart (str) – ID of the boundary compartment, compound in this compart will have BoundaryCondition True in sbml
verbose (bool) – print more info
- setdicOfRelationIn(source)[source]
Set dicOfRelationIn from a dict or copying from an other padmet
- Parameters:
source (dict or padmet.classes.PadmetRef/PadmetSpec) – may be a dict or an other padmet from where will be copied the dicOfRelationIn
- setdicOfRelationOut(source)[source]
Set dicOfRelationOut from a dict or copying from an other padmet
- Parameters:
source (dict or padmet.classes.PadmetRef/PadmetSpec) – may be a dict or an other padmet from where will be copied the dicOfRelationOut
- updateFromPadmet(padmet)[source]
update padmet from another padmet file
- Parameters:
padmet (padmet.classes.PadmetRef/PadmetSpec) – padmet instance
- updateFromSbml(sbml_file, padmetRef=None, mapping_file=None, verbose=False, force=False, source_tool=None, source_category=None, source_id=None)[source]
Copy data from sbml to padmet. If the id of the sbml are different with the padmetRef, need to add a dictionary of associations between the id in the sbml and the id of the database of reference. if no padmetRef, will create reactions and compounds based on the given sbml @param sbml_file: pathname of the sbml file @param padmetRef: <PadmetRef> padmet of reference. @param mapping_dict (opt): pathname of the file containing the association original_id ref_id, sep =” ” @param verbose: print info @param force: if true, allow to copy reactions that are not in padmetRef by creating new reaction @type sbml_file, assocIdOriginRef: str @type padmetRef: PadmetRef @type verbose, force: bool @return: _ @rtype: None
- updateNode(node_id, data, action)[source]
Allows to update miscellaneous data of a Node. @param node_id: the id of node to update @param data: tuple with data[0] refers to the miscellaneous data key (ex: common_name, direction …), data[1] is a list of value to add / update. data[1] can be None if the action is to pop the key @param action: if == “add”: the list data[1] will be added (ex: adding a common_name) if == “remove”: if data[1] is not None, the list data[1] will be removed (ex: remove just one specific common_name) if == “update”:data[1] is the new value of the key data[0] ex: updateNode(‘RXN-5’,(‘direction’,[‘LEFT-TO-RIGHT’]),update). The reaction’ direction will be change to left2right
- Parameters:
node_id (str) – the id of the node to update
data (tuple) – tuple of data to update, data[0] is the key, data[1] is a value, list or None
action (str) – action in [‘add’,’pop’,’remove’,’update’]. Check description for more information
- Returns:
True if node successfully updated
- Return type:
bool