docs: def define_residues_for_plotting_topology(self,cutoff):
          """
          This function defines the residues for plotting in case only a topology file has been submitted.
          In this case the residence time analysis in not necessary and it is enough just to find all
          residues within a cutoff distance.
              Takes:
                  * cutoff * - cutoff distance in angstroms that defines native contacts
              Output:
                  *
          """
  
          #self.protein_selection = self.universe.select_atoms('all and around '+str(cutoff)+' (segid '+str(self.universe.ligand.segids[0])+' and resid '+str(self.universe.ligand.resids[0])+')')
          #The previous line was not working on some examples for some reason - switch to more efficient Neighbour Search
          n = AtomNeighborSearch(self.universe.select_atoms('protein and not name H* or (segid '+str(self.universe.ligand.segids[0])+' and resid '+str(self.universe.ligand.resids[0])+')'), bucket_size=10)
          self.protein_selection = n.search(self.universe.ligand,cutoff,level="A")
          for atom in self.protein_selection.atoms:
                  #for non-analysis plots
                  residue = (atom.resname, str(atom.resid), atom.segid)
                  if residue not in self.dict_of_plotted_res.keys() and atom not in self.universe.ligand.atoms:
                      self.dict_of_plotted_res[residue]=[1]
          assert len(self.dict_of_plotted_res)!=0, "Nothing to draw for this ligand (residue number: "+ self.universe.ligand.resids[0] +" on the chain "+ self.universe.ligand.segids[0] +") - check the position of your ligand within the topology file."