docs: def rmsd(df1, df2, s=None, invert=False):
          """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.
  
          s : {'main chain', 'hydrogen', 'c-alpha', 'heavy', 'carbon'} or None,
              default: None
              String to specify which entries to consider. If None, considers
              all atoms for comparison.
  
          invert : bool, default: False
              Inverts the string query if true. For example, the setting
              `s='hydrogen', invert=True` computes the RMSD based on all
              but hydrogen atoms.
  
          Returns
          ---------
          rmsd : float
              Root Mean Square Deviation between df1 and df2
  
          """
          if df1.shape[0] != df2.shape[0]:
              raise AttributeError('DataFrames have unequal lengths')
          get_dict = PandasPdb._init_get_dict()
          if s:
              if s not in get_dict.keys():
                  raise AttributeError('s must be in '
                                       '%s or None' % get_dict.keys())
              df1 = get_dict[s](df1, invert=invert)
              df2 = get_dict[s](df2, invert=invert)
  
          total = ((df1['x_coord'].values - df2['x_coord'].values)**2 +
                   (df1['y_coord'].values - df2['y_coord'].values)**2 +
                   (df1['z_coord'].values - df2['z_coord'].values)**2)
          rmsd = round((total.sum() / df1.shape[0])**0.5, 4)
          return rmsd