[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[modeller_usage] align_2d vs salign



Hi there,

I am modeling a homopentamer using three structures of homologous
homopentamers as the template.The monomers are 210 aa's. Following the
advanced tutorial, I first aligned the three known structures using
salign with the three cycles of refinement, and got good alignment. In
the tutorial, the next step was to then align the test sequence with the
aligned templates using align_2d. After approximately 3900 seconds this
produced what looks like a nice alignment, with structural features such
as cys involved in disulfides and conserved aromatic residues lining up
between all four sequences (three templates, one test). I then did the
alignment using salign instead of align_2d, following the description in
the online manual for salign (examples/salign.saling_align_2d). Once
again, a nice (but slightly different in the regions without much
homology, but still with the other features retained) is obtained. The
surprising thing is that this alignment only took 17 seconds, a 200-fold
improvement in time).
Both alignments gave acceptable-looking models.

Are the two algorithms so different that salign is that much faster? Is
there any advantage to using align_2d instead of salign?

Thanks

Mike White

Here are the two scripts:

**************************************************************************
ALIGN-2D:

# Demonstrating ALIGN2D, aligning with variable gap penalty
# uses a version of the 5HT3ARXD with first 12 residues removed (no
overlap with templates)
# default gap_penalties_2d: (3.5, 3.5, 3.5, 0.2, 4.0, 6.5, 2.0, 0., 0.)
# default gap_penalties_1d: (-450, -50)

from modeller import *

log.verbose()
env = environ()

env.libs.topology.read(file='$(LIB)/top_heav.lib')

# Read aligned structure(s):
aln = alignment(env)
aln.append(file='achbpsPentamer.ali', align_codes='all')
aln_block = len(aln)

# Read aligned sequence(s):
aln.append(file='5HT3ARXDPentamerTrim.ali',
align_codes='5HT3ARXDPentamerTrim')
 
# Structure sensitive variable gap penalty sequence-sequence alignment:
aln.align2d(overhang=0, gap_penalties_1d=(-450, -50),
            gap_penalties_2d=(3.5, 3.5, 3.5, 0.2, 4.0, 6.5, 2.0, 0.,
0.),
            align_block=aln_block)

# write files. In *.pap files indicate helices and beta structures
aln.write(file='5HT3ARXDPentamerTrim-mult.ali', alignment_format='PIR')
aln.write(file='5HT3ARXDPentamerTrim-mult.pap', alignment_format='PAP',
alignment_features=' INDICES HELIX BETA')
****************************************************************************
SALIGN:

# Demonstrating ALIGN2D using salign commands, aligning with variable
gap penalty
# uses a version of the 5HT3ARXD with first 12 residues removed (no
overlap with templates)
# default gap_penalties_2d: (3.5, 3.5, 3.5, 0.2, 4.0, 6.5, 2.0, 0., 0.)
# default gap_penalties_1d: (-450, -50)

from modeller import *

log.verbose()
env = environ()

env.libs.topology.read(file='$(LIB)/top_heav.lib')

# Read aligned structure(s):
aln = alignment(env)
aln.append(file='achbpsPentamer.ali', align_codes='all')
aln_block = len(aln)

# Read aligned sequence(s):
aln.append(file='5HT3ARXDPentamerTrim.ali',
align_codes='5HT3ARXDPentamerTrim')
 
# Structure sensitive variable gap penalty sequence-sequence alignment:
aln.salign(rr_file='$(LIB)/as1.sim.mat',
	output='',
	max_gap_length=20,
	gap_function=True,
	feature_weights=(1.,0., 0., 0., 0., 0.),
	gap_penalties_1d=(-450,-50),
	gap_penalties_2d=(3.5, 3.5, 3.5, 0.2, 4.0, 6.5, 2.0, 0., 0.),
	similarity_flag=True,
	align_block=aln_block)
		


# write files. In *.pap files indicate helices and beta structures
aln.write(file='5HT3ARXDPentamerTrim-multSalign.ali',
alignment_format='PIR')
aln.write(file='5HT3ARXDPentamerTrim-multSalign.pap',
alignment_format='PAP', alignment_features=' INDICES HELIX BETA')
*****************************************************************************