MESHI home

version 4.21 February 26th 2008

Publications Acknowledgements The MESHI team installation download F.A.Q.
news API Contact us Beautify What's new previous versions

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

MESHI installation:

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.

  1. Make sure that java is installed on your computer. You can download java from Sun's website at: We use java version "1.5.0_02".
  2. Create a designated directory named meshi. We will refer to this directory as the MESHI directory.
  3. Copy the MESHI tar file into the meshi directory.
  4. Unzip and extract the file.
  5. Four subdirectories were created:
    1. "meshi" - contains the MESHI library. Note its "parameters" subdirectory. The programs we provide require its full path in their commands file.
    2. "programs" - contains programs.
    3. "API" - contains the API (html-based help) for MESHI.
    4. "tests" - Input files for sample programs.
  6. Add the full path of the MESHI Directory and the full path of its "programs" subdirectory to your CLASSPATH environment variable.
  7. Compile all java files in the meshi and programs subdirectories and in their subdirectories.

Getting started:

We recommend that you first try to run a simple application to see that everything is in order. A program called 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.
  1. 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)>
  2. 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 subdirectory.
    A running example in that directory:
    java -Xmx50m MinimizeProtein MinimizeProteins.commands 0
  3. For explanations about the program see the comments in its code.

A few MESHI programming tips:

  1. See the code of the program . It is fairly simple and well documented, and can give an example about classes in the MESHI library as well as their use.
  2. 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.
  3. 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.
  4. 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 framework.
  5. 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.


Beautify is a MESHI-based program that refines CA models resulting from various FR techniques. The inputs to Beautify are:
  1. The CA model.
  2. 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.
  3. A secondary-structure prediction.
  4. The various parameters of the refinement.
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.
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>

A working example:

Input files for a working example are included in the tests/BeautifyTest subdirectory. Please read the HWOTO file.

The MESHI team


  1. Methods abstract for CASP6
  2. Poster abstract for CASP6
  3. Lecture in CASP6
  4. D. Fischer's abstract for CASP6




What's new

previous verasions

Contact us

Bugs? comments? need help? Want to join our mailing list?
Please write to meshi


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 MESHI paper.

Last modified: Tue Nov 15 16:14:40 IST 2005