version 4.21 February 26th 2008
MESHI is a software package for protein modeling. It is written solely in Java in strict object
oriented design (OOD). We hope that the use of OOD will encourage other groups interested in
protein modeling to use of the code and take part in its development. Please note though, that
the MESHI is in a rather preliminary stage of development. Not all the features you may expect
are already available (e.g. Molecular Dynamics), and documentation is less than perfect. We will
gladly receive any comment and within our limited resources do our best to help users/developers.
A legalistic remark: MESHI is intended to be free for use and development. We are still
not sure about the exact format (GNU, Open-Source or anything else).
You may download MESHI (including API) here
The following procedure was tested on Linux-based machines only. MESHI will probably run as well
on MS-windows or Mac but we have no experience with it.
- Make sure that java is installed on your computer. You can download java from Sun's website
http://wwws.sun.com/software/learnabout/java. We use java version "1.5.0_02".
- Create a designated directory named meshi. We will refer to this directory as the MESHI directory.
- Copy the MESHI tar file into the meshi directory.
- Unzip and extract the file.
- Four subdirectories were created:
- "meshi" - contains the MESHI library. Note its "parameters" subdirectory. The programs we
provide require its full path in their commands file.
- "programs" - contains programs.
- "API" - contains the API (html-based help) for MESHI.
- "tests" - Input files for sample programs.
- Add the full path of the MESHI Directory and the full path of its "programs" subdirectory to your
CLASSPATH environment variable.
- Compile all java files in the meshi and programs subdirectories and in their subdirectories.
We recommend that you first try to run a simple application to see that everything is in order. A program
called MinimizeProtein.java was designed for that purpose. This program minimizes a protein structure
according to standard energy terms such as covalent bonding and VDW. It is located in the programs subdirectory.
Note that this is really a "getting started program". Generality and usefulness were sacrificed for simplicity.
- The program requires three parameters: commands file, initial structure (pdb format) and a seed for the
random number generator.
Java MinimizeProtein <commands file name> <initial structure file name> <seed (integer)>
- Sample input files for this program may be found in tests/MinimizeProtein. Note that the file
MinimizeProteins.commands includes a line starting with the keyword "parameters" that needs to
be updated to your local environment. It should include the full path of the meshi/parameters
A running example in that directory:
java -Xmx50m MinimizeProtein MinimizeProteins.commands 0
- For explanations about the program see the comments in its code.
A few MESHI programming tips:
Beautify is a MESHI-based program that refines CA models resulting from various FR techniques. The inputs to
- See the code of the program MinimizeProtein.java . It is fairly simple and well documented,
and can give an example about classes in the MESHI library as well as their use.
- Use the MESHI API provided with the package or in the MESHI web site:
The API includes a thorough html-based description of all MESHI classes.
- We have tried to supply an informative description of all objects by their toString() method.
This means that for an object XXX writing
System.out.print(XXX) might provide some helpful hints
about the object's content.
- If you wish to program an energy-term of your own, go first through one of the simplest energy terms
already coded (a good start is BondEnergy handling covalent bonding that is extremely simple) to see the
- MESHI is rather demanding in terms of memory. For medium size proteins (> 100 aa) the default
memory allocation of java is insufficient (e.g. you may get an OutOfMemoryException). You can override
this problem by using the -Xmx flag of java. For example: java -Xmx500m MinimizeProtein … will
allocate 500 MB of memory to the run. Obviously if your computer does not have that much RAM and
the swap is used, performance is drastically degraded.
The operation of Beautify is described in our CASP6 abstract. In a nut-shell, beautify first adds the missing
CAs in the model according to the input sequence. A refinement of the CA model is followed. Next, the backbone
atoms are added and subjected to refinement. Finally the sidechains are added and subjected to another refinement
that yields the final result. All the refinements are done by direct energy minimization according to our
knowledge-based energy function.
- The CA model.
- The protein sequence. Starting with the first AA in the CA model and ending with the last AA of the
model, the sequence must include all the AA that are missing in the model. Beautify will add those
missing residues (usually in loops) and refine the complete model.
- A secondary-structure prediction.
- The various parameters of the refinement.
Beautify was our main tool in CASP6, with the CA models coming almost exclusively from the
CAFASP4 site. Our results submitted as group 160 (keasar)
scored high in the FR/H category. In our analysis, a consistent improvement in the RMSD of the CA model was
gained by refining it with Beautify.
Running Beautify from the command line:
java Beautify <Command file name> <CA model> <seed>
- seed - An integer for the random number generator.
- CA model - The file name of the CA model in pdb format.
- Command file name - A text file containing all the parameters of the run such as
A working example:
Input files for a working example are included in the tests/BeautifyTest subdirectory. Please read the HWOTO file.
- Go to the test/BeautifyTest directory.
- The PDB/119.50.1jj2.fugsa.1.pdb file is the initial CA model.
- The commands file controls the execution of the program. Update it to your local environment.
It should include the full path of the meshi/parameters subdirectory.
- In the command line: java -Xmx500m commands PDB/119.50.1jj2.fugsa.1.pdb 0
- The output of beautify is printed to the screen. If the run goes through, the
refined all-atom model will be printed at the end.
- Chen Keasar
- Nir Kalisman
- Ami Levi
- Tetyana Maximova
- Sharon Zafriri-Lin
- Dan Reshef
- Yan Gleyzer
- Dani Farkash
- Methods abstract for CASP6
- Poster abstract for CASP6
- Lecture in CASP6
- D. Fischer's abstract for CASP6
Bugs? comments? need help? Want to join our mailing list?
- Yet another set of old dusty bugs were replaced by a set of new and exciting ones.
- Beautify was rewritten in a cleaner and more modular form. It uses a new and apparently
better solvation term.
- An efficient and reasonably accurate approximation to the arcCos function. It is identical
to Math.arcCos up to 10th decimal digit and runs roughly four times faster. Math.arcCos however
remains the default.
- The torsion class provides accurate analytic derivatives near and at PI and zero.
- An improved method for the location of derivation problems.
Please write to
Only one question is asked offen - why java?
A short answer is - to save development time. A longer answer, in the same spirit, can be found in the
Last modified: Tue Nov 15 16:14:40 IST 2005