#!/apps/prod/python/anaconda/anaconda3/bin/python


import sys
import numpy as np
from rdkit import Chem
from rdkit.Chem import AllChem
from scipy import linalg
   
def main():
    """
    """
    fn1 = 'BHo.mol2'    
   
    # read in molecules
    mol1 = Chem.MolFromMol2File(fn1)    
    
    tmat = np.array([[1.,0.,0.,0.5],
                     [0.,1.,0.,0.],
                     [0.,0.,1.,0.],
                     [0.,0.,0.,1.]
                     ])

    tmatinv = np.array([[1.,0.,0.,-0.5],
                        [0.,1.,0.,0.],
                        [0.,0.,1.,0.],
                        [0.,0.,0.,1.]
                       ])
    
    tmatinv1 = linalg.inv(tmatinv)
    
    print(type(tmat))
    print(type(tmat[0][0]))
    print(tmat)
    print(np.result_type(tmat))

    print(type(tmatinv))
    print(type(tmatinv[0][0]))
    print(tmatinv)
    print(np.result_type(tmat))
    
    print(type(tmatinv1))
    print(type(tmatinv1[0][0]))
    print(tmatinv1)
    print(np.result_type(tmat))


    print('\n\noriginal coordinates:\n')
    print(Chem.MolToMolBlock(mol1))
    AllChem.TransformMol(mol1, tmatinv)
    print('\n\nTransformMol with explicit inverse -> coordinates change:\n')
    print(Chem.MolToMolBlock(mol1))
    
    print('\n\nsecond TransformMol with calculated inverse -> coordinates dont change:\n')
    AllChem.TransformMol(mol1, tmatinv1)
    print(Chem.MolToMolBlock(mol1))
    
    sys.exit()

 
# end of main
    
if __name__ == "__main__":
    sys.exit(main())
    

