code: def calculate_descriptors(self,mol):
  		
  		#make dictionary
  		self.ligand_atoms = {index:{"name":x.name} for index,x in enumerate(self.topology_data.universe.ligand_noH.atoms)}
  
  		#Calculate logP and MR
  		contribs = self.calculate_logP(mol)
  
  		#Calculate Gasteiger charges
  		self.calculate_Gasteiger_charges(mol)
  
  		#Calculate formal charges
  		fcharges = self.calculate_formal_charge(mol)
  
  		for atom in self.ligand_atoms.keys():
  			self.ligand_atoms[atom]["logP"]=contribs[atom][0]
  			self.ligand_atoms[atom]["MR"]=contribs[atom][1]
  			self.ligand_atoms[atom]["Gasteiger_ch"]=mol.GetAtomWithIdx(atom).GetProp("_GasteigerCharge")
  			self.ligand_atoms[atom]["Formal charges"]=fcharges[atom]
  
  		#Determine rotatable bonds
  		self.rot_bonds=self.get_rotatable_bonds(mol)
docs: Calculates descriptors such as logP, charges and MR and saves that in a dictionary.