def extract_residue_accessibility(in_rsa, path=True, get_total=False):
    """Parses rsa file for solvent accessibility for each residue.

    Parameters
    ----------
    in_rsa : str
        Path to naccess rsa file
    path : bool
        Indicates if in_rsa is a path or a string
    get_total : bool
        Indicates if the total accessibility from the file needs to
        be extracted. Convenience method for running the
        total_accessibility function but only running NACCESS once

    Returns
    -------
    rel_solv_ac_acc_atoms : list
        Relative solvent accessibility of all atoms in each amino acid
    get_total : float
        Relative solvent accessibility of all atoms in the NACCESS rsa file
    """

    if path:
        with open(in_rsa, 'r') as inf:
            rsa = inf.read()
    else:
        rsa = in_rsa[:]

    residue_list = [x for x in rsa.splitlines()]
    rel_solv_acc_all_atoms = [
        float(x[22:28])
        for x in residue_list
        if x[0:3] == "RES" or x[0:3] == "HEM"]

    if get_total:
        (all_atoms, side_chains, main_chain,
         non_polar, polar) = total_accessibility(
            rsa, path=False)
        return rel_solv_acc_all_atoms, all_atoms

    else:
        return rel_solv_acc_all_atoms, None
Parses rsa file for solvent accessibility for each residue.

    Parameters
    ----------
    in_rsa : str
        Path to naccess rsa file
    path : bool
        Indicates if in_rsa is a path or a string
    get_total : bool
        Indicates if the total accessibility from the file needs to
        be extracted. Convenience method for running the
        total_accessibility function but only running NACCESS once

    Returns
    -------
    rel_solv_ac_acc_atoms : list
        Relative solvent accessibility of all atoms in each amino acid
    get_total : float
        Relative solvent accessibility of all atoms in the NACCESS rsa file