Subject: Summary:Protein Visualization/Protein Manipulation

From: Iraj Daizadeh <[email-masked]>
Date: Tue, 20 Oct 1998 11:15:49 -0400 (EDT)

Dear Colleagues:

This summary is organized as follows:

	I)  Original Question posed to the CCL.
	
	II) In Brief,
		
		A table enumerating the software products:

		Software Name	Platform(s)	WebSite
	
	III) Full Summaries

Please read the full summaries before proceding to the WebSite: most
programs satisfy the question posed, a couple do not (but they come very
close!).
	
Thank you for your responses to my question, I hope that this
summary will be of use to many of you in the near future.

Sincerely,

Iraj.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

I)

Original Query:

Hello.

I am in search of a program that is able to display multiple protein
structures at the same time (viz. on the screen) and is able to manipulate
them independently. The resolution of the structures displayed may be
primitive.  I know that RasMol is able to do this for up to five
molecules.  Any information concerning other programs preferably free
would be appreciated.  A summary will be posted on the CCL as is
customary.

Thank you.

Iraj.

Iraj Daizadeh, Ph.D.
Harvard University
Department of Chemistry and Chemical Biology
12 Oxford Street, Box #35
Cambridge, MA 02138-2902
Phone:  617-495-2654
Fax:   	617-495-1823
email:  [email-masked]

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

II)

Software Name   Platform(s)		WebSite

MOLVIEW         MAC/soon Windows          www.bio.cam.ac.uk/proj/teaching/
							virology/MolView/MolView.html
GOPENMOL	DEC,PC/LINUX,SGI          laaksonen.csc.fi/gopenmol/gopenmol.html			
SWISS-PDB       Mac,PC,SGI(Soon)          expasy.hcuge.ch/spdbv/mainpage.html
MOLDEN		SGI,SUN,DEC,CRAY,IBM,     www.caos.kun.nl/~schaft/molden/molden.html
		LINUX,HP,VAX,OpenVMS,
		Windows/NT,Windows95,OS2
			          
MMTK **         LINUX/UNIX                starship.skyport.net/crew/hinsen/mmtk.html
MAC-molecule2/  Name Says it All          www.molvent.com/
pc-molecule2
MOLMOL		UNIX,WindowsNT/95         www.mol.biol.ethz.ch/wuthrich/software/molmol
VMD		LINUX,SGI,SUN,HP,IBM,DEC  www.ks.uiuc.edu/Research/vmd/
RASTER3D        DEC,SGI,ESV,SUN,IBM,LINUX www.bmsc.washington.edu/raster3d/raster3d.html
MAGE	        MAC,UNIX,LINUX,WINDOWS	  www.faseb.org/protein/ProSciDocs/
								        MageInstall.html               
MOLSCRIPT	SGI,DEC,LINUX		  www.avatar.se/molscript/molscript.html
CN3D		Windows,MAC,UNIX	  www.ncbi.nlm.nih.gov/Structure/cn3d.html
MIDAS           I simply could not find this one!
INTERCHEM       SGI                     interchem.chem.strath.ac.uk/inter/interchem.html
MOLNEMA         Windows95 and higher/NT   www.nrcgeb.ac.ir/armin
WEB-LAB VIEWER  Windows95/WindowsNT       www.msi.com/viewer
MOLEKEL         SGI                       www.cscs.ch/Official/VisMolekel.html
MOE             SGI,SUN,WindowsNT,	  www.chemcomp.com
		Windows95,MAC,DEC	
		
** MMTK as of yet has no visualization routines as of yet, but was
placed in the above list for completeness.  

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

III)

1.
MOLVIEW

MolView can display two MolView files at a time.  There can be
multiple structures in the MolView or PDB files.  MolView Lite
can open several windows at a time.  Yea, Rasmol might open
more, but I have a lot more drawing options and parameters
that I need to keep track of and to maintain memory blocks for.
For example, you can do 3D alignments and such...
Hope this helps...
Tom

Department of Biological Sciences
Purdue University
Lilly Hall B135
West Lafayette, IN 47907
Tel (765)494-8038
Fax (765)496-1189

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2.
GOPENMOL

Hi Iraj,

Sure, gopenmol can display multiple structures at the same time. You can
even rotate them separately.

Regards,

-leif laaksonen

-------------------------------------------------------------------
Center for Scientific Computing    | Phone:      358 9 4572378
P.O. Box 405                       | Mobile:     358 400425203
FIN-02101 Espoo                    | Telefax:    358 9 4572302
FINLAND                            | Mail:  [email-masked]
-------- URL: http://laaksonen.csc.fi/leif.laaksonen.html ---------

ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

