normal problem with do-order.py

  • Lindén
  • Lindén's Avatar Topic Author
  • Offline
  • Fresh Boarder
More
12 years 3 months ago #890 by Lindén
problem with do-order.py was created by Lindén
Hi!

The python script do-order.py is giving me some trouble with my simulated trajectories: I do not get identical answers, and sometimes no answers at all, if I apply it multiple times on the same .xtc and -tpr files. I would be very grateful if someone could give me some hints on how to find out what goes wrong.

The input data is a 333K 15 ns simulation of 128 DSPC molecules in water, as in the lipid bilayer tutorial (newlipids is the local directory). I run ubuntu 11.10 64bit, Python 2.7.2+, using Gromacs installed from repository.

Here is what happens when I try to compute P2 for the same file multiple times, printing out the results in order.dat every time (I get the sime kind of behavior when I use e.g., the supplied 30 ns dspe trajectory.):

newlipids$ trjconv -s dspc.tpr -n dspc.ndx -f dspc_cluster.xtc -o dspc_center.xtc -center -pbc mol
newlipids$ cp dspc_center.xtc traj.xtc
newlipids$ cp dspc.tpr topol.tpr

newlipids$ ./do-order.py 0 15000 20 0 0 1 128 DSPC &> foo1
newlipids$ cat order.dat
time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B
0 -0.246 0.579 -0.271 0.545 0.426 0.543 0.426 0.358 0.211 0.434 0.335 0.343 0.190

newlipids$ ./do-order.py 0 15000 20 0 0 1 128 DSPC &> foo2
newlipids$ cat order.dat
time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B

newlipids$ ./do-order.py 0 15000 20 0 0 1 128 DSPC &> foo3
newlipids$ cat order.dat
time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B
0 -0.158 0.642 -0.235 0.545 0.426 0.543 0.426 0.358 0.211 0.434 0.335 0.343 0.190
newlipids$ ./do-order.py 0 15000 20 0 0 1 128 DSPC &> foo4
newlipids$ cat order.dat
time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B
newlipids$ ./do-order.py 0 15000 20 0 0 1 128 DSPC &> foo5
newlipids$ cat order.dat
time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B
0 -0.158 0.642 -0.235 0.545 0.426 0.543 0.426 0.358 0.211 0.434 0.335 0.343 0.190
newlipids$ ./do-order.py 0 15000 20 0 0 1 128 DSPC &> foo6
newlipids$ cat order.dat
time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B

newlipids$ ./do-order.py 0 10000 20 0 0 1 128 DSPC &> foo6 # oops, forgot to update foo6 to foo7
newlipids$ cat order.dat
time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B

Things to note: 1. order.dat only contains numbers every other time. 2. The first results differs from the later ones in the first three columns.

Expected results: same every time I guess?

I had trouble uploading attachements, so I just include the first few foon files below.

Sincerely,

Martin

==> foo1 <==
Option Filename Type Description
-f traj.xtc Input Trajectory: xtc trr trj gro g96 pdb cpt
-o dump_0ns.gro Output Trajectory: xtc trr trj gro g96 pdb
-s topol.tpr Input, Opt. Structure+mass(db): tpr tpb tpa gro g96 pdb
-n index.ndx Input, Opt. Index file
-fr frames.ndx Input, Opt. Index file
-sub cluster.ndx Input, Opt. Index file
-drop drop.xvg Input, Opt. xvgr/xmgr file

