rdkit.Chem.rdFreeSASA module — The RDKit 2025.09.6 documentation

# rdkit.Chem.rdFreeSASA module

Module containing rdFreeSASA classes and functions.

rdkit.Chem.rdFreeSASA.CalcSASA((rdkit.Chem.rdchem.Mol)mol, (object)radii[, (int)confIdx=-1[, (rdkit.Chem.rdchem.Atom)query=None[, (SASAOpts)opts=<rdkit.Chem.rdFreeSASA.SASAOpts object at 0x7b87f099d700>]]]) → float :

  Compute the Solvent Accessible Surface Area using the FreeSASA library :param - mol: The molecule to compute. :param - radii: A list of atom raddii where radii[atom.GetIdx()] is the radius of the atom

  > These can be passed in or calculated with classifyAtoms for some proteins

  Parameters:

    - confIdx (-) – Specify the conformer to use for the 3D geometry [default -1]

    - query (-) – Pass along a query atom to compute the SASA for a subset of atoms. precanned query atoms can be made with MakeFreeSasaPolarAtomQuery and MakeFreeSasaAPolarAtomQuery for classified polar and apolar atoms respectively.

    - opts (-) – a SASAOpts class specifying the algorithm to use

  RETURNS: The computed solvent accessible surface area.

  C++ signature :

    double CalcSASA(RDKit::ROMol,boost::python::api::object [,int=-1 [,RDKit::Atom const*=None [,FreeSASA::SASAOpts=<rdkit.Chem.rdFreeSASA.SASAOpts object at 0x7b87f099d700>]]])

rdkit.Chem.rdFreeSASA.MakeFreeSasaAPolarAtomQuery() → rdkit.Chem.rdchem.QueryAtom :

  Returns an APolar atom query for use with CalcSASA. An apolar atom has the SASAClass and SASAClassName set to the APOLAR class. (see classifyAtoms)

  C++ signature :

    RDKit::QueryAtom const* MakeFreeSasaAPolarAtomQuery()

rdkit.Chem.rdFreeSASA.MakeFreeSasaPolarAtomQuery() → rdkit.Chem.rdchem.QueryAtom :

  Returns a polar atom query for use with CalcSASA. An polar atom has the SASAClass and SASAClassName set to the POLAR class. (see classifyAtoms)

  C++ signature :

    RDKit::QueryAtom const* MakeFreeSasaPolarAtomQuery()

class rdkit.Chem.rdFreeSASA.SASAAlgorithm

  Bases: `enum`

  LeeRichards = rdkit.Chem.rdFreeSASA.SASAAlgorithm.LeeRichards
  ShrakeRupley = rdkit.Chem.rdFreeSASA.SASAAlgorithm.ShrakeRupley
  names = {'LeeRichards': rdkit.Chem.rdFreeSASA.SASAAlgorithm.LeeRichards, 'ShrakeRupley': rdkit.Chem.rdFreeSASA.SASAAlgorithm.ShrakeRupley}
  values = {0: rdkit.Chem.rdFreeSASA.SASAAlgorithm.LeeRichards, 1: rdkit.Chem.rdFreeSASA.SASAAlgorithm.ShrakeRupley}

class rdkit.Chem.rdFreeSASA.SASAClass

  Bases: `enum`

  APolar = rdkit.Chem.rdFreeSASA.SASAClass.APolar
  Polar = rdkit.Chem.rdFreeSASA.SASAClass.Polar
  Unclassified = rdkit.Chem.rdFreeSASA.SASAClass.Unclassified
  names = {'APolar': rdkit.Chem.rdFreeSASA.SASAClass.APolar, 'Polar': rdkit.Chem.rdFreeSASA.SASAClass.Polar, 'Unclassified': rdkit.Chem.rdFreeSASA.SASAClass.Unclassified}
  values = {0: rdkit.Chem.rdFreeSASA.SASAClass.Unclassified, 1: rdkit.Chem.rdFreeSASA.SASAClass.APolar, 2: rdkit.Chem.rdFreeSASA.SASAClass.Polar}

class rdkit.Chem.rdFreeSASA.SASAClassifier

  Bases: `enum`

  NACCESS = rdkit.Chem.rdFreeSASA.SASAClassifier.NACCESS
  OONS = rdkit.Chem.rdFreeSASA.SASAClassifier.OONS
  Protor = rdkit.Chem.rdFreeSASA.SASAClassifier.Protor
  names = {'NACCESS': rdkit.Chem.rdFreeSASA.SASAClassifier.NACCESS, 'OONS': rdkit.Chem.rdFreeSASA.SASAClassifier.OONS, 'Protor': rdkit.Chem.rdFreeSASA.SASAClassifier.Protor}
  values = {0: rdkit.Chem.rdFreeSASA.SASAClassifier.Protor, 1: rdkit.Chem.rdFreeSASA.SASAClassifier.NACCESS, 2: rdkit.Chem.rdFreeSASA.SASAClassifier.OONS}

class rdkit.Chem.rdFreeSASA.SASAOpts((object)self) → None :

  Bases: `instance`

  Constructor takes no arguments

  > C++ signature :

  >   void __init__(_object*)

  __init__( (object)self, (SASAAlgorithm)alg, (SASAClassifier)cls) -> None :

  > C++ signature :

  >   void __init__(_object*,FreeSASA::SASAOpts::Algorithm,FreeSASA::SASAOpts::Classifier)

  __init__( (object)self, (SASAAlgorithm)alg, (SASAClassifier)cls, (float)pr) -> None :

  > C++ signature :

  >   void __init__(_object*,FreeSASA::SASAOpts::Algorithm,FreeSASA::SASAOpts::Classifier,double)

  property algorithm

    None( (rdkit.Chem.rdFreeSASA.SASAOpts)arg1) -> rdkit.Chem.rdFreeSASA.SASAAlgorithm:

    C++ signature :

      FreeSASA::SASAOpts::Algorithm {lvalue} None(FreeSASA::SASAOpts {lvalue})

  property classifier

    None( (rdkit.Chem.rdFreeSASA.SASAOpts)arg1) -> rdkit.Chem.rdFreeSASA.SASAClassifier:

    C++ signature :

      FreeSASA::SASAOpts::Classifier {lvalue} None(FreeSASA::SASAOpts {lvalue})

  property probeRadius

    None( (rdkit.Chem.rdFreeSASA.SASAOpts)arg1) -> float:

    C++ signature :

      double {lvalue} None(FreeSASA::SASAOpts {lvalue})

rdkit.Chem.rdFreeSASA.classifyAtoms((rdkit.Chem.rdchem.Mol)mol[, (SASAOpts)options=<rdkit.Chem.rdFreeSASA.SASAOpts object at 0x7b87f099d690>]) → object :

  Classify the atoms in the molecule returning their radii if possible. :param - mol: molecule to classify :param - options: FreeSASA options class specifying the classification method.

  > Current classifiers are Protor, NACCESS and OONS classification is stored as atom property ‘SASAClass’ for the integer value

  > > and ‘SASAClassName’ for the string name of the class, Polar, APolar…

  Returns:

    list of radii where radii[atom.GetIdx()] is the radii of the atom. If classification fails, NONE is returned

  C++ signature :

    boost::python::api::object classifyAtoms(RDKit::ROMol {lvalue} [,FreeSASA::SASAOpts=<rdkit.Chem.rdFreeSASA.SASAOpts object at 0x7b87f099d690>])