Python analysis code to calculate the intrinsic surfaces and density profiles of quasi-spherical nanoparticles.
Written by Daniel Allen.
The nanoCISC ("(Not Always Naturally Obvious) the Continuous Intrinsic Surface and Curvature") software is capable of calculating both intrinsic and radial density profiles, as well as optionally outputting an xyz trajectory of the intrinsic surface and/or local curvature of the user defined and inputted nanoparticle.
The script requires the NumPy (http://www.numpy.org/), MDAnalysis (http://www.mdanalysis.org/) and Theano (http://deeplearning.net/software/theano/) Python libraries to run.
Arguments are fed into the script on the command line, some arguments are optional whilst others are mandatory. The mandatory arguments are:
-prefix "NAME_OF_YOUR_SYSTEM"
-top "topology_file"
-traj "trajectory_file"
-micelle "mask that selects all atoms in nanoparticle"
-anchors "mask that selects all anchor points"
The -prefix must specify a string, in quotes, which will set the naming scheme for all of the output files for a particular system or analysis run. The path to the topology and trajectory files must also be in quotes. The -micelle and -anchors arguments should specify a selection for MDAnalysis to make a group of all atoms contained within these groups (examples are given below). Without specifying all of the arguments listed above, the code won't run as this is the basic information required to perform the surface calculation. Note that your topology and trajectory files must be compatible with MDAnalysis (see https://pythonhosted.org/MDAnalysis/documentation\_pages/coordinates/init.html#supported-coordinate-formats). The optional arguments are:
-lambda $value_of_lambda
-calcrange $value_of_calcrange
-increment $value_of_spatial_increment
-XYZsurface 1 # yes, output the intrinsic surface
-curves 1 # yes, output the local curvature of the surface in the XYZsurface file
-density "Group_1_label" "Group_1_mask" "Group_2_label" "Group_2_mask"
... "Group_N_label" "Group_N_mask"
Specify floating point value for free parameter lambda (default is 15.0 as was used in the manuscript). The value of
The following example will calculate the intrinsic density of only the oxygen atoms in water molecules, labelled as "Ow" and selected as atom group "type 9" from the SDS+TP micelle trajectory:
nanoCISC -prefix "SDS-TP" -top "SDS+TP.data" -traj "SDS+TP-trajectory.dcd" -nanoparticle "resname SDS" -anchors "type 8" -density "Ow" "type 9"
The following example will calculate the intrinsic density of the oxygen atoms in water molecules, the hydrogen atoms in water molecules and the sodium counterions from the SDS+TP micelle trajectory. The calcrange, increment and value of lambda have all be explicitly defined. The surface will be written to an xyz file along with the local curvature of the surface:
nanoCISC -prefix "SDS-TP" -top "SDS+TP.data" -traj "SDS+TP-trajectory.dcd" -density "Ow" "type 9" "Hw" "type 10" "Na+" "type 1" -nanoparticle "resname SDS" -anchors "type 8" -calcrange 40 -increment 0.5 -lambda 10.0 -XYZsurface 1 -curves 1