Re: [ccp4bb] structure alignment based on the ligand

2009-04-13 Thread Christian Biertuempfel
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  ' 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

2009-04-13 Thread junfeng liu

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

2009-04-13 Thread Miri Hirshberg

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

2009-04-12 Thread Abhinav Kumar

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 = ;
chomp $ref_pdb;
print " Enter moving pdb name: ";

#my $mov_pdb = "1x1b.pdb";
my $mov_pdb = ;
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 = ;
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 = ;
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] );
}
}
}

Re: [ccp4bb] structure alignment based on the ligand

2009-04-12 Thread rui
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  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.
>
>


Re: [ccp4bb] structure alignment based on the ligand

2009-04-12 Thread John Badger
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.


[ccp4bb] structure alignment based on the ligand

2009-04-12 Thread rui
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