From b62f5c76e0caccaf83e085c1e105ae842cf1396d Mon Sep 17 00:00:00 2001 From: Connie Gao Date: Fri, 28 Mar 2014 13:59:13 -0400 Subject: [PATCH 1/2] Getting rid of legacy `history` field in database entries. This field does nothing useful and only creates useless commit differences on github. Its removal lets the database be cleaner. --- .../users/rmg/database/modification.rst | 20 +++++++------------ rmgpy/data/base.py | 11 +--------- rmgpy/data/kinetics/common.py | 5 ----- rmgpy/data/kinetics/depository.py | 2 -- rmgpy/data/kinetics/family.py | 6 ++---- rmgpy/data/kinetics/groups.py | 3 +-- rmgpy/data/kinetics/library.py | 2 -- rmgpy/data/kinetics/rules.py | 2 -- rmgpy/data/solvation.py | 6 ------ rmgpy/data/statmech.py | 11 ---------- rmgpy/data/thermo.py | 12 +---------- rmgpy/data/transport.py | 4 ---- 12 files changed, 12 insertions(+), 72 deletions(-) diff --git a/documentation/source/users/rmg/database/modification.rst b/documentation/source/users/rmg/database/modification.rst index 149aefa856..56dae923e4 100644 --- a/documentation/source/users/rmg/database/modification.rst +++ b/documentation/source/users/rmg/database/modification.rst @@ -11,15 +11,15 @@ Modifying the Thermo Database ============================= Creating Thermo Libraries ----------------------------------- +------------------------- Adding Thermo Groups ----------------------------------- +-------------------- Adding Thermo to the Depository ----------------------------------- +------------------------------- .. _kinetic-database-modification: @@ -42,7 +42,7 @@ Put kinetic parameters into the training set when: * You wish for the reaction to be generalized to similar reactions in your mechanism Creating Kinetics Libraries ----------------------------------- +--------------------------- Adding New Kinetic Groups and Rate Rules ---------------------------------------- @@ -117,9 +117,6 @@ In the family's groups.py, you will need to add an entry of the format:: referenceType = "", shortDesc = u"""""", longDesc = u"""""", - history = [ - ("Wed Dec 5 10:25:25 2012","Josh Allen ","action","""Josh Allen imported this entry from the old RMG database."""), - ], ) * The index can be any number not already present in the set @@ -142,7 +139,7 @@ example given in the previous section, the new group would be added under the C_ .. _kinetic-rules: Adding Kinetic Rules ---------------------------------------------------- +-------------------- Rules give generalized kinetic parameters for a specific node template. In most cases, your kinetic parameters describe a specific reaction in which case you will want to add your reaction to the training set. @@ -186,9 +183,6 @@ The rule must be added into rules.py in the form:: Verified by Karma James """, - history = [ - ("Wed Jan 9 11:01:40 2013","Josh Allen ","action","""Josh Allen imported this entry from the old RMG database."""), - ], ) * The index can be any number not already used in rules.py. @@ -203,8 +197,8 @@ The rule must be added into rules.py in the form:: .. _kinetic-training-set: -Adding Training Reactions ----------------------------------------- +Adding Training Reactions +------------------------- If you know the kinetics of a specific reaction, rather than a rate rule for a template, you can add the kinetics to the database training set. By default, RMG creates new rate rules from this diff --git a/rmgpy/data/base.py b/rmgpy/data/base.py index 2d36a0615c..5e803236ad 100644 --- a/rmgpy/data/base.py +++ b/rmgpy/data/base.py @@ -77,7 +77,6 @@ class Entry: `shortDesc` A brief (one-line) description of the data `longDesc` A long, verbose description of the data `rank` An integer indicating the degree of confidence in the entry data, or ``None`` if not used - `history` A list of tuples containing the date/time of change, author, type of change, and a brief description of the change =================== ======================================================== """ @@ -94,7 +93,6 @@ def __init__(self, shortDesc='', longDesc='', rank=None, - history=None ): self.index = index self.label = label @@ -107,7 +105,6 @@ def __init__(self, self.shortDesc = shortDesc self.longDesc = longDesc self.rank = rank - self.history = history or [] def __str__(self): return self.label @@ -1258,7 +1255,7 @@ def saveOld(self, path): """ self.saveOldDictionary(path) - def loadEntry(self, label, molecule=None, group=None, shortDesc='', longDesc='', history=None): + def loadEntry(self, label, molecule=None, group=None, shortDesc='', longDesc=''): """ Load an entry from the forbidden structures database. This method is automatically called during loading of the forbidden structures @@ -1282,7 +1279,6 @@ def loadEntry(self, label, molecule=None, group=None, shortDesc='', longDesc='', item = item, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def saveEntry(self, f, entry, name='entry'): @@ -1314,9 +1310,4 @@ def saveEntry(self, f, entry, name='entry'): f.write(entry.longDesc.strip() + "\n") f.write('""",\n') - f.write(' history = [\n') - for time, user, action, description in entry.history: - f.write(' ("{0}","{1}","{2}","""{3}"""),\n'.format(time, user, action, description)) - f.write(' ],\n') - f.write(')\n\n') diff --git a/rmgpy/data/kinetics/common.py b/rmgpy/data/kinetics/common.py index aeb967fdc2..468f7278d4 100644 --- a/rmgpy/data/kinetics/common.py +++ b/rmgpy/data/kinetics/common.py @@ -223,9 +223,4 @@ def sortEfficiencies(efficiencies0): f.write(entry.longDesc.strip().encode('ascii', 'ignore')+ "\n") f.write('""",\n') - f.write(' history = [\n') - for time, user, action, description in entry.history: - f.write(' ("{0}","{1}","{2}","""{3}"""),\n'.format(time, user, action, description)) - f.write(' ],\n') - f.write(')\n\n') diff --git a/rmgpy/data/kinetics/depository.py b/rmgpy/data/kinetics/depository.py index 4bde606e56..5f0569167e 100644 --- a/rmgpy/data/kinetics/depository.py +++ b/rmgpy/data/kinetics/depository.py @@ -135,7 +135,6 @@ def loadEntry(self, shortDesc='', longDesc='', rank=None, - history=None ): reactants = [Molecule().fromAdjacencyList(reactant1)] @@ -158,7 +157,6 @@ def loadEntry(self, shortDesc = shortDesc, longDesc = longDesc.strip(), rank = rank, - history = history or [], ) self.entries['{0:d}:{1}'.format(index,label)] = entry return entry diff --git a/rmgpy/data/kinetics/family.py b/rmgpy/data/kinetics/family.py index 7162ac08c4..5745c3462c 100644 --- a/rmgpy/data/kinetics/family.py +++ b/rmgpy/data/kinetics/family.py @@ -619,13 +619,13 @@ def loadRecipe(self, actions): assert action[0] in ['CHANGE_BOND','FORM_BOND','BREAK_BOND','GAIN_RADICAL','LOSE_RADICAL','GAIN_PAIR','LOSE_PAIR'] self.forwardRecipe.addAction(action) - def loadForbidden(self, label, group, shortDesc='', longDesc='', history=None): + def loadForbidden(self, label, group, shortDesc='', longDesc=''): """ Load information about a forbidden structure. """ if not self.forbidden: self.forbidden = ForbiddenStructures() - self.forbidden.loadEntry(label=label, group=group, shortDesc=shortDesc, longDesc=longDesc, history=history) + self.forbidden.loadEntry(label=label, group=group, shortDesc=shortDesc, longDesc=longDesc) def saveEntry(self, f, entry): """ @@ -863,7 +863,6 @@ def addKineticsRulesFromTrainingSet(self, thermoDatabase=None): reference=entry.reference, shortDesc="Rate rule generated from training reaction {0}. ".format(entry.index) + entry.shortDesc, longDesc="Rate rule generated from training reaction {0}. ".format(entry.index) + entry.longDesc, - history=entry.history, ) new_entry.data.A.value_si /= entry.item.degeneracy try: @@ -915,7 +914,6 @@ def addKineticsRulesFromTrainingSet(self, thermoDatabase=None): reference=entry.reference, shortDesc="Rate rule generated from training reaction {0}. ".format(entry.index) + entry.shortDesc, longDesc="Rate rule generated from training reaction {0}. ".format(entry.index) + entry.longDesc, - history=entry.history, ) new_entry.data.A.value_si /= item.degeneracy try: diff --git a/rmgpy/data/kinetics/groups.py b/rmgpy/data/kinetics/groups.py index 21111993bb..3662c1f9b9 100644 --- a/rmgpy/data/kinetics/groups.py +++ b/rmgpy/data/kinetics/groups.py @@ -81,7 +81,7 @@ def __init__(self, def __repr__(self): return ''.format(self.label) - def loadEntry(self, index, label, group, kinetics, reference=None, referenceType='', shortDesc='', longDesc='', history=None): + def loadEntry(self, index, label, group, kinetics, reference=None, referenceType='', shortDesc='', longDesc=''): if group[0:3].upper() == 'OR{' or group[0:4].upper() == 'AND{' or group[0:7].upper() == 'NOT OR{' or group[0:8].upper() == 'NOT AND{': item = makeLogicNode(group) else: @@ -95,7 +95,6 @@ def loadEntry(self, index, label, group, kinetics, reference=None, referenceType referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def getReactionTemplate(self, reaction): diff --git a/rmgpy/data/kinetics/library.py b/rmgpy/data/kinetics/library.py index f04fdcd60f..d1c0a5c0ca 100644 --- a/rmgpy/data/kinetics/library.py +++ b/rmgpy/data/kinetics/library.py @@ -272,7 +272,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): reactants = [Species(label=reactant1.strip().splitlines()[0].strip(), molecule=[Molecule().fromAdjacencyList(reactant1)])] @@ -305,7 +304,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) # Convert SMILES to Molecule objects in collision efficiencies diff --git a/rmgpy/data/kinetics/rules.py b/rmgpy/data/kinetics/rules.py index 8fcd1bf510..49d8b3f49b 100644 --- a/rmgpy/data/kinetics/rules.py +++ b/rmgpy/data/kinetics/rules.py @@ -82,7 +82,6 @@ def loadEntry(self, shortDesc='', longDesc='', rank=None, - history=None ): reactants = [] @@ -119,7 +118,6 @@ def loadEntry(self, shortDesc = shortDesc, longDesc = longDesc.strip(), rank = rank, - history = history or [], ) try: self.entries[label].append(entry) diff --git a/rmgpy/data/solvation.py b/rmgpy/data/solvation.py index 2e40bd06ae..8dcdaab8de 100644 --- a/rmgpy/data/solvation.py +++ b/rmgpy/data/solvation.py @@ -228,7 +228,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): self.entries[label] = Entry( index = index, @@ -238,7 +237,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def load(self, path): @@ -276,7 +274,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): self.entries[label] = Entry( index = index, @@ -287,7 +284,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def load(self, path): @@ -332,7 +328,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): if group[0:3].upper() == 'OR{' or group[0:4].upper() == 'AND{' or group[0:7].upper() == 'NOT OR{' or group[0:8].upper() == 'NOT AND{': item = makeLogicNode(group) @@ -347,7 +342,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def saveEntry(self, f, entry): diff --git a/rmgpy/data/statmech.py b/rmgpy/data/statmech.py index 5a7178785e..770f04139d 100644 --- a/rmgpy/data/statmech.py +++ b/rmgpy/data/statmech.py @@ -83,11 +83,6 @@ def saveEntry(f, entry): f.write(entry.longDesc.strip() + "\n") f.write('\n""",\n') - f.write(' history = [\n') - for time, user, action, description in entry.history: - f.write(' ("{0}","{1}","{2}","""{3}"""),\n'.format(time, user, action, description)) - f.write(' ],\n') - f.write(')\n\n') def generateOldLibraryEntry(data): @@ -135,7 +130,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): self.entries[label] = Entry( index = index, @@ -146,7 +140,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def saveEntry(self, f, entry): @@ -174,7 +167,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): self.entries[label] = Entry( index = index, @@ -185,7 +177,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def saveEntry(self, f, entry): @@ -228,7 +219,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): if ( group[0:3].upper() == 'OR{' or group[0:4].upper() == 'AND{' or @@ -247,7 +237,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def saveEntry(self, f, entry): diff --git a/rmgpy/data/thermo.py b/rmgpy/data/thermo.py index 2f0734e15d..35014a60a4 100644 --- a/rmgpy/data/thermo.py +++ b/rmgpy/data/thermo.py @@ -121,11 +121,6 @@ def saveEntry(f, entry): f.write(entry.longDesc.strip().encode('ascii', 'ignore')+ "\n") f.write('""",\n') - f.write(' history = [\n') - for time, user, action, description in entry.history: - f.write(' ("{0}","{1}","{2}","""{3}"""),\n'.format(time, user, action, description)) - f.write(' ],\n') - f.write(')\n\n') def generateOldLibraryEntry(data): @@ -189,7 +184,7 @@ class ThermoDepository(Database): def __init__(self, label='', name='', shortDesc='', longDesc=''): Database.__init__(self, label=label, name=name, shortDesc=shortDesc, longDesc=longDesc) - def loadEntry(self, index, label, molecule, thermo, reference=None, referenceType='', shortDesc='', longDesc='', history=None): + def loadEntry(self, index, label, molecule, thermo, reference=None, referenceType='', shortDesc='', longDesc=''): entry = Entry( index = index, label = label, @@ -199,7 +194,6 @@ def loadEntry(self, index, label, molecule, thermo, reference=None, referenceTyp referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) self.entries[label] = entry return entry @@ -229,7 +223,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): molecule = Molecule().fromAdjacencyList(molecule) @@ -251,7 +244,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def saveEntry(self, f, entry): @@ -293,7 +285,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): if group[0:3].upper() == 'OR{' or group[0:4].upper() == 'AND{' or group[0:7].upper() == 'NOT OR{' or group[0:8].upper() == 'NOT AND{': item = makeLogicNode(group) @@ -308,7 +299,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def saveEntry(self, f, entry): diff --git a/rmgpy/data/transport.py b/rmgpy/data/transport.py index 56dda0f604..0b72b2e5fa 100644 --- a/rmgpy/data/transport.py +++ b/rmgpy/data/transport.py @@ -99,7 +99,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): self.entries[label] = Entry( index = index, @@ -110,7 +109,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def saveEntry(self, f, entry): """ @@ -149,7 +147,6 @@ def loadEntry(self, referenceType='', shortDesc='', longDesc='', - history=None ): if group[0:3].upper() == 'OR{' or group[0:4].upper() == 'AND{' or group[0:7].upper() == 'NOT OR{' or group[0:8].upper() == 'NOT AND{': item = makeLogicNode(group) @@ -164,7 +161,6 @@ def loadEntry(self, referenceType = referenceType, shortDesc = shortDesc, longDesc = longDesc.strip(), - history = history or [], ) def saveEntry(self, f, entry): From 02e2203cb14d0c6e27d4abe6e1072d163cc5ce33 Mon Sep 17 00:00:00 2001 From: Connie Gao Date: Fri, 28 Mar 2014 14:26:54 -0400 Subject: [PATCH 2/2] For kinetics databases, write reference and referenceType fields only if not None. --- rmgpy/data/kinetics/common.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rmgpy/data/kinetics/common.py b/rmgpy/data/kinetics/common.py index 468f7278d4..f6efba6062 100644 --- a/rmgpy/data/kinetics/common.py +++ b/rmgpy/data/kinetics/common.py @@ -203,10 +203,9 @@ def sortEfficiencies(efficiencies0): for line in lines[1:-1]: f.write(' {0}\n'.format(line)) f.write(' ),\n'.format(lines[0])) - else: - f.write(' reference = None,\n') - f.write(' referenceType = "{0}",\n'.format(entry.referenceType)) + if entry.referenceType != "": + f.write(' referenceType = "{0}",\n'.format(entry.referenceType)) if entry.rank is not None: f.write(' rank = {0},\n'.format(entry.rank)) f.write(' shortDesc = u"""')