def get_sitecenteredsoap(obj, first_shell, alphas, betas, rcut=6, nmax=10, lmax=9, all_atomtypes=[]):
    """Takes cluster structure and nearest neighbour information of a datapoint,
    Returns concatenated soap vectors for each nearest
    neighbour (up to 3). Top, bridge, hollow fill the initial
    zero soap vector from left to right.
    """

    soap_vector = []
    nnn = len(first_shell)
    center_of_atoms = 1.0 / nnn * np.mean(obj.get_positions()[first_shell], axis = 0)
    #print("center of atoms", center_of_atoms)
    Hpos = [center_of_atoms]
    soap_vector = soapPy.get_soap_locals(obj, Hpos, myAlphas, myBetas, rCut=rcut, NradBas=nmax, Lmax=lmax,crossOver=False, all_atomtypes=all_atomtypes)
    #print(len(soap_vector), soap_vector.shape)
    #print("exemplary soapvalues",soap_vector[0,0], soap_vector[0,1], soap_vector[0,2])
    return soap_vector
Takes cluster structure and nearest neighbour information of a datapoint,
    Returns concatenated soap vectors for each nearest
    neighbour (up to 3). Top, bridge, hollow fill the initial
    zero soap vector from left to right.