05_random_linkagesΒΆ
Install the package from pip (skip this step if the package is already installed)
[ ]:
! pip install ligning
[1]:
# set ligning path (optional if installed via pip)
import sys, os
project_path = os.path.abspath(os.path.join(os.getcwd(), '..\..\..'))
print(project_path)
sys.path.insert(0, project_path)
import numpy as np
import time
import ligning.monomer as mono
import ligning.polymer as poly
import ligning.utils as ut
c:\Users\yifan\Documents\GitHub\LigninGraphs
RDKit WARNING: [17:54:19] Enabling RDKit 2019.09.3 jupyter extensions
[2]:
# Set the random seed
np.random.seed(1)
# Starting from a random monomer
P0 = mono.Monomer('S')
polymer = poly.Polymer(P0)
start = time.time()
# Set the number of polymerization iteration
n_iter = 12
# list for graphs
P_Gs = []
# list for mols
P_mols = []
# Polymerization loop
for i in range(n_iter):
polymer.add_random_monomer()
Px = polymer.G.copy()
P_Gs.append(Px)
Px_mol = ut.graph_to_mol(Px)
P_mols.append(Px_mol)
end = time.time()
n_monomer = n_iter + 2
run_time = end - start
print("Lignin polymerization: %2d monomers takes %5.5f s" %(n_monomer, run_time))
Connect a S to a H unit (in polymer) via a 4-O-5 bond
Connect a S to a G unit (in polymer) via a alpha-O-4 bond
Connect a S to a H unit (in polymer) via a beta-1 bond
Connect a H to a G unit (in polymer) via a 4-O-5 bond
Connect a G to a S unit (in polymer) via a beta-1 bond
Connect a H to a H unit (in polymer) via a beta-5 bond
Connect a G to a S unit (in polymer) via a alpha-O-4 bond
Connect a G to a S unit (in polymer) via a 4-O-5 bond
Connect a S to a H unit (in polymer) via a beta-5 bond
Connect a H to a G unit (in polymer) via a beta-1 bond
Connect a H to a S unit (in polymer) via a beta-1 bond
Connect a H to a G unit (in polymer) via a alpha-O-4 bond
Lignin polymerization: 14 monomers takes 0.18176 s