Chempy
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Chempy is a python-importable module that can be used to write PyMOL-executable scripts.
from chempy import cpv
help(cpv)
# Generic vector and matrix routines for 3-Space
# Assembled for usage in PyMOL and Chemical Python
#
# Assumes row-major matrices and arrays
# [ [vector 1], [vector 2], [vector 3] ]
#
# Raises ValueError when given bad input
FUNCTIONS
add(v1, v2)
#------------------------------------------------------------------------------
average(v1, v2)
#------------------------------------------------------------------------------
cross_product(v1, v2)
#------------------------------------------------------------------------------
distance(v1, v2)
#------------------------------------------------------------------------------
distance_sq(v1, v2)
#------------------------------------------------------------------------------
dot_product(v1, v2)
#------------------------------------------------------------------------------
fit(target_array, source_array)
fit(target_array, source_array) -> (t1, t2, rot_mtx, rmsd) [fit_result]
Calculates the translation vectors and rotation matrix required
to superimpose source_array onto target_array. Original arrays are
not modified. NOTE: Currently assumes 3-dimensional coordinates
t1,t2 are vectors from origin to centers of mass...
fit_apply(fit_result, vec_array)
fit_apply(fir_result,vec_array) -> vec_array
Applies a fit result to an array of vectors
get_angle(v1, v2)
#------------------------------------------------------------------------------
get_angle_formed_by(p1, p2, p3)
#------------------------------------------------------------------------------
get_identity()
#------------------------------------------------------------------------------
get_null()
#------------------------------------------------------------------------------
get_system2(x, y)
#------------------------------------------------------------------------------
inverse_transform(m, v)
#------------------------------------------------------------------------------
length(v)
#------------------------------------------------------------------------------
multiply(m1, m2)
#------------------------------------------------------------------------------
negate(v)
#------------------------------------------------------------------------------
normalize(v)
#------------------------------------------------------------------------------
normalize_failsafe(v)
#------------------------------------------------------------------------------
project(v, n)
#------------------------------------------------------------------------------
random_displacement(v, radius)
#------------------------------------------------------------------------------
random_sphere(v, radius)
#------------------------------------------------------------------------------
random_vector()
#------------------------------------------------------------------------------
remove_component(v, n)
#------------------------------------------------------------------------------
reverse(v)
#------------------------------------------------------------------------------
rotation_matrix(angle, axis)
#------------------------------------------------------------------------------
scale(v, factor)
#------------------------------------------------------------------------------
scale_system(s, factor)
#------------------------------------------------------------------------------
sub(v1, v2)
#------------------------------------------------------------------------------
transform(m, v)
#------------------------------------------------------------------------------
transform_about_point(m, v, p)
#------------------------------------------------------------------------------
transform_array(rot_mtx, vec_array)
transform_array( matrix, vector_array ) -> vector_array
translate_array(trans_vec, vec_array)
translate_array(trans_vec,vec_array) -> vec_array
Adds 'mult'*'trans_vec' to each element in vec_array, and returns
the translated vector.
transpose(m)
#------------------------------------------------------------------------------
Example
from chempy import cpv
PyMOL>a = [1.2 , 3.4, 4.5]
PyMOL>b = [2.2 , 4.4, 5.5]
PyMOL>c = cpv.add(a,b)
PyMOL>print c
[3.4000000000000004, 7.800000000000001, 10.0]