Hi Iraj,

gOpenMol (http://laaksonen.csc.fi/gopenmol/) can do any number of
structures. The only limit is the memory available on your machine.

Regards,

-leif laaksonen

-------------------------------------------------------------------
Center for Scientific Computing    | Phone:      358 9 4572378
P.O. Box 405                       | Mobile:     358 400425203
FIN-02101 Espoo                    | Telefax:    358 9 4572302
FINLAND                            | Mail:  [email-masked]
-------- URL: http://laaksonen.csc.fi/leif.laaksonen.html ---------

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

3.
SWISS-PDB

You can open up to 16 proteins, each coming in a separate layer.
If you regroup several proteins in the same layer, then more
proteins can be displayed.

Nicolas

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

4.
MOLDEN

No molden can not do that. It really boils down to working with fortran
(The Xwindowing stuff is in C). I have along term plan to switch to C
altogether, and then multiple molecules would not be so hard. 

Regards,

Gijs

-- 
    +----------------------------+-----------------------------------+
      Gijs Schaftenaar, Drs.     | CAOS/CAMM Center
      Email: [email-masked]  | University of Nijmegen
      URL  : http://www.caos.kun.nl/staff/schaft.html
      Tel. : +31 24 3653369      | Toernooiveld 1
      Fax  : +31 24 3652977      | 6525 ED Nijmegen, The Netherlands
    +-------- CAOS/CAMM is the Dutch National Node in EMBnet --------+
    
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

4. 
MMTK

MMTK has no visualization routines of its own (yet). Visualization
is handled via external viewers, of which the best supported is
currently VMD. Unfortunately this approach does not permit feedback
from the viewer to MMTK, so interactive manipulation is not possible.
That's why there will be OpenGL-based visualization code in MMTK at
a later stage, but not yet!

Konrad.
-- 
-------------------------------------------------------------------------------
Konrad Hinsen                            | E-Mail: [email-masked]
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-2.38.25.55.69
Rue Charles Sadron                       | Fax:  +33-2.38.63.15.17
45071 Orleans Cedex 2                    | Deutsch/Esperanto/English/
France                                   | Nederlands/Francais
-------------------------------------------------------------------------------

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

5.
MacMolecule2/PCMolecule2

Thank you for your inquiry.  MacMolecule2 and PCMolecule2 display single
PDB files per open window.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

6.
MOLMOL

Sure, as many as you want (until the memory runs out). I once
read 2000 BPTI structures.

Reto

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

8.
VMD

Yes.  You can load multiple proteins quite easily.  
And you can use one of several different representations
for each of them, or for parts of them if you do atom selections.

  John Stone
  [email-masked]

-- 

Theoretical Biophysics Group   Email: [email-masked]
Beckman Institute              http://www.ks.uiuc.edu/~johns/
University of Illinois         Phone:  (217) 244-3349
405 N. Mathews  Ave              FAX:  (217) 244-6078 
Urbana, IL 61801, USA          Unix Is Good For You!!!

oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
how about VMD?

http://www.ks.uiuc.edu/Research/vmd/

( a lot better than RasMol imo)

--
Tim Triche

[email-masked]

oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

VMD can do this.  See http://www.ks.uiuc.edu/Research/vmd/

-Jim

oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

Hi, Iraj,

Please check the webpage of Theoretical Biophysics group in the Beckmann
Institute in UIUC, they have a package call VMD, it is free.

Good luck.
Dayong

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

9.
RASTER3D

Raster3D will display whatever you ask it to.  
The rendering program doesn't know anything about "proteins"; 
it just knows about individual spheres, cylinders, ellipsoids, 
surfaces, etc, that some program has grouped together to
make a picture.  The various pre-processing programs can
convert PDB files to some combination of the above for rendering.
If you want 20 proteins at once, just feed them through into the
same picture. (Of course realistically if you try to put 20 
side-by-side they will end up so small you can't see much.)

			Ethan

-------------------------------------------------------------------
Ethan A Merritt                         K428b Health Sciences
Dept of Biological Structure            phone: (206)543-1421
University of Washington		FAX:   (206)685-7002
Seattle, WA 98195-7742                  [email-masked]
-------------------------------------------------------------------

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

10.
MAGE

Iraj,
     Yes, MAGE will display multiple proteins at the same time.  Perhaps 
of historical interest since you are at Harvard, one of the very first 
kinemages showed a superposition of carboxypeptidase with and without a 
bound inhibitor.  MAGE can not only show both superimposed, but more 
usefully, can rapidly animate between then - giving a very clear 
understanding of just what moves to accommodate the substrate!
Dave Richardson.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

11.
MOLSCRIPT
Please note that MolScript is not really an interactive display program
like Rasmol. The main point with MolScript is to produce high-quality
images of a protein for publication (Web or literature), not for
investigating protein structures interactively.

However, the direct answer to your question is yes. One can read in as
many coordinate files (sets) as one likes (and fits into your computer
memory). The placement of the different molecules will be a little bit
tricky, since they will most likely be placed somewhere far away from
the origin. So you will have to transform them closer to the center for
useful results.

I am not sure exactly what it is you want to do, but my advise is to
just get the software and try it.

-- 
Per Kraulis                         mailto:[email-masked]
Avatar Software AB                  http://www.avatar.se/
address: c/o Kraulis, Heleneborgsgatan 21C, SE-117 31 Stockholm, SWEDEN.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

12.
CN3D

Dear Colleague:

Cn3D can multiply align sequences which are similar according to the
VAST similarity algorithm. For instance if you run a search with the
Structures query (http://www.ncbi.nlm.nih.gov/Structure/) and view the
Structure Summary for a record you will notice links at the bottom
under "Structure Neighbors".

When you click this you will get similar structures as calculated by
VAST, and they will be arranged in a table. You can click up to f of
these and have them aligned with each other. There is more information
about this under the topic Neighbors int he Cn3D documentation located
at: http://www.ncbi.nlm.nih.gov/Structure/cn3dhelp.html

Hope this helps. 

Sincerely, 

Scott McGinnis
GenBank User Services. 

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

13.
MIDAS

Try midas.  I believe the company is midassoft.  YOu can do at least 10
structures.

Deepak.

Deepak Singh				Email: [email-masked]
Graduate Fellow				URL: http://web.syr.edu/~desingh
Department of Chemistry and Biochemistry,	Tel: (315) 443 1739 -- work
Syracuse University			       (315) 472 9659 -- home
1-014 Scitech Syracuse NY 13244		Fax: (315) 443 4070

"Violence is the last resort of the incompetent". -- Salvor Hardin

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

14.
INTERCHEM

Dear Iraj Daizadeh,

The INTERCHEM program, which is available form QCPE for $500 will allow
the display and independent manipulation of 1, 2, or 4 structures. These
can be small molecules or large biomolecules. Various overlaying tools
are also provided. The display programs works on SGI machines only.

See the website:

http://interchem.chem.strath.ac.uk/inter/interchem.html

Yours sincerely

Peter Bladon

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

15.
MOLNEMA

Dear Iraj,

As a part of my Pharm.D thesis about 4 years ago, I have written a program
by Borland C++ 3.1 and Object Windows class library, which runs under MS
Windows 3.1 and higher (95, 98 and NT) and called MOLNEMA. In this program,
you can load any number of molecules (in PDB and DTMM .mol format) and
easily rotate and transfer them in the space independently or together (but
no bond rotation). Selection is done easily via a selection window which
lists all the loaded molecules, you can also see list of residues or atoms
by simply double-clicking on a molecule (like directory structure). One of
the unique features of the program is that you can see molecules from top,
front, left and any number of perspective views (traditional four-view
presentation used in 3D modeling programs like 3D Studio), simultaneously.
Molecular representation is limited to wireframe and dot-surface (the later
is not implemented efficiently). 

At that time there was no program (at least to my knowledge) to do such
things under Windows, but now I think you can find many of them (like
WebLabView). We used it for manual docking of ligands into the active site
of receptors. Please note that MOLNEMA is not a mature program and hence
not bug free and many features not implemented. Anyway if you think MOLNEMA
is appropriate for your propose, just let me know. 

I must state that also, currently I am working on a brand new program with
many enhanced features, including:

- Written completely in C++ by MS Visual Studio 97 and MFC.
- Rewritten from the scratch by DA and OO design in mind.
- Same four view but this time implemented in OpenGL.
- Fully multi-threaded (each OpenGL view has separate thread).
- Utilizes MS OLE 2.0 technology for clipboard operations.
- A proprietary binary file format for loading and saving molecules.
- Plug-in and file filters capability (not in the first release).
- It's based on a FMC (Microsoft Foundation Class) extension dynamic link
library (DL) called Molecular Graphics & Modeling Application Framework or
MGMAF (also written by me) which upon release greatly simplifies developing
molecular graphics and modeling applications under Windows NT and 98.

At the current state, we used it successfully to put 5 subunits of 5-HT3
receptor (transmembrane ionic channel) together to form a channel
(unpublished work by M. Mahmoudian, S. Dabbagh and me). Unfortunately, for
the time being, I am really busy with my Ph.D. thesis and don't have enough
time to complete and release it, but I will do ASA I have enough free time.

Regards,

Armin M. Sobhani
p-------------------------------------------------------------------q
|     __   _________    ____     Armin M. Sobhani, Pharm.D          |
|    /  \ /  _   _  \  / ____\   Ph.D Student of Pharmacology       |
|   /    \\  \\  \\  \/\ \___/_  mailto:[email-masked]          |
|  /  /\  \\  \\  \\  \ \_____ \ URL: http://www.nrcgeb.ac.ir/armin |
| (   ___  \\  \\  \\  \/____/\ \Tel: +98 21 6418310                |
|( \__\_/\__\\__\\__\\__\/\_____/Fax: +98 21 6419834                |
| \/__/ \/__//__//__//__/\/____/ P.O.Box: 14155-6343, Tehran, IRAN  |
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
|  Once you understand the universe at the atomic level everything  |
|  else is easy.                         -Richard P. Feynman        |
b-------------------------------------------------------------------d

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

16.
WEBLAB VIEWER

Dear Dr. Daizadeh,

Please consider using the WebLab Viewer, Molecular Simulations' 3D chemical 
visualization and communications software package.  It is well suited for 
protein visualization with a host of protein specific display styles.  With 
the WebLab Viewer you can open and see multiple windows at the same time, 
or load several structures into the same document, and then manipulate 
(rotate, translate, zoom, ...) structures independently by holding down the 
control key.

The are two versions of the WebLab Viewer currently available for download 
from MSI's web site: the ViewerLite 3.1 , and the ViewerPro 3.1.  The 
ViewerLite is free, and the ViewerPro sells for $249 to academic customers 
(a free 30-Day trial version of the ViewerPro 3.1 is also available). 
 Additionally, we are currently beta testing a new version, the 
ViewerPro3.2.

New in the WebLab ViewerPro 3.2:
- Data Table Viewer (spreadsheet-like listing of model data)
- COM automation support
- New usability tools (fuse, text, enhanced stereochemistry, ...)
- Customizable tool bars
- Much more

If you would like to download the beta version of the ViewerPro 3.2, or any 
of the other versions of the WebLab Viewer, you can do so from the 
ViewerPro home page at:
http://www.msi.com/viewer/

I hope you enjoy using the new version. If you have any questions or 
comments, please fell free to contact me directly.

Sincerely,

John Wintersteen
Product Manager, WebLab Viewer Products
Molecular Simulations Inc.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

17.
MOLEKEL

hello Iraj,

You could try to use Molekel. This is a software developped at Geneva. It is
now maintained by the federal  centre of scientific calculations of
Switzerland.

Molekel is a freeware but it is only running on silicon graphics station, as
it is using GL library.

enjoy,

Pascal

******************************************************************
Pascal BOULET               [email-masked]
Department of Physical Chemistry
University of Geneva
30, Quai e-Ansermet
1211 Geneva 4                 Switzerland
tel: (00 41) (22) 702 65 77 or (00 41) (22) 702 65 32
fax: (00 41) (22) 702 65 18
and
Institut de Recherche sur la Catalyse, UPR 5401 CNRS
Groupe de Chimie Theorique
 43, Bd du 11 Novembre 1918
69622 Villeurbanne Cedex               France
****************************************************************

ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

Dear Iraj,

	yes, Molekel can do that, you can have as many molecules
as you wish on the screen, and manipulate them one by one or
simultaneously; you can also do orintation matching.
	But I no longer take care of that program, so for further
information, please contact Dr. Portmann: [email-masked].

	thanx for your interest

		peter

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

18.
MOE

The Chemical Computing Group software MOE
can display any number of individual protein structures 
simultaneously. The rendering of each protein
chain can be altered independantly of the 
others, allowing for interesting mixed-renedring 
displays. The structures can also be manipulated
individually or in groups.

If you would like to see how it looks, go to the 
Chemical Computing Group webpage

http:\\www.chemcomp.com

Chris
-- 
Chris Williams, Ph.D.

Customer Support/Applications Scientist, 
Chemical Computing Group, Inc.
1255 University St., Suite 1600 
Montreal, Quebec CANADA
H3B 3X3
Tel: (514) 393-1055
Fax: (514) 874-9538

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx