struct.aln method does not fully align

Issue #658 resolved
Former user created an issue

Hi, thanks for this nice module. I have one problem in aligning the structures 1hti and 1dkw. I use this from within python using r2py, but this probably should not matter. The Alignment does work using the structures 1b9b 1ci1 1i45 1tim with 1hti but not with 1dkw Alignment . The code fragment looks like below. The result is independent if i use the inds_s/t with chains selected or not or string backbone or not.

   template_R = bio3d.read_pdb2(os.path.join(self.__data_dir,str(template)+".pdb"))
    inds_t = bio3d.atom_select(pdb=template_R,chain=base.c("A","B"),string="backbone")

print (template_R)

exit(1)

    for mstruct in self.__structures:
        mstruct_R = bio3d.read_pdb2(os.path.join(self.__data_dir,str(mstruct)+".pdb"))
        inds_s=bio3d.atom_select(pdb=mstruct_R,chain=base.c("A","B"),string="backbone")
        if template!=mstruct:
            aln = bio3d.struct_aln(template_R,mstruct_R,fixed_inds=inds_t,mobile_inds=inds_s,write_pdbs=True,outpath=self.__data_dir, max_cycles=500, cutoff=0.01)

Comments (9)

  1. Xinqiu Yao

    Hi,

    Could you try to do the calculation using R itself? Let me know if the problem is reproduced in R.

  2. Stefan Richter

    Yes the same issue, if i run it directly in R:

    #install.packages('bio3d')
    library('bio3d')
    template = read.pdb2("./1hti.pdb")
    struct = read.pdb2("./1dkw.pdb")
    
    inds_t = atom.select(pdb=template,chain=c("A","B"),string="backbone")
    inds_s = atom.select(pdb=struct,chain=c("B","A"),string="backbone")
    struct.aln(template,struct,fixed.inds=inds_t,mobile.inds=inds_s,write.pdbs=TRUE,outpath=".", max.cycles=500, cutoff=0.01)
    

    struct-aln-1hti-1dkw.png The green and brown structures are the original. Green stays fixed, but the brown structure (1dkw) is turned into the pink one??

  3. Stefan Richter

    The switch of the chain=c("B","A") to chain=c("A","B") was just a test by myself to check if this depends on the order the chains are selected. The problem occurs in both cases, also if i leave out the chain selection or the indices at all.

  4. Xinqiu Yao

    I tried and didn't get any error.

    In the result, one chain superimposes very well but the other chain does not. This seems because in the two structures the two chains bind at different interfaces.

    What was your concern and what outcomes did you expect?

  5. Stefan Richter

    I would have expected, that the alignment procedure takes the whole protein complex as constraint for the RMSD and tries to align the whole complex, rather than a single chain. Especially if i select the whole protein and not only a chain. This works (probably out of chance) by the other proteins from the same family: 1b9b, 1ci1, 1i45, 1tim with 1hti, but not 1dkw with 1hti (as above). An example for 1i45 with 1hti is given below.Alignment_1hti_1i45.png

  6. Log in to comment