Option Type Value Description
-[no]h bool no Print help info and quit
-[no]version bool no Print version info and quit
-nice int 19 Set the nicelevel
-b time 0 First frame (ps) to read from trajectory
-e time 0 Last frame (ps) to read from trajectory
-tu enum ps Time unit: fs, ps, ns, us, ms or s
-[no]w bool no View output .xvg, .xpm, .eps and .pdb files
-xvg enum xmgrace xvg plot formatting: xmgrace, xmgr or none
-skip int 1 Only write every nr-th frame
-dt time 0 Only write frame when t MOD dt = first time (ps)
-[no]round bool no Round measurements to nearest picosecond
-dump time 0 Dump frame nearest specified time (ps)
-t0 time 0 Starting time (ps) (default: don't change)
-timestep time 0 Change time step between input frames (ps)
-pbc enum none PBC treatment (see help text for full
description): none, mol, res, atom, nojump,
cluster or whole
-ur enum rect Unit-cell representation: rect, tric or compact
-[no]center bool no Center atoms in box
-boxcenter enum tric Center for -pbc and -center: tric, rect or zero
-box vector 0 0 0 Size for new cubic box (default: read from input)
-clustercenter vector 0 0 0 Optional starting point for pbc cluster option
-trans vector 0 0 0 All coordinates will be translated by trans. This
can advantageously be combined with -pbc mol -ur
compact.
-shift vector 0 0 0 All coordinates will be shifted by framenr*shift
-fit enum none Fit molecule to ref structure in the structure
file: none, rot+trans, rotxy+transxy,
translation, transxy or progressive
-ndec int 3 Precision for .xtc and .gro writing in number of
decimal places
-[no]vel bool yes Read and write velocities if possible
-[no]force bool no Read and write forces if possible
-trunc time -1 Truncate input trajectory file after this time
(ps)
-exec string Execute command for every output frame with the
frame number as argument
-[no]app bool no Append output
-split time 0 Start writing new file when t MOD split = first
time (ps)
-[no]sep bool no Write each frame to a separate .gro, .g96 or .pdb
file
-nzero int 0 If the -sep flag is set, use these many digits
for the file numbers and prepend zeros as needed
-dropunder real 0 Drop all frames below this value
-dropover real 0 Drop all frames above this value
-[no]conect bool no Add conect records when writing .pdb files.
Useful for visualization of non-standard
molecules, e.g. coarse grained ones

Will write gro: Coordinate file in Gromos-87 format
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Group 0 ( System) has 2560 elements
Group 1 ( Other) has 2560 elements
Group 2 ( DSPC) has 1792 elements
Group 3 ( W) has 768 elements
Select a group:
Reading frame 0 time 0.000
Precision of traj.xtc is 0.001 (nm)
Using output precision of 0.001 (nm)

Back Off! I just backed up dump_0ns.gro to ./#dump_0ns.gro.9#

Dumping frame at t= 0 ps
-> frame 0 time 0.000

Reading frame 1 time 150.000

gcq#253: "Disturb the Peace of a John Q Citizen" (Urban Dance Squad)

Select group for output
Selected 1: 'Other'
:-) G R O M A C S (-:

Giving Russians Opium May Alter Current Situation

:-) VERSION 4.5.4 (-:

Written by Emile Apol, Rossen Apostolov, Herman J.C. Berendsen,
Aldert van Buuren, Pär Bjelkmar, Rudi van Drunen, Anton Feenstra,
Gerrit Groenhof, Peter Kasson, Per Larsson, Pieter Meulenhoff,
Teemu Murtola, Szilard Pall, Sander Pronk, Roland Schulz,
Michael Shirts, Alfons Sijbers, Peter Tieleman,

Berk Hess, David van der Spoel, and Erik Lindahl.

Copyright (c) 1991-2000, University of Groningen, The Netherlands.
Copyright (c) 2001-2010, The GROMACS development team at
Uppsala University & The Royal Institute of Technology, Sweden.
check out www.gromacs.org for more information.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

:-) trjconv (-:

Option Filename Type Description
-f traj.xtc Input Trajectory: xtc trr trj gro g96 pdb cpt
-o dump_750ns.gro Output Trajectory: xtc trr trj gro g96 pdb
-s topol.tpr Input, Opt. Structure+mass(db): tpr tpb tpa gro g96 pdb
-n index.ndx Input, Opt. Index file
-fr frames.ndx Input, Opt. Index file
-sub cluster.ndx Input, Opt. Index file
-drop drop.xvg Input, Opt. xvgr/xmgr file

Option Type Value Description
-[no]h bool no Print help info and quit
-[no]version bool no Print version info and quit
-nice int 19 Set the nicelevel
-b time 0 First frame (ps) to read from trajectory
-e time 0 Last frame (ps) to read from trajectory
-tu enum ps Time unit: fs, ps, ns, us, ms or s
-[no]w bool no View output .xvg, .xpm, .eps and .pdb files
-xvg enum xmgrace xvg plot formatting: xmgrace, xmgr or none
-skip int 1 Only write every nr-th frame
-dt time 0 Only write frame when t MOD dt = first time (ps)
-[no]round bool no Round measurements to nearest picosecond
-dump time 750 Dump frame nearest specified time (ps)
-t0 time 0 Starting time (ps) (default: don't change)
-timestep time 0 Change time step between input frames (ps)
-pbc enum none PBC treatment (see help text for full
description): none, mol, res, atom, nojump,
cluster or whole
-ur enum rect Unit-cell representation: rect, tric or compact
-[no]center bool no Center atoms in box
-boxcenter enum tric Center for -pbc and -center: tric, rect or zero
-box vector 0 0 0 Size for new cubic box (default: read from input)
-clustercenter vector 0 0 0 Optional starting point for pbc cluster option
-trans vector 0 0 0 All coordinates will be translated by trans. This
can advantageously be combined with -pbc mol -ur
compact.
-shift vector 0 0 0 All coordinates will be shifted by framenr*shift
-fit enum none Fit molecule to ref structure in the structure
file: none, rot+trans, rotxy+transxy,
translation, transxy or progressive
-ndec int 3 Precision for .xtc and .gro writing in number of
decimal places
-[no]vel bool yes Read and write velocities if possible
-[no]force bool no Read and write forces if possible
-trunc time -1 Truncate input trajectory file after this time
(ps)
-exec string Execute command for every output frame with the
frame number as argument
-[no]app bool no Append output
-split time 0 Start writing new file when t MOD split = first
time (ps)
-[no]sep bool no Write each frame to a separate .gro, .g96 or .pdb
file
-nzero int 0 If the -sep flag is set, use these many digits
for the file numbers and prepend zeros as needed
-dropunder real 0 Drop all frames below this value
-dropover real 0 Drop all frames above this value
-[no]conect bool no Add conect records when writing .pdb files.
Useful for visualization of non-standard
molecules, e.g. coarse grained ones

Will write gro: Coordinate file in Gromos-87 format
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Group 0 ( System) has 2560 elements
Group 1 ( Other) has 2560 elements
Group 2 ( DSPC) has 1792 elements
Group 3 ( W) has 768 elements
Select a group:
Reading frame 0 time 0.000
Precision of traj.xtc is 0.001 (nm)
Using output precision of 0.001 (nm)

Back Off! I just backed up dump_750ns.gro to ./#dump_750ns.gro.4#

Reading frame 1 time 150.000
Reading frame 2 time 300.000
Reading frame 3 time 450.000
Reading frame 4 time 600.000
Reading frame 5 time 750.000
Dumping frame at t= 750 ps
-> frame 0 time 750.000
15ns long simulation, 20 snapshots: conformations dumped every 0ns.
(Normalized) orientation of bilayer normal: ( 0.000 | 0.000 | 1.000 ).

time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B
Taking care of snapshot @ 0ns...
0 -0.246 0.579 -0.271 0.545 0.426 0.543 0.426 0.358 0.211 0.434 0.335 0.343 0.190
Taking care of snapshot @ 0ns...
Traceback (most recent call last):
File "./do-order.py", line 138, in <module>
vector[j] = first[j] - second[j]
IndexError: list index out of range

Reading frame 6 time 900.000

gcq#253: "Disturb the Peace of a John Q Citizen" (Urban Dance Squad)

Select group for output
Selected 1: 'Other'

==> foo2 <==
15ns long simulation, 20 snapshots: conformations dumped every 0ns.
(Normalized) orientation of bilayer normal: ( 0.000 | 0.000 | 1.000 ).

time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B

Taking care of snapshot @ 0ns...
Traceback (most recent call last):
File "./do-order.py", line 130, in <module>
first, second = read_gro(filename, bond)
File "./do-order.py", line 16, in read_gro
for line in open(file):
IOError: [Errno 2] No such file or directory: 'dump_0ns.gro'
:-) G R O M A C S (-:

GRowing Old MAkes el Chrono Sweat

:-) VERSION 4.5.4 (-:

Written by Emile Apol, Rossen Apostolov, Herman J.C. Berendsen,
Aldert van Buuren, Pär Bjelkmar, Rudi van Drunen, Anton Feenstra,
Gerrit Groenhof, Peter Kasson, Per Larsson, Pieter Meulenhoff,
Teemu Murtola, Szilard Pall, Sander Pronk, Roland Schulz,
Michael Shirts, Alfons Sijbers, Peter Tieleman,

Berk Hess, David van der Spoel, and Erik Lindahl.

Copyright (c) 1991-2000, University of Groningen, The Netherlands.
Copyright (c) 2001-2010, The GROMACS development team at
Uppsala University & The Royal Institute of Technology, Sweden.
check out www.gromacs.org for more information.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

:-) trjconv (-:

Option Filename Type Description
-f traj.xtc Input Trajectory: xtc trr trj gro g96 pdb cpt
-o dump_0ns.gro Output Trajectory: xtc trr trj gro g96 pdb
-s topol.tpr Input, Opt. Structure+mass(db): tpr tpb tpa gro g96 pdb
-n index.ndx Input, Opt. Index file
-fr frames.ndx Input, Opt. Index file
-sub cluster.ndx Input, Opt. Index file
-drop drop.xvg Input, Opt. xvgr/xmgr file

Option Type Value Description
-[no]h bool no Print help info and quit
-[no]version bool no Print version info and quit
-nice int 19 Set the nicelevel
-b time 0 First frame (ps) to read from trajectory
-e time 0 Last frame (ps) to read from trajectory
-tu enum ps Time unit: fs, ps, ns, us, ms or s
-[no]w bool no View output .xvg, .xpm, .eps and .pdb files
-xvg enum xmgrace xvg plot formatting: xmgrace, xmgr or none
-skip int 1 Only write every nr-th frame
-dt time 0 Only write frame when t MOD dt = first time (ps)
-[no]round bool no Round measurements to nearest picosecond
-dump time 0 Dump frame nearest specified time (ps)
-t0 time 0 Starting time (ps) (default: don't change)
-timestep time 0 Change time step between input frames (ps)
-pbc enum none PBC treatment (see help text for full
description): none, mol, res, atom, nojump,
cluster or whole
-ur enum rect Unit-cell representation: rect, tric or compact
-[no]center bool no Center atoms in box
-boxcenter enum tric Center for -pbc and -center: tric, rect or zero
-box vector 0 0 0 Size for new cubic box (default: read from input)
-clustercenter vector 0 0 0 Optional starting point for pbc cluster option
-trans vector 0 0 0 All coordinates will be translated by trans. This
can advantageously be combined with -pbc mol -ur
compact.
-shift vector 0 0 0 All coordinates will be shifted by framenr*shift
-fit enum none Fit molecule to ref structure in the structure
file: none, rot+trans, rotxy+transxy,
translation, transxy or progressive
-ndec int 3 Precision for .xtc and .gro writing in number of
decimal places
-[no]vel bool yes Read and write velocities if possible
-[no]force bool no Read and write forces if possible
-trunc time -1 Truncate input trajectory file after this time
(ps)
-exec string Execute command for every output frame with the
frame number as argument
-[no]app bool no Append output
-split time 0 Start writing new file when t MOD split = first
time (ps)
-[no]sep bool no Write each frame to a separate .gro, .g96 or .pdb
file
-nzero int 0 If the -sep flag is set, use these many digits
for the file numbers and prepend zeros as needed
-dropunder real 0 Drop all frames below this value
-dropover real 0 Drop all frames above this value
-[no]conect bool no Add conect records when writing .pdb files.
Useful for visualization of non-standard
molecules, e.g. coarse grained ones

Will write gro: Coordinate file in Gromos-87 format
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Group 0 ( System) has 2560 elements
Group 1 ( Other) has 2560 elements
Group 2 ( DSPC) has 1792 elements
Group 3 ( W) has 768 elements
Select a group:
Reading frame 0 time 0.000
Precision of traj.xtc is 0.001 (nm)
Using output precision of 0.001 (nm)

Dumping frame at t= 0 ps
-> frame 0 time 0.000

Reading frame 1 time 150.000

gcq#31: "With a Little Penknife" (Nick Cave)

Select group for output
Selected 1: 'Other'

==> foo3 <==
Option Filename Type Description
-f traj.xtc Input Trajectory: xtc trr trj gro g96 pdb cpt
-o dump_0ns.gro Output Trajectory: xtc trr trj gro g96 pdb
-s topol.tpr Input, Opt. Structure+mass(db): tpr tpb tpa gro g96 pdb
-n index.ndx Input, Opt. Index file
-fr frames.ndx Input, Opt. Index file
-sub cluster.ndx Input, Opt. Index file
-drop drop.xvg Input, Opt. xvgr/xmgr file

Option Type Value Description
-[no]h bool no Print help info and quit
-[no]version bool no Print version info and quit
-nice int 19 Set the nicelevel
-b time 0 First frame (ps) to read from trajectory
-e time 0 Last frame (ps) to read from trajectory
-tu enum ps Time unit: fs, ps, ns, us, ms or s
-[no]w bool no View output .xvg, .xpm, .eps and .pdb files
-xvg enum xmgrace xvg plot formatting: xmgrace, xmgr or none
-skip int 1 Only write every nr-th frame
-dt time 0 Only write frame when t MOD dt = first time (ps)
-[no]round bool no Round measurements to nearest picosecond
-dump time 0 Dump frame nearest specified time (ps)
-t0 time 0 Starting time (ps) (default: don't change)
-timestep time 0 Change time step between input frames (ps)
-pbc enum none PBC treatment (see help text for full
description): none, mol, res, atom, nojump,
cluster or whole
-ur enum rect Unit-cell representation: rect, tric or compact
-[no]center bool no Center atoms in box
-boxcenter enum tric Center for -pbc and -center: tric, rect or zero
-box vector 0 0 0 Size for new cubic box (default: read from input)
-clustercenter vector 0 0 0 Optional starting point for pbc cluster option
-trans vector 0 0 0 All coordinates will be translated by trans. This
can advantageously be combined with -pbc mol -ur
compact.
-shift vector 0 0 0 All coordinates will be shifted by framenr*shift
-fit enum none Fit molecule to ref structure in the structure
file: none, rot+trans, rotxy+transxy,
translation, transxy or progressive
-ndec int 3 Precision for .xtc and .gro writing in number of
decimal places
-[no]vel bool yes Read and write velocities if possible
-[no]force bool no Read and write forces if possible
-trunc time -1 Truncate input trajectory file after this time
(ps)
-exec string Execute command for every output frame with the
frame number as argument
-[no]app bool no Append output
-split time 0 Start writing new file when t MOD split = first
time (ps)
-[no]sep bool no Write each frame to a separate .gro, .g96 or .pdb
file
-nzero int 0 If the -sep flag is set, use these many digits
for the file numbers and prepend zeros as needed
-dropunder real 0 Drop all frames below this value
-dropover real 0 Drop all frames above this value
-[no]conect bool no Add conect records when writing .pdb files.
Useful for visualization of non-standard
molecules, e.g. coarse grained ones

Will write gro: Coordinate file in Gromos-87 format
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Group 0 ( System) has 2560 elements
Group 1 ( Other) has 2560 elements
Group 2 ( DSPC) has 1792 elements
Group 3 ( W) has 768 elements
Select a group:
Reading frame 0 time 0.000
Precision of traj.xtc is 0.001 (nm)
Using output precision of 0.001 (nm)

Back Off! I just backed up dump_0ns.gro to ./#dump_0ns.gro.10#

Dumping frame at t= 0 ps
-> frame 0 time 0.000

Reading frame 1 time 150.000

gcq#238: "Uh-oh" (Tinky Winky)

Select group for output
Selected 1: 'Other'
:-) G R O M A C S (-:

Green Red Orange Magenta Azure Cyan Skyblue

:-) VERSION 4.5.4 (-:

Written by Emile Apol, Rossen Apostolov, Herman J.C. Berendsen,
Aldert van Buuren, Pär Bjelkmar, Rudi van Drunen, Anton Feenstra,
Gerrit Groenhof, Peter Kasson, Per Larsson, Pieter Meulenhoff,
Teemu Murtola, Szilard Pall, Sander Pronk, Roland Schulz,
Michael Shirts, Alfons Sijbers, Peter Tieleman,

Berk Hess, David van der Spoel, and Erik Lindahl.

Copyright (c) 1991-2000, University of Groningen, The Netherlands.
Copyright (c) 2001-2010, The GROMACS development team at
Uppsala University & The Royal Institute of Technology, Sweden.
check out www.gromacs.org for more information.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

:-) trjconv (-:

Option Filename Type Description
-f traj.xtc Input Trajectory: xtc trr trj gro g96 pdb cpt
-o dump_750ns.gro Output Trajectory: xtc trr trj gro g96 pdb
-s topol.tpr Input, Opt. Structure+mass(db): tpr tpb tpa gro g96 pdb
-n index.ndx Input, Opt. Index file
-fr frames.ndx Input, Opt. Index file
-sub cluster.ndx Input, Opt. Index file
-drop drop.xvg Input, Opt. xvgr/xmgr file

Option Type Value Description
-[no]h bool no Print help info and quit
-[no]version bool no Print version info and quit
-nice int 19 Set the nicelevel
-b time 0 First frame (ps) to read from trajectory
-e time 0 Last frame (ps) to read from trajectory
-tu enum ps Time unit: fs, ps, ns, us, ms or s
-[no]w bool no View output .xvg, .xpm, .eps and .pdb files
-xvg enum xmgrace xvg plot formatting: xmgrace, xmgr or none
-skip int 1 Only write every nr-th frame
-dt time 0 Only write frame when t MOD dt = first time (ps)
-[no]round bool no Round measurements to nearest picosecond
-dump time 750 Dump frame nearest specified time (ps)
-t0 time 0 Starting time (ps) (default: don't change)
-timestep time 0 Change time step between input frames (ps)
-pbc enum none PBC treatment (see help text for full
description): none, mol, res, atom, nojump,
cluster or whole
-ur enum rect Unit-cell representation: rect, tric or compact
-[no]center bool no Center atoms in box
-boxcenter enum tric Center for -pbc and -center: tric, rect or zero
-box vector 0 0 0 Size for new cubic box (default: read from input)
-clustercenter vector 0 0 0 Optional starting point for pbc cluster option
-trans vector 0 0 0 All coordinates will be translated by trans. This
can advantageously be combined with -pbc mol -ur
compact.
-shift vector 0 0 0 All coordinates will be shifted by framenr*shift
-fit enum none Fit molecule to ref structure in the structure
file: none, rot+trans, rotxy+transxy,
translation, transxy or progressive
-ndec int 3 Precision for .xtc and .gro writing in number of
decimal places
-[no]vel bool yes Read and write velocities if possible
-[no]force bool no Read and write forces if possible
-trunc time -1 Truncate input trajectory file after this time
(ps)
-exec string Execute command for every output frame with the
frame number as argument
-[no]app bool no Append output
-split time 0 Start writing new file when t MOD split = first
time (ps)
-[no]sep bool no Write each frame to a separate .gro, .g96 or .pdb
file
-nzero int 0 If the -sep flag is set, use these many digits
for the file numbers and prepend zeros as needed
-dropunder real 0 Drop all frames below this value
-dropover real 0 Drop all frames above this value
-[no]conect bool no Add conect records when writing .pdb files.
Useful for visualization of non-standard
molecules, e.g. coarse grained ones

Will write gro: Coordinate file in Gromos-87 format
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Group 0 ( System) has 2560 elements
Group 1 ( Other) has 2560 elements
Group 2 ( DSPC) has 1792 elements
Group 3 ( W) has 768 elements
Select a group:
Reading frame 0 time 0.000
Precision of traj.xtc is 0.001 (nm)
Using output precision of 0.001 (nm)

Back Off! I just backed up dump_750ns.gro to ./#dump_750ns.gro.5#

Reading frame 1 time 150.000
Reading frame 2 time 300.000
Reading frame 3 time 450.000
Reading frame 4 time 600.000
Reading frame 5 time 750.000
Dumping frame at t= 750 ps
-> frame 0 time 750.000
15ns long simulation, 20 snapshots: conformations dumped every 0ns.
(Normalized) orientation of bilayer normal: ( 0.000 | 0.000 | 1.000 ).

time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B
Taking care of snapshot @ 0ns...
0 -0.158 0.642 -0.235 0.545 0.426 0.543 0.426 0.358 0.211 0.434 0.335 0.343 0.190
Taking care of snapshot @ 0ns...
Traceback (most recent call last):
File "./do-order.py", line 138, in <module>
vector[j] = first[j] - second[j]
IndexError: list index out of range

Reading frame 6 time 900.000

gcq#238: "Uh-oh" (Tinky Winky)

Select group for output
Selected 1: 'Other'

==> foo4 <==
15ns long simulation, 20 snapshots: conformations dumped every 0ns.
(Normalized) orientation of bilayer normal: ( 0.000 | 0.000 | 1.000 ).

time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B

Taking care of snapshot @ 0ns...
Traceback (most recent call last):
File "./do-order.py", line 130, in <module>
first, second = read_gro(filename, bond)
File "./do-order.py", line 16, in read_gro
for line in open(file):
IOError: [Errno 2] No such file or directory: 'dump_0ns.gro'
:-) G R O M A C S (-:

Gravel Rubs Often Many Awfully Cauterized Sores

:-) VERSION 4.5.4 (-:

Written by Emile Apol, Rossen Apostolov, Herman J.C. Berendsen,
Aldert van Buuren, Pär Bjelkmar, Rudi van Drunen, Anton Feenstra,
Gerrit Groenhof, Peter Kasson, Per Larsson, Pieter Meulenhoff,
Teemu Murtola, Szilard Pall, Sander Pronk, Roland Schulz,
Michael Shirts, Alfons Sijbers, Peter Tieleman,

Berk Hess, David van der Spoel, and Erik Lindahl.

Copyright (c) 1991-2000, University of Groningen, The Netherlands.
Copyright (c) 2001-2010, The GROMACS development team at
Uppsala University & The Royal Institute of Technology, Sweden.
check out www.gromacs.org for more information.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

:-) trjconv (-:

Option Filename Type Description
-f traj.xtc Input Trajectory: xtc trr trj gro g96 pdb cpt
-o dump_0ns.gro Output Trajectory: xtc trr trj gro g96 pdb
-s topol.tpr Input, Opt. Structure+mass(db): tpr tpb tpa gro g96 pdb
-n index.ndx Input, Opt. Index file
-fr frames.ndx Input, Opt. Index file
-sub cluster.ndx Input, Opt. Index file
-drop drop.xvg Input, Opt. xvgr/xmgr file

Option Type Value Description
-[no]h bool no Print help info and quit
-[no]version bool no Print version info and quit
-nice int 19 Set the nicelevel
-b time 0 First frame (ps) to read from trajectory
-e time 0 Last frame (ps) to read from trajectory
-tu enum ps Time unit: fs, ps, ns, us, ms or s
-[no]w bool no View output .xvg, .xpm, .eps and .pdb files
-xvg enum xmgrace xvg plot formatting: xmgrace, xmgr or none
-skip int 1 Only write every nr-th frame
-dt time 0 Only write frame when t MOD dt = first time (ps)
-[no]round bool no Round measurements to nearest picosecond
-dump time 0 Dump frame nearest specified time (ps)
-t0 time 0 Starting time (ps) (default: don't change)
-timestep time 0 Change time step between input frames (ps)
-pbc enum none PBC treatment (see help text for full
description): none, mol, res, atom, nojump,
cluster or whole
-ur enum rect Unit-cell representation: rect, tric or compact
-[no]center bool no Center atoms in box
-boxcenter enum tric Center for -pbc and -center: tric, rect or zero
-box vector 0 0 0 Size for new cubic box (default: read from input)
-clustercenter vector 0 0 0 Optional starting point for pbc cluster option
-trans vector 0 0 0 All coordinates will be translated by trans. This
can advantageously be combined with -pbc mol -ur
compact.
-shift vector 0 0 0 All coordinates will be shifted by framenr*shift
-fit enum none Fit molecule to ref structure in the structure
file: none, rot+trans, rotxy+transxy,
translation, transxy or progressive
-ndec int 3 Precision for .xtc and .gro writing in number of
decimal places
-[no]vel bool yes Read and write velocities if possible
-[no]force bool no Read and write forces if possible
-trunc time -1 Truncate input trajectory file after this time
(ps)
-exec string Execute command for every output frame with the
frame number as argument
-[no]app bool no Append output
-split time 0 Start writing new file when t MOD split = first
time (ps)
-[no]sep bool no Write each frame to a separate .gro, .g96 or .pdb
file
-nzero int 0 If the -sep flag is set, use these many digits
for the file numbers and prepend zeros as needed
-dropunder real 0 Drop all frames below this value
-dropover real 0 Drop all frames above this value
-[no]conect bool no Add conect records when writing .pdb files.
Useful for visualization of non-standard
molecules, e.g. coarse grained ones

Will write gro: Coordinate file in Gromos-87 format
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Group 0 ( System) has 2560 elements
Group 1 ( Other) has 2560 elements
Group 2 ( DSPC) has 1792 elements
Group 3 ( W) has 768 elements
Select a group:
Reading frame 0 time 0.000
Precision of traj.xtc is 0.001 (nm)
Using output precision of 0.001 (nm)

Dumping frame at t= 0 ps
-> frame 0 time 0.000

Reading frame 1 time 150.000

gcq#328: "I was elected to lead, not to read" (President A. Schwarzenegger)

Select group for output
Selected 1: 'Other'

==> foo5 <==
Option Filename Type Description
-f traj.xtc Input Trajectory: xtc trr trj gro g96 pdb cpt
-o dump_0ns.gro Output Trajectory: xtc trr trj gro g96 pdb
-s topol.tpr Input, Opt. Structure+mass(db): tpr tpb tpa gro g96 pdb
-n index.ndx Input, Opt. Index file
-fr frames.ndx Input, Opt. Index file
-sub cluster.ndx Input, Opt. Index file
-drop drop.xvg Input, Opt. xvgr/xmgr file

Option Type Value Description
-[no]h bool no Print help info and quit
-[no]version bool no Print version info and quit
-nice int 19 Set the nicelevel
-b time 0 First frame (ps) to read from trajectory
-e time 0 Last frame (ps) to read from trajectory
-tu enum ps Time unit: fs, ps, ns, us, ms or s
-[no]w bool no View output .xvg, .xpm, .eps and .pdb files
-xvg enum xmgrace xvg plot formatting: xmgrace, xmgr or none
-skip int 1 Only write every nr-th frame
-dt time 0 Only write frame when t MOD dt = first time (ps)
-[no]round bool no Round measurements to nearest picosecond
-dump time 0 Dump frame nearest specified time (ps)
-t0 time 0 Starting time (ps) (default: don't change)
-timestep time 0 Change time step between input frames (ps)
-pbc enum none PBC treatment (see help text for full
description): none, mol, res, atom, nojump,
cluster or whole
-ur enum rect Unit-cell representation: rect, tric or compact
-[no]center bool no Center atoms in box
-boxcenter enum tric Center for -pbc and -center: tric, rect or zero
-box vector 0 0 0 Size for new cubic box (default: read from input)
-clustercenter vector 0 0 0 Optional starting point for pbc cluster option
-trans vector 0 0 0 All coordinates will be translated by trans. This
can advantageously be combined with -pbc mol -ur
compact.
-shift vector 0 0 0 All coordinates will be shifted by framenr*shift
-fit enum none Fit molecule to ref structure in the structure
file: none, rot+trans, rotxy+transxy,
translation, transxy or progressive
-ndec int 3 Precision for .xtc and .gro writing in number of
decimal places
-[no]vel bool yes Read and write velocities if possible
-[no]force bool no Read and write forces if possible
-trunc time -1 Truncate input trajectory file after this time
(ps)
-exec string Execute command for every output frame with the
frame number as argument
-[no]app bool no Append output
-split time 0 Start writing new file when t MOD split = first
time (ps)
-[no]sep bool no Write each frame to a separate .gro, .g96 or .pdb
file
-nzero int 0 If the -sep flag is set, use these many digits
for the file numbers and prepend zeros as needed
-dropunder real 0 Drop all frames below this value
-dropover real 0 Drop all frames above this value
-[no]conect bool no Add conect records when writing .pdb files.
Useful for visualization of non-standard
molecules, e.g. coarse grained ones

Will write gro: Coordinate file in Gromos-87 format
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Group 0 ( System) has 2560 elements
Group 1 ( Other) has 2560 elements
Group 2 ( DSPC) has 1792 elements
Group 3 ( W) has 768 elements
Select a group:
Reading frame 0 time 0.000
Precision of traj.xtc is 0.001 (nm)
Using output precision of 0.001 (nm)

Back Off! I just backed up dump_0ns.gro to ./#dump_0ns.gro.11#

Dumping frame at t= 0 ps
-> frame 0 time 0.000

Reading frame 1 time 150.000

gcq#88: "I Don't Want to Catch Anybody Not Drinking." (Monty Python)

Select group for output
Selected 1: 'Other'
:-) G R O M A C S (-:

GROup of MAchos and Cynical Suckers

:-) VERSION 4.5.4 (-:

Written by Emile Apol, Rossen Apostolov, Herman J.C. Berendsen,
Aldert van Buuren, Pär Bjelkmar, Rudi van Drunen, Anton Feenstra,
Gerrit Groenhof, Peter Kasson, Per Larsson, Pieter Meulenhoff,
Teemu Murtola, Szilard Pall, Sander Pronk, Roland Schulz,
Michael Shirts, Alfons Sijbers, Peter Tieleman,

Berk Hess, David van der Spoel, and Erik Lindahl.

Copyright (c) 1991-2000, University of Groningen, The Netherlands.
Copyright (c) 2001-2010, The GROMACS development team at
Uppsala University & The Royal Institute of Technology, Sweden.
check out www.gromacs.org for more information.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

:-) trjconv (-:

Option Filename Type Description
-f traj.xtc Input Trajectory: xtc trr trj gro g96 pdb cpt
-o dump_750ns.gro Output Trajectory: xtc trr trj gro g96 pdb
-s topol.tpr Input, Opt. Structure+mass(db): tpr tpb tpa gro g96 pdb
-n index.ndx Input, Opt. Index file
-fr frames.ndx Input, Opt. Index file
-sub cluster.ndx Input, Opt. Index file
-drop drop.xvg Input, Opt. xvgr/xmgr file

Option Type Value Description
-[no]h bool no Print help info and quit
-[no]version bool no Print version info and quit
-nice int 19 Set the nicelevel
-b time 0 First frame (ps) to read from trajectory
-e time 0 Last frame (ps) to read from trajectory
-tu enum ps Time unit: fs, ps, ns, us, ms or s
-[no]w bool no View output .xvg, .xpm, .eps and .pdb files
-xvg enum xmgrace xvg plot formatting: xmgrace, xmgr or none
-skip int 1 Only write every nr-th frame
-dt time 0 Only write frame when t MOD dt = first time (ps)
-[no]round bool no Round measurements to nearest picosecond
-dump time 750 Dump frame nearest specified time (ps)
-t0 time 0 Starting time (ps) (default: don't change)
-timestep time 0 Change time step between input frames (ps)
-pbc enum none PBC treatment (see help text for full
description): none, mol, res, atom, nojump,
cluster or whole
-ur enum rect Unit-cell representation: rect, tric or compact
-[no]center bool no Center atoms in box
-boxcenter enum tric Center for -pbc and -center: tric, rect or zero
-box vector 0 0 0 Size for new cubic box (default: read from input)
-clustercenter vector 0 0 0 Optional starting point for pbc cluster option
-trans vector 0 0 0 All coordinates will be translated by trans. This
can advantageously be combined with -pbc mol -ur
compact.
-shift vector 0 0 0 All coordinates will be shifted by framenr*shift
-fit enum none Fit molecule to ref structure in the structure
file: none, rot+trans, rotxy+transxy,
translation, transxy or progressive
-ndec int 3 Precision for .xtc and .gro writing in number of
decimal places
-[no]vel bool yes Read and write velocities if possible
-[no]force bool no Read and write forces if possible
-trunc time -1 Truncate input trajectory file after this time
(ps)
-exec string Execute command for every output frame with the
frame number as argument
-[no]app bool no Append output
-split time 0 Start writing new file when t MOD split = first
time (ps)
-[no]sep bool no Write each frame to a separate .gro, .g96 or .pdb
file
-nzero int 0 If the -sep flag is set, use these many digits
for the file numbers and prepend zeros as needed
-dropunder real 0 Drop all frames below this value
-dropover real 0 Drop all frames above this value
-[no]conect bool no Add conect records when writing .pdb files.
Useful for visualization of non-standard
molecules, e.g. coarse grained ones

Will write gro: Coordinate file in Gromos-87 format
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Reading file topol.tpr, VERSION 4.5.4 (single precision)
Group 0 ( System) has 2560 elements
Group 1 ( Other) has 2560 elements
Group 2 ( DSPC) has 1792 elements
Group 3 ( W) has 768 elements
Select a group:
Reading frame 0 time 0.000
Precision of traj.xtc is 0.001 (nm)
Using output precision of 0.001 (nm)

Back Off! I just backed up dump_750ns.gro to ./#dump_750ns.gro.6#

Reading frame 1 time 150.000
Reading frame 2 time 300.000 15ns long simulation, 20 snapshots: conformations dumped every 0ns.
(Normalized) orientation of bilayer normal: ( 0.000 | 0.000 | 1.000 ).

time NC3-PO4 PO4-GL1 GL1-GL2 GL1-C1A GL2-C1B C1A-C2A C2A-C3A C3A-C4A C4A-C5A C1B-C2B C2B-C3B C3B-C4B C4B-C5B
Taking care of snapshot @ 0ns...
0 -0.158 0.642 -0.235 0.545 0.426 0.543 0.426 0.358 0.211 0.434 0.335 0.343 0.190
Taking care of snapshot @ 0ns...
Traceback (most recent call last):
File "./do-order.py", line 138, in <module>
vector[j] = first[j] - second[j]
IndexError: list index out of range

Reading frame 4 time 600.000
Reading frame 5 time 750.000
Dumping frame at t= 750 ps
-> frame 0 time 750.000

Reading frame 6 time 900.000

gcq#88: "I Don't Want to Catch Anybody Not Drinking." (Monty Python)

Select group for output
Selected 1: 'Other'

Please Log in or Create an account to join the conversation.

More
12 years 3 months ago #892 by xavier
Replied by xavier on topic problem with do-order.py
Well well well ... it is not sure what is happening in your analysis but something is wrong.

First I wonder why you use -center in the trjconv command ... no need I think.

There is a funky error message related to the index you give ... check the end of your original message. You should be careful to give the right format for the index. Check in the manual. I remember that it is simple but tricky to get it.

Lindén wrote: Hi!

The python script do-order.py is giving me some trouble with my simulated trajectories: I do not get identical answers, and sometimes no answers at all, if I apply it multiple times on the same .xtc and -tpr files. I would be very grateful if someone could give me some hints on how to find out what goes wrong.

The input data is a 333K 15 ns simulation of 128 DSPC molecules in water, as in the lipid bilayer tutorial (newlipids is the local directory). I run ubuntu 11.10 64bit, Python 2.7.2+, using Gromacs installed from repository.

Here is what happens when I try to compute P2 for the same file multiple times, printing out the results in order.dat every time (I get the sime kind of behavior when I use e.g., the supplied 30 ns dspe trajectory.):

newlipids$ trjconv -s dspc.tpr -n dspc.ndx -f dspc_cluster.xtc -o dspc_center.xtc -center -pbc mol
newlipids$ cp dspc_center.xtc traj.xtc
newlipids$ cp dspc.tpr topol.tpr

newlipids$ ./do-order.py 0 15000 20 0 0 1 128 DSPC &> foo1

Please Log in or Create an account to join the conversation.

  • Lindén
  • Lindén's Avatar Topic Author
  • Offline
  • Fresh Boarder
More
12 years 3 months ago #894 by Lindén
Replied by Lindén on topic problem with do-order.py
Xavier, thanks for getting back. I am afraid I am still confused on all points...

1. Using -center was for no particular reason. But removing it makes no difference that I can see. I have also tried to analyze the trajectories that come with the tutorial, also without success.

2. What manual and index are you referring to? The only documentation I can find is the example in the tutorial, and the help text in the script itself, which says
" Usage: %s <initial time> <final time> <#snapshots> <bilayer normal> <#lipids> <lipid type>"

For a 300 ns trajectory with 128 dspc lipids (and quite a lot of water), I call it with
./do-order.py 0 300000 100 0 0 1 128 DSPC
(Copied from the example given in the help text, and adjusted to my trajectory length and number of lipids).

3. The end of my message was
Select group for output
Selected 1: 'Other'

Is that the index you meant? That choice is hardcoded in the script, by
system("echo 1 | trjconv -dump %i -o %s &> /dev/null" % (time, filename))
I tried "echo 2 ..." (DSPC is group 2), and echo 0 (system) but that could not see any difference.

3. The output actually switches between two different types of error messages. One complains that the file dump_0ns.gro (and sometimes dump_3000ns.gro, which would be the next time point to analyze in this case) is not present, and one about list indices out of bounds.
At least after running the script though, dump_0ns.gro is present...

Best,

Martin

Please Log in or Create an account to join the conversation.

More
12 years 3 months ago #896 by xavier
Replied by xavier on topic problem with do-order.py
Dear Linden,

I never used that script. It is therefore difficult for me to help you in fixing its problems. It is however quite straightforward to compute the order parameters of a lipid tail (atomistic/CG) using the g_order tool of gromacs. The script certainly uses it.

The manual would then be the gromacs manual where the use of g_order is described.

XAvier.

Lindén wrote: Xavier, thanks for getting back. I am afraid I am still confused on all points...

1. Using -center was for no particular reason. But removing it makes no difference that I can see. I have also tried to analyze the trajectories that come with the tutorial, also without success.

2. What manual and index are you referring to? The only documentation I can find is the example in the tutorial, and the help text in the script itself, which says
" Usage: %s <initial time> <final time> <#snapshots> <bilayer normal> <#lipids> <lipid type>"

For a 300 ns trajectory with 128 dspc lipids (and quite a lot of water), I call it with
./do-order.py 0 300000 100 0 0 1 128 DSPC
(Copied from the example given in the help text, and adjusted to my trajectory length and number of lipids).

3. The end of my message was
Select group for output
Selected 1: 'Other'

Is that the index you meant? That choice is hardcoded in the script, by
system("echo 1 | trjconv -dump %i -o %s &> /dev/null" % (time, filename))
I tried "echo 2 ..." (DSPC is group 2), and echo 0 (system) but that could not see any difference.

3. The output actually switches between two different types of error messages. One complains that the file dump_0ns.gro (and sometimes dump_3000ns.gro, which would be the next time point to analyze in this case) is not present, and one about list indices out of bounds.
At least after running the script though, dump_0ns.gro is present...

Best,

Martin

Please Log in or Create an account to join the conversation.

  • Lindén
  • Lindén's Avatar Topic Author
  • Offline
  • Fresh Boarder
More
12 years 3 months ago #897 by Lindén
Replied by Lindén on topic problem with do-order.py
Dear Xavier,

Well, hearing people in the know being confused is also helpful. I think I found the problem. It has to do with shell redirection, which I think depends on what the shell environment is (I run bash.) The offending line was

system("echo 1 | trjconv -dump %i -o %s &> /dev/null" % (time, filename))

which in my case made python move on without waiting for trjconv to finish (which is what & does in bash). A bit later, it then tries to open a file which has not been created yet, and crashes. Changing &> to 2> seems to fix that.

system("echo 1 | trjconv -dump %i -o %s 2> /dev/null" % (time, filename))

A warning about shell dependence in the tutorial or the script help text might be helpful, until some Python wiz comes along with a shell-independent version.

Thanks a lot for taking your time to help me out.


Best,

Martin

Please Log in or Create an account to join the conversation.

More
12 years 3 months ago #898 by xavier
Replied by xavier on topic problem with do-order.py
Thanks for reporting the issue you find. A warning should indeed be included.

Thanks again and have a nice weekend.

XAvier.

Lindén wrote: Dear Xavier,

Well, hearing people in the know being confused is also helpful. I think I found the problem. It has to do with shell redirection, which I think depends on what the shell environment is (I run bash.) The offending line was

system("echo 1 | trjconv -dump %i -o %s &> /dev/null" % (time, filename))

which in my case made python move on without waiting for trjconv to finish (which is what & does in bash). A bit later, it then tries to open a file which has not been created yet, and crashes. Changing &> to 2> seems to fix that.

system("echo 1 | trjconv -dump %i -o %s 2> /dev/null" % (time, filename))

A warning about shell dependence in the tutorial or the script help text might be helpful, until some Python wiz comes along with a shell-independent version.

Thanks a lot for taking your time to help me out.


Best,

Martin

Please Log in or Create an account to join the conversation.

More
12 years 3 months ago #899 by Clement
Replied by Clement on topic problem with do-order.py
Yep, thanks for the comment (and for your investigation). I wrote the script under bash on a linux machine, and I did not think at this problem. At all. I guess a:
system("echo 1 | trjconv -dump %i -o %s 1> /dev/null 2> /dev/null" % (time, filename))
would be correct and preferable to take into account the various shells people are using.

EDIT: even worse! I just tried on a Mac machine, and bash seems to work differently for redirections there too. The fix above is apparently really needed.

Please Log in or Create an account to join the conversation.

Time to create page: 0.172 seconds