docs: def rmsd(df1, df2, heavy_only=True):
          """Compute the Root Mean Square Deviation between molecules
  
          Parameters
          ----------
          df1 : pandas.DataFrame
              DataFrame with HETATM, ATOM, and/or ANISOU entries
          df2 : pandas.DataFrame
              Second DataFrame for RMSD computation against df1. Must have the
              same number of entries as df1
          heavy_only : bool (default: True)
              Which atoms to compare to compute the RMSD. If `True` (default),
              computes the RMSD between non-hydrogen atoms only.
  
          Returns
          ---------
          rmsd : float
              Root Mean Square Deviation between df1 and df2
  
          """
          if df1.shape[0] != df2.shape[0]:
              raise AttributeError('DataFrames have unequal lengths')
  
          if heavy_only:
              d1 = df1[df1['atom_type'] != 'H']
              d2 = df2[df2['atom_type'] != 'H']
          else:
              d1, d2 = df1, df2
  
          total = ((d1['x'].values - d2['x'].values)**2 +
                   (d1['y'].values - d2['y'].values)**2 +
                   (d1['z'].values - d2['z'].values)**2)
          rmsd = round((total.sum() / df1.shape[0])**0.5, 4)
          return rmsd