schrodinger.application.matsci.maestrocmds module

Common Maestro commands.

Copyright Schrodinger, LLC. All rights reserved.

schrodinger.application.matsci.maestrocmds.get_colors(palette=None, seed=None, n_colors=10, normalized=False)

Return RGB color tuples.

  • palette (str) – if not a palette in PALETTES then this is the palette kwarg passed to seaborn.color_palette

  • seed (None or int) – if given randomize the RGB color tuples using the given seed

  • n_colors (int) – the number of colors to return

  • normalized (bool) – whether to normalize the RGB tuples

Return type



contains RGB color tuples


Normalize the given color.


rgb (tuple) – an RGB triple of integers in [0, 255]

Return type



normalized RGB triple of floats in [0, 1]


Return the atoms ASL.


idxs (list(int)) – atom indices

Return type



the atoms ASL


Execute the Maestro command.


cmd (str) – the Maestro command

schrodinger.application.matsci.maestrocmds.color_atoms(rgb, idxs)

Color atoms in the Maestro WS.

  • rgb (tuple) – an RGB triple of integers in [0, 255]

  • idxs (list(int)) – atom indices

schrodinger.application.matsci.maestrocmds.color_atom_groups(all_idxs, rgbs=None)

Color groups of atoms in the Maestro WS.

  • all_idxs (list(list(int))) – groups of atom indices

  • rgbs (list(tuple) or None) – RGB triples of integers in [0, 255] for coloring the different groups of atoms, if None then some defaults colors are used


Context manager to temporarily select all atoms in the Maestro WS.


Select specified atoms in Maestro WS


index (list) – list of atom indexes


Color all atoms in the Maestro WS by element.


Set the representation of atoms in the Maestro WS to ball-and-stick.


idxs (list(int)) – atom indices


Set the included entry to that of the given entry ID.


entry_id (str) – the entry ID

schrodinger.application.matsci.maestrocmds.ensure_project_entry(struct, groupname, ptable=None, include_and_sort=False, sorting_prop=None)

Find if the structure entry exists in the project table’s group named groupname, if not create a new entry in this group. Then optionally sort the group and include/select the structure using the sorting property name.

  • struct (structure.Structure) – The structure to ensure is in the project

  • groupname (str) – The name of the group to add the structure to

  • ptable (project.Project) – The project table

  • include_and_sort (bool) – If True, include and select the entry and sort the PT group it is in by sorting_prop. Default is False.

  • sorting_prop (str) – The structure property name used to sort the entries

Return type



The project row for the entry

schrodinger.application.matsci.maestrocmds.sort_group_include_row(groupname, row, sorting_prop, ptable=None)

Sort the given project group by iteration number and then select/include the given row

  • groupname (str) – The name of the group to sort

  • row (project.ProjectRow) – The project row of the entry to include

  • sorting_prop (str) – The property name used to sort the entries. If None, group sorting will be skipped.

  • ptable (project.Project) – The project table

schrodinger.application.matsci.maestrocmds.add_miller_plane(hkl, vecs, scaled_vecs=None, min_plane=0, max_plane=1, color=(255, 0, 0), opacity=75, show_arrow=True, entry_id=None, origin=None, draw_location=0, thickness=1, also_draw_planes_behind=True)

Make plane and arrow graphics of a Miller plane and lattice vectors.

  • hkl (list[int]) – Miller triple hkl (example: [1,2,1])

  • vecs (list[float]) – Lattice vectors (A)

  • scaled_vecs (list[float]) – Scaled lattice vectors (A) that presumably fit all the planes. If not provide, vecs will be used. See related any_polygons_outside_cell function

  • min_plane (int) – Minimum plane to draw

  • max_plane (int) – Minimum plane to draw

  • color (tuple[int]) – Plane color in RGB

  • opacity (float) – Plane opacity

  • show_arrow (bool) – Whether to show plane normal as an arrow

  • entry_id (str) – Project table entry ID, plane and arrow are associated with

  • origin (list[float]) – Origin (A)

  • draw_location (float) – Shift from the origin in dHKL units

  • thickness (float) – Thickness in the dHKL units

  • also_draw_planes_behind (bool) – Whether to draw planes behind the cell

Return type

xtal.CrystalPlane, maestro.common.Group or None


Plane and graphics or None on error


Given a maestro graphics group, check if there are any polygons outside of it. This function is related to add_miller_plane above.


group (maestro.common.Group) – Group to check

Return type



Whether there are any polygons outside the cell


Wrap between maestro beginundoblock and endundoblock commands.


maestro (maestro) – Maestro instance

schrodinger.application.matsci.maestrocmds.delete_group(maestro, group_name, with_undo=True)

Delete group by name using maestro. Optionally provide undo functionality.

  • maestro (maestro) – Input maestro

  • group_name (str) – Group name

  • with_undo (bool) – Whether to wrap in undo block

schrodinger.application.matsci.maestrocmds.build_crystal(struct, cov_offset=0.4, translate=1, bonding=1, bond_orders=1, ncella=1, ncellb=1, ncellc=1, translate_centroids=0, ignore_valence=0)

Build crystal structure of asymmetric unit read from input file.

The output crystal structure is written to a file named ‘crystal-’ + input_file_name.

If there is no crystal symmetry information available in the read structure, this function will raise AttributeError exception. This should not normally happen since the caller is supposed to check for the presence of these properties.

  • input_file_name (str) – Name of input Maestro file.

  • covalent_offset (float) – Covalent radius offset used in bond computation.

  • translate (int) – If 1, translate all atoms to the first cell

  • bonding (int) – If 1, re-bond the system, otherwise use as is

  • bond_orders (int) – If 1, reset the bond orders of the system, otherwise use as is

  • ncella (int) – Extents along a

  • ncellb (int) – Extents along b

  • ncellc (int) – Extents along c

  • translate_centroids (int) – If 1, after the cell is built, entire molecules are moved into the first cell. Cannot be used together with translate

  • ignore_valence (int) – If 1, use infra MAX_BONDS for valency exceptions, for 0 use default

Return type



True on success, False otherwise.