Structural Alignment and Trimming of Aligned Protein

Issue #705 new
protein_fashion created an issue

I have a protein domain that I am interested in, and I am looking at other proteins with the same domain, with the aim of performing electrostatic comparisons of them all. I have 750 similar domains, however in many cases they are part of a greater complex within pdb files.

What I am hoping to achieve, is structurally aligning my reference protein with a domain that is part of a larger complex (mobile), and then trim that larger structure based on the alignment, so that the output pdb file of the mobile structure is just the aligned domain. I have been trying to figure out a way to achieve this in Bio3D, but have yet to come up with a solution. I would imagine it could potentially be achieved using a combination of either struct.aln() or fit.xyz() and then trim.pdb() using output residue numbers from the alignment, but I have yet to figure it out. For instance, using chain A of pdb file 5D8E.pdb and then aligning it with 3KJO.pdb, and then trimming 3KJO.pdb to only output what was aligned with the 5D8E.pdb.

Thanks!

Comments (1)

  1. Xinqiu Yao

    Make a pdbs object, fit all structures and output to a folder. Then, read fitted structures from the folder one by one and do the trimming. For example,

    files <- list.files('.', '\\.pdb$') # this is original pdb files
    pdbs <- pdbaln(files)
    pdbfit(pdbs, outpath='fitlsq')
    
    files2 <- list.files('fitlsq', full.names=TRUE)
    pdbs2 <- pdbaln(files2)
    # assume the first entry is the domain you want to find
    inds <- !is.gap(pdbs2$ali[1, ])
    for (i in pdbs2$id[-1]) {
       pdb <- read.pdb(i)
       resno <- pdbs2$resno[i, !is.gap(pdbs2$ali[i, ]) & inds]
       newpdb <- trim(pdb, resno=resno)
       write.pdb(newpdb, file=paste(i, '_trimed.pdb', sep=''))
    }
    

    Above just shows the idea but never tested. Let me know if you run into any troubles.

  2. Log in to comment