Version 2 (modified by 14 years ago) ( diff ) | ,
---|
Create a micelle
In this example, we will create a two micelle-like structures out of a single molecule in tensid.data.
First Micelle
First, we will specify an empty TREMOLO data file (-i test.data), we give PDB and TREMOLO as output formats (-o pdb tremolo). Then we first parse the potentials file (--parse-tremolo-potentials tensid.potentials), then load the tenside molecule (-l tensid.data). (Note: The potentials file gives us information about which type represents which element, e.g. HLA2 actually means hydrogen or H. So, this part of the command is only necessary if your Type column in tensid.data does not contain valid element symbols.) We select the tensid molecule by its name, which is automatically set to from the filename (--select-molecule-by-name tensid). And then we call the CreateMicelleAction with the following parameters (--create-micelle 200 --position "0,0,0" --radius 10):
- 200 points on the surface of the sphere equals 200 resulting tenside molecules (MoleCuilder will state 400 because the ionic compound is regarded as a distinct molecule)
- The sphere is centered at (0,0,0)
- The radius of the sphere is 10 (Angstroem).
~/workspace_C/molecuilder/debug64/src/molecuilder -v 3 -i test.data -o pdb tremolo --parse-tremolo-potentials tensid.potentials -l tensid.data --select-molecule-by-name tensid --create-micelle 200 --position "0,0,0" --radius 10
Second Micelle
The second call is as follows:
~/workspace_C/molecuilder/debug64/src/molecuilder -v 3 -i test.data -o pdb tremolo --parse-tremolo-potentials -l tensid.data --select-molecule-by-name tensid --create-micelle 200 --position "100,0,0" --radius 10
You notice that this is very similar to the first one. The only difference is the position is no (100,0,0) and not at (0,0,0), as we do not want to create the second micelle on top of the first but same space apart.
Filling empty space with water molecules
Now, we run into a basic problem of the PDB format. The atomic ids only go up to 99999, i.e. 5 digits. Filling the void space with water however will result in roughly 400.000 atoms. Hence, we set the output format to XYZ (-o xyz) instead. First, we have to specify a domain that we fill. Therefore, we now call AddEmptyBoundaryAction (--boundary "20,20,20") which causes every atom to be last 20 Angstroem away from the boundary. Then, all is set for calling FillVoidWithMoleculeAction (--fill-void water.xyz --MaxDistance -1 --distances "3.1, 3.1, 3.1" --lengths "2.1, 0., 0." --DoRotate 0) with the following parameters:
- The water molecule (the filler) is obtained from parsing water.xyz
- There is no maximum distance given (e.g. to some surface)
- The distances in between the water molecules is 3.1 Angstroem, relating to a density of 1g/cm3 (try to calculate with units yourself).
- The lengths here are: 2.1 Angstroem distance to every other already present atom found. The two remaining numbers are for randomizing atomic and molecule's central position.
- Finally, we do not rotate randomly the water molecule.
~/workspace_C/molecuilder/debug64/src/molecuilder -v 1 --parse-tremolo-potentials -i test.data -o xyz --boundary "20,20,20" --fill-void water.xyz --MaxDistance -1 --distances "3.1, 3.1, 3.1" --lengths "2.1, 0., 0." --DoRotate 0
The final outcome can be seen in vmd in test.xyz.