# 10.2.4. CHARMM selections

Write `MDAnalysis.core.groups.AtomGroup` selection to a str file that defines a CHARMM selection. To be used in CHARMM like this:

    stream macro.str

The selection is named mdanalysis001.

class MDAnalysis.selections.charmm.SelectionWriter(filename, mode='w', numterms=None, preamble=None, **kwargs)

  Set up for writing to filename.

  Parameters:

    - filename – output file

    - mode – create a new file (“w”), or append (“a”) to existing file [“w”]

    - numterms – number of individual index numbers per line for output formats that write multiple entries in one line. If set to 0 or `False` then no special formatting is done [8]

    - preamble – string that is written as a comment at the top of the file []

    - kwargs – use as defaults for `write()`

  close()

    Close the file

    Added in version 0.16.0.

  comment(s)

    Return string s interpolated into the comment format string.

    If no `SelectionWriterBase.commentfmt` is defined (None) then the empty string is returned because presumably there is no way to enter comments into the file.

    A newline is appended to non-empty strings.

  commentfmt = '! %s'

    Comment format string; should contain ‘%s’ or `None` for no comments.

  continuation = '-'

    Special character to continue a line across a newline.

  ext = 'str'

    Extension of output files.

  format = ['CHARMM', 'str']

    Name of the format.

  write(selection, number=None, name=None, frame=None, mode=None)

    Write selection to the output file.

    Parameters:

      - selection – a `MDAnalysis.core.groups.AtomGroup`

      - number – selection will be named “mdanalysis<number>” (`None` auto increments between writes; useful when appending) [`None`]

      - name – selection will be named name (instead of numbered) [`None`]

      - frame – write selection of this frame (or the current one if `None` [`None`]

  write_preamble()

    Write a header, depending on the file format.