Skip to content

Commit

Permalink
fix: fix two-character elements (#1537)
Browse files Browse the repository at this point in the history
  • Loading branch information
njzjz committed Apr 14, 2022
1 parent 8a1cd46 commit 8a69089
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
5 changes: 4 additions & 1 deletion reacnetgenerator/_reachtml.py
Expand Up @@ -60,8 +60,11 @@ def _re(self, smi):
[CH]
>>> self._re('Na')
[Na]
>>> self._re('[H]c(Cl)C([H])Cl')
[H][c]([Cl])[C]([H])[Cl]
"""
elements = "|".join([((an.upper() + "|" + an.lower()) if len(an)==1 else an) for an in self.atomname if an != 'H'])
Satom = sorted(self.atomname, key = lambda i:len(i), reverse=True)
elements = "|".join([((an.upper() + "|" + an.lower()) if len(an)==1 else an) for an in Satom if an != 'H'])
smi = re.sub(r'(?<!\[)(' + elements + r')(?!H)', r'[\1]', smi)
return smi.replace("[HH]", "[H]")

Expand Down
12 changes: 12 additions & 0 deletions reacnetgenerator/test/test_reacnetgen.py
Expand Up @@ -15,6 +15,7 @@
from reacnetgenerator import ReacNetGenerator
from reacnetgenerator._detect import _Detect
from reacnetgenerator._hmmfilter import _HMMFilter
from reacnetgenerator._reachtml import _HTMLResult
from reacnetgenerator.gui import GUI
from reacnetgenerator.utils import checksha256, download_multifiles, listtobytes
from reacnetgenerator.commandline import parm2cmd
Expand Down Expand Up @@ -112,3 +113,14 @@ def test_benchmark_hmm(self, benchmark, reacnetgen_param):
compressed_bytes = [listtobytes((5, 6)), listtobytes(
((5, 6, 1),)), listtobytes(index)]
benchmark(hmmclass._getoriginandhmm, compressed_bytes)

def test_re(self, reacnetgen_param):
reacnetgen = ReacNetGenerator(**reacnetgen_param['rngparams'])
r = _HTMLResult(reacnetgen)
r.atomname = ['C', 'H', 'O', 'Na', 'Cl']
assert r._re('C'), '[C]'
assert r._re('[C]'), '[C]'
assert r._re('[CH]'), '[CH]'
assert r._re('Na'), '[Na]'
assert r._re('[H]c(Cl)C([H])Cl'), '[H][c]([Cl])[C]([H])[Cl]'

0 comments on commit 8a69089

Please sign in to comment.