insane/structure.py
def write_gro(outfile, title, atoms, box):
    """
    Write a GRO file.

    Parameters
    ----------
    outfile
        The stream to write in.
    title
        The title of the GRO file. Must be a single line.
    atoms
        An instance of Structure containing the atoms to write.
    box
        The periodic box as a 3x3 matrix.
    """
    # Print the title
    print(title, file=outfile)

    # Print the number of atoms
    print("{:5d}".format(len(atoms)), file=outfile)

    # Print the atoms
    atom_template = "{:5d}{:<5s}{:>5s}{:5d}{:8.3f}{:8.3f}{:8.3f}"
    for idx, atname, resname, resid, x, y, z in atoms:
        print(atom_template
              .format(int(resid % 1e5), resname, atname, int(idx % 1e5),
                      x, y, z),
              file=outfile)

    # Print the box
    grobox = (box[0][0], box[1][1], box[2][2],
              box[0][1], box[0][2], box[1][0],
              box[1][2], box[2][0], box[2][1])
    box_template = '{:10.5f}' * 9
    print(box_template.format(*grobox), file=outfile)
def write_gro(outfile, title, atoms, box):
    # Print the title
    print(title, file=outfile)

    # Print the number of atoms
    print("{:5d}".format(len(atoms)), file=outfile)

    # Print the atoms
    atom_template = "{:5d}{:<5s}{:>5s}{:5d}{:8.3f}{:8.3f}{:8.3f}"
    for idx, atname, resname, resid, x, y, z in atoms:
        print(atom_template
              .format(int(resid % 1e5), resname, atname, int(idx % 1e5),
                      x, y, z),
              file=outfile)

    # Print the box
    grobox = (box[0][0], box[1][1], box[2][2],
              box[0][1], box[0][2], box[1][0],
              box[1][2], box[2][0], box[2][1])
    box_template = '{:10.5f}' * 9
    print(box_template.format(*grobox), file=outfile)
def write_gro ( outfile , title , atoms , box ) : # Print the title print ( title , file = outfile ) # Print the number of atoms print ( "{:5d}" . format ( len ( atoms ) ) , file = outfile ) # Print the atoms atom_template = "{:5d}{:<5s}{:>5s}{:5d}{:8.3f}{:8.3f}{:8.3f}" for idx , atname , resname , resid , x , y , z in atoms : print ( atom_template . format ( int ( resid % 1e5 ) , resname , atname , int ( idx % 1e5 ) , x , y , z ) , file = outfile ) # Print the box grobox = ( box [ 0 ] [ 0 ] , box [ 1 ] [ 1 ] , box [ 2 ] [ 2 ] , box [ 0 ] [ 1 ] , box [ 0 ] [ 2 ] , box [ 1 ] [ 0 ] , box [ 1 ] [ 2 ] , box [ 2 ] [ 0 ] , box [ 2 ] [ 1 ] ) box_template = '{:10.5f}' * 9 print ( box_template . format ( * grobox ) , file = outfile )
Write a GRO file.

    Parameters
    ----------
    outfile
        The stream to write in.
    title
        The title of the GRO file. Must be a single line.
    atoms
        An instance of Structure containing the atoms to write.
    box
        The periodic box as a 3x3 matrix.
Write a GRO file .