Re: [ccp4bb] Structure alignment
One of many possible ways is to use rms_cur command in pymol. But fundamentally such number is meaningless, since root mean square deviation is only useful when the average shift between the two structures is (close to) zero. On 07/23/2012 11:06 AM, Theresa Hsu wrote: Dear all I have two proteins in PDB each with two subunits. One of the subunits can align well in both. How do I calculate rmsd for the aligned subunits and the other non-align subunits *separately*? Thank you.
Re: [ccp4bb] Structure alignment
Dear Theresa, You could use Gesamt from CCP4 6.3.0, which will align a given range of residues in one protein onto a range of residues from another protein. Just run $CCP4/bin/gesamt for usage instructions and selection syntax, or use Structure Superposition from CCP4i. Best, Eugene On 23 Jul 2012, at 16:06, Theresa Hsu wrote: Dear all I have two proteins in PDB each with two subunits. One of the subunits can align well in both. How do I calculate rmsd for the aligned subunits and the other non-align subunits *separately*? Thank you. -- Scanned by iCritical.
Re: [ccp4bb] structure alignment based on the ligand
Hi,I am attaching a program that will do what you want.After entering the file names (one fixed and the other moving), the program asks for anchor atom names, i.e. a few atoms in your ligand that you want to use as reference atoms for computing the alignment. If you do not give any atom names, all atoms of the ligand will be used as the anchor atoms.You can repeat this process to align all of your pdb files to one reference file.#!/usr/bin/perl ## use warnings; use strict; ## # # DESCRIPTION: LSQKAB # AK 3/08 # ## Reference: ## A solution for the best rotation to relate two sets of vectors ## -- Wonfgang Kabsch, Acta Cryst. A32, 922, 1976 # ## my ( @R, @RtR, @avector, @mu, @bvector, @U ); ## my $line = '-' x 70 . \n; print $line; print Enter reference pdb name: ; #my $ref_pdb = 1mht.pdb; my $ref_pdb = STDIN; chomp $ref_pdb; print Enter moving pdb name: ; #my $mov_pdb = 1x1b.pdb; my $mov_pdb = STDIN; chomp $mov_pdb; print Ligand residue chain and number must be same in both files.\n; print Enter residue chain and number: [Z 999] ; #my $chain_num = Z 999; my $chain_num = STDIN; chomp $chain_num; my ( $chain_mol, $num_mol ) = split , $chain_num; print Enter anchor atoms: (case sensitive) ; #my $anchor_atoms = N1 N3 N6 N7 N9 C2' C4' SD CG C; my $anchor_atoms = STDIN; chomp $anchor_atoms; unless ($anchor_atoms) { print == All atoms in the residue '$chain_num' will be used for LSQ.\n; } print $line; print Reference pdb:\t$ref_pdb\n; print Moving pdb:\t$mov_pdb\n; print Range:\t$chain_mol-$num_mol\n; ## my %pdb_ref = ReadPDB($ref_pdb); my %pdb_mov = ReadPDB($mov_pdb); ## Verify that the anchor atoms are present in both files in that residue. Delete_missing_anchor_atoms(); print Anchor atoms:\t$anchor_atoms\n; print $line; ### find centroids my @center_ref = Center( \%pdb_ref ); my @center_mov = Center( \%pdb_mov ); ### shift molecule to origin Move_to_origin( @center_ref, \%pdb_ref ); Move_to_origin( @center_mov, \%pdb_mov ); Construct_R(); ### r[ij] = sum_atoms(yi * xj) Construct_RtR();### RtR = R-transpose * R #Print_matrix(\...@r); #Print_matrix(\...@rtr); Eigen(@RtR);### Eigen values (mu) /Eigen vectors (a-vector) of RtR #print \nEigen values = @mu\n; #Print_matrix(\...@avector); Construct_bvector();### bvector = (R * a-vector)/sqrt(eigen value) #Print_matrix(\...@bvector); Construct_U(); ### U = Rotation matrix = b-vector * a-vector Print_matrix( \...@u ); my @translation = Apply_trans( @center_ref, @center_mov, @U ); printf %12.6f\t, $_ for @translation; print \n; Rotate_moving_pdb();### transform the moving structure ## sub Apply_trans { my ( $cxr, $cyr, $czr, $cxm, $cym, $czm, @mat ) = @_; my @in = ( $cxm, $cym, $czm ); my @out = ( $cxr, $cyr, $czr ); for ( my $i = 0 ; $i 3 ; $i++ ) { for ( my $j = 0 ; $j 3 ; $j++ ) { $out[$i] -= $mat[$i][$j] * $in[$j]; } } return @out; } ### sub Center { my $coord = shift; my ( $sumx, $sumy, $sumz ); my $n = 0; foreach my $atom ( keys %{$coord} ) { $sumx += $coord-{$atom}{x}; $sumy += $coord-{$atom}{y}; $sumz += $coord-{$atom}{z}; $n++; } $sumx /= $n; $sumy /= $n; $sumz /= $n; return ( $sumx, $sumy, $sumz ); } ### sub Construct_R { my @x; my @y; my $n = 0; foreach my $atom ( keys %pdb_ref ) { $x[$n][0] = $pdb_mov{$atom}{x}; $x[$n][1] = $pdb_mov{$atom}{y}; $x[$n][2] = $pdb_mov{$atom}{z}; $y[$n][0] = $pdb_ref{$atom}{x}; $y[$n][1] = $pdb_ref{$atom}{y}; $y[$n][2] = $pdb_ref{$atom}{z}; $n++; } my $natoms = $n; for ( my $i = 0 ; $i 3 ; $i++ ) { for ( my $j = 0 ; $j 3 ; $j++ ) { $R[$i][$j] = 0; for ( my $n = 0 ; $n $natoms ; $n++ ) { $R[$i][$j] += $y[$n][$i] * $x[$n][$j]; } } } } ## sub Construct_bvector { for ( my $i = 0 ; $i 3 ; $i++ ) { for ( my $j = 0 ; $j 3 ; $j++ ) { $bvector[$i][$j] = 0; for ( my $k = 0 ; $k 3 ; $k++ ) { $bvector[$i][$j] += $R[$j][$k] * $avector[$i][$k]; } $bvector[$i][$j] /= sqrt( $mu[$i] ); } } } ## sub
Re: [ccp4bb] structure alignment based on the ligand
Mon., April. 13th 2009 EBI On Sun, 12 Apr 2009, rui wrote: Hi, All I have dozens of complex structures ( protein + ligand ) and want to align the structures based on the ligand. Does anyone know such kind of program? Or if can get the information around the ligand site, that would be even better. Thanks. R long time ago I used ProFit for exactly want you want, giving it only the ligand atom list for the fitting, then looking for the different protein environment. There is now a new version of the program. http://www.bioinf.org.uk/software/profit/ Good luck Miri Dr Miri Hirshberg European Bioinformatics Institute UK http://www.ebi.ac.uk Phone: +44 (0) 1223 492647 FAX: +44 (0) 1223 494487
Re: [ccp4bb] structure alignment based on the ligand
Coot can do that. You can use lsq to overlap the whole atoms of ligands. Another way is using LigAlign in Pymol. Good luck! leo rui wrote: Hi, All I have dozens of complex structures ( protein + ligand ) and want to align the structures based on the ligand. Does anyone know such kind of program? Or if can get the information around the ligand site, that would be even better. Thanks. R
Re: [ccp4bb] structure alignment based on the ligand
Hi, To complete the responses you already have got, I recommend to use LSQMAN ( http://xray.bmc.uu.se/usf/lsqman_man.html ) for your alignment task. It can only compare two structures at a time but LSQMAN can easily be run script-based (using one structure as the reference). Select either all atoms 'at al' or define your own set with 'at de atom definition(s) as in pdb ' for the superimposition and choose the residue numbers of your ligand for alignment. Happy Eastern! christian rui wrote: Hi, All I have dozens of complex structures ( protein + ligand ) and want to align the structures based on the ligand. Does anyone know such kind of program? Or if can get the information around the ligand site, that would be even better. Thanks. R -- ___ Dr. Christian Biertümpfel Laboratory of Molecular Biology NIDDK/National Institutes of Health phone: +1 301 402 4647 9000 Rockville Pike, Bldg. 5, Rm. B1-03 fax: +1 301 496 0201 Bethesda, MD 20892-0580 USA ___
Re: [ccp4bb] structure alignment based on the ligand
If you mean that you have many structure files for the same protein but with different ligands you can automatically align them all based on just the target site CA atoms (i.e. defined as those close to one of the ligands) using the Job/Cocrystal superposition application in MIFit8 http://code.google.com/p/mifit/ See tutorial lesson 15. One of the outputs is a file containing all of the aligned ligands. It is also possible to perform bulk import of prealigned PDB files placed in the same directory with the normal File/Open Models... command but holding down the shift button and selecting the many structure files with the mouse. Different models will be displayed in different colors. For medically interesting proteins it is increasingly the case that there are dozens of cocrystals in the PDB and it becomes tedious to understand how they relate to each other without an alignment tool that can automatically run over the whole set.
Re: [ccp4bb] structure alignment based on the ligand
Thanks for the answer. Actually, it's the opposite. I have many structures that have different protein but with the same ligand(sugar). And I want to fixed the ligand and align the different proteins to see the active site. On Sun, Apr 12, 2009 at 7:36 PM, John Badger jbadg...@san.rr.com wrote: If you mean that you have many structure files for the same protein but with different ligands you can automatically align them all based on just the target site CA atoms (i.e. defined as those close to one of the ligands) using the Job/Cocrystal superposition application in MIFit8 http://code.google.com/p/mifit/ See tutorial lesson 15. One of the outputs is a file containing all of the aligned ligands. It is also possible to perform bulk import of prealigned PDB files placed in the same directory with the normal File/Open Models... command but holding down the shift button and selecting the many structure files with the mouse. Different models will be displayed in different colors. For medically interesting proteins it is increasingly the case that there are dozens of cocrystals in the PDB and it becomes tedious to understand how they relate to each other without an alignment tool that can automatically run over the whole set.