Author: bugman
Date: Fri Jan 23 10:05:12 2015
New Revision: 27285
URL: http://svn.gna.org/viewcvs/relax?rev=27285&view=rev
Log:
The sequence alignment arguments are now passed all the way to the internal
structural object backend.
These are the arguments of the structure.align user function.
Modified:
trunk/lib/structure/internal/coordinates.py
trunk/pipe_control/structure/main.py
Modified: trunk/lib/structure/internal/coordinates.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/lib/structure/internal/coordinates.py?rev=27285&r1=27284&r2=27285&view=diff
==============================================================================
--- trunk/lib/structure/internal/coordinates.py (original)
+++ trunk/lib/structure/internal/coordinates.py Fri Jan 23 10:05:12 2015
@@ -26,23 +26,35 @@
from numpy import array, float64
-def assemble_coord_array(objects=None, object_names=None, molecules=None,
models=None, atom_id=None, seq_info_flag=False):
+def assemble_coord_array(objects=None, object_names=None, molecules=None,
models=None, atom_id=None, algorithm='NW70', matrix='BLOSUM62',
gap_open_penalty=1.0, gap_extend_penalty=1.0, end_gap_open_penalty=0.0,
end_gap_extend_penalty=0.0, seq_info_flag=False):
"""Assemble the atomic coordinates
- @keyword objects: The list of internal structural objects to
assemble the coordinates from.
- @type objects: list of str
- @keyword object_names: The list of names for each structural object to
use in printouts.
- @type object_names: list of str
- @keyword models: The list of models for each structural object.
The number of elements must match the objects argument. If set to None, then
all models will be used.
- @type models: None or list of lists of int
- @keyword molecules: The list of molecules for each structural object.
The number of elements must match the objects argument. If set to None, then
all molecules will be used.
- @type molecules: None or list of lists of str
- @keyword atom_id: The molecule, residue, and atom identifier string
of the coordinates of interest. This matches the spin ID string format.
- @type atom_id: None or str
- @keyword seq_info_flag: A flag which if True will cause the atomic
sequence information to be assembled and returned. This includes the molecule
names, residue names, residue numbers, atom names, and elements.
- @type seq_info_flag: bool
- @return: The array of atomic coordinates (first dimension
is the model and/or molecule, the second are the atoms, and the third are the
coordinates); a list of unique IDs for each structural object, model, and
molecule; the common list of molecule names (if the seq_info_flag is set); the
common list of residue names (if the seq_info_flag is set); the common list of
residue numbers (if the seq_info_flag is set); the common list of atom names
(if the seq_info_flag is set); the common list of element names (if the
seq_info_flag is set).
- @rtype: numpy rank-3 float64 array, list of str, list of
str, list of str, list of int, list of str, list of str
+ @keyword objects: The list of internal structural
objects to assemble the coordinates from.
+ @type objects: list of str
+ @keyword object_names: The list of names for each structural
object to use in printouts.
+ @type object_names: list of str
+ @keyword models: The list of models for each structural
object. The number of elements must match the objects argument. If set to
None, then all models will be used.
+ @type models: None or list of lists of int
+ @keyword molecules: The list of molecules for each
structural object. The number of elements must match the objects argument. If
set to None, then all molecules will be used.
+ @type molecules: None or list of lists of str
+ @keyword atom_id: The molecule, residue, and atom
identifier string of the coordinates of interest. This matches the spin ID
string format.
+ @type atom_id: None or str
+ @keyword algorithm: The pairwise sequence alignment
algorithm to use.
+ @type algorithm: str
+ @keyword matrix: The substitution matrix to use.
+ @type matrix: str
+ @keyword gap_open_penalty: The penalty for introducing gaps, as a
positive number.
+ @type gap_open_penalty: float
+ @keyword gap_extend_penalty: The penalty for extending a gap, as a
positive number.
+ @type gap_extend_penalty: float
+ @keyword end_gap_open_penalty: The optional penalty for opening a gap
at the end of a sequence.
+ @type end_gap_open_penalty: float
+ @keyword end_gap_extend_penalty: The optional penalty for extending a
gap at the end of a sequence.
+ @type end_gap_extend_penalty: float
+ @keyword seq_info_flag: A flag which if True will cause the
atomic sequence information to be assembled and returned. This includes the
molecule names, residue names, residue numbers, atom names, and elements.
+ @type seq_info_flag: bool
+ @return: The array of atomic coordinates (first
dimension is the model and/or molecule, the second are the atoms, and the third
are the coordinates); a list of unique IDs for each structural object, model,
and molecule; the common list of molecule names (if the seq_info_flag is set);
the common list of residue names (if the seq_info_flag is set); the common list
of residue numbers (if the seq_info_flag is set); the common list of atom names
(if the seq_info_flag is set); the common list of element names (if the
seq_info_flag is set).
+ @rtype: numpy rank-3 float64 array, list of
str, list of str, list of str, list of int, list of str, list of str
"""
# Assemble the atomic coordinates of all structures.
Modified: trunk/pipe_control/structure/main.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/pipe_control/structure/main.py?rev=27285&r1=27284&r2=27285&view=diff
==============================================================================
--- trunk/pipe_control/structure/main.py (original)
+++ trunk/pipe_control/structure/main.py Fri Jan 23 10:05:12 2015
@@ -151,8 +151,22 @@
if centre_type not in allowed:
raise RelaxError("The superimposition centre type '%s' is unknown. It
must be one of %s." % (centre_type, allowed))
+ # Check the penalty arguments.
+ if gap_open_penalty != None:
+ if gap_open_penalty < 0.0:
+ raise RelaxError("The gap opening penalty %s must be a positive
number." % gap_open_penalty)
+ if gap_extend_penalty != None:
+ if gap_extend_penalty < 0.0:
+ raise RelaxError("The gap extension penalty %s must be a positive
number." % gap_extend_penalty)
+ if end_gap_open_penalty != None:
+ if end_gap_open_penalty < 0.0:
+ raise RelaxError("The end gap opening penalty %s must be a
positive number." % end_gap_open_penalty)
+ if end_gap_extend_penalty != None:
+ if end_gap_extend_penalty < 0.0:
+ raise RelaxError("The end gap extension penalty %s must be a
positive number." % end_gap_extend_penalty)
+
# Assemble the atomic coordinates and obtain the corresponding element
information.
- coord, ids, mol_names, res_names, res_nums, atom_names, elements =
assemble_coordinates(pipes=pipes, molecules=molecules, models=models,
atom_id=atom_id, seq_info_flag=True)
+ coord, ids, mol_names, res_names, res_nums, atom_names, elements =
assemble_coordinates(pipes=pipes, molecules=molecules, models=models,
atom_id=atom_id, algorithm=algorithm, matrix=matrix,
gap_open_penalty=gap_open_penalty, gap_extend_penalty=gap_extend_penalty,
end_gap_open_penalty=end_gap_open_penalty,
end_gap_extend_penalty=end_gap_extend_penalty, seq_info_flag=True)
# Catch missing data.
if len(coord[0]) == 0:
@@ -200,19 +214,33 @@
i += 1
-def assemble_coordinates(pipes=None, molecules=None, models=None,
atom_id=None, seq_info_flag=False):
- """Assemble the atomic coordinates
+def assemble_coordinates(pipes=None, molecules=None, models=None,
atom_id=None, algorithm='NW70', matrix='BLOSUM62', gap_open_penalty=1.0,
gap_extend_penalty=1.0, end_gap_open_penalty=0.0, end_gap_extend_penalty=0.0,
seq_info_flag=False):
+ """Assemble the atomic coordinates.
- @keyword pipes: The data pipes to assemble the coordinates from.
- @type pipes: None or list of str
- @keyword models: The list of models for each data pipe. The number
of elements must match the pipes argument. If set to None, then all models
will be used.
- @type models: None or list of lists of int
- @keyword molecules: The list of molecules for each data pipe. The
number of elements must match the pipes argument.
- @type molecules: None or list of lists of str
- @keyword atom_id: The molecule, residue, and atom identifier string
of the coordinates of interest. This matches the spin ID string format.
- @type atom_id: None or str
- @return: The array of atomic coordinates (first dimension
is the model and/or molecule, the second are the atoms, and the third are the
coordinates); a list of unique IDs for each structural object, model, and
molecule; the common list of molecule names (if the seq_info_flag is set); the
common list of residue names (if the seq_info_flag is set); the common list of
residue numbers (if the seq_info_flag is set); the common list of atom names
(if the seq_info_flag is set); the common list of element names (if the
seq_info_flag is set).
- @rtype: numpy rank-3 float64 array, list of str, list of
str, list of str, list of int, list of str, list of str
+ @keyword pipes: The data pipes to assemble the
coordinates from.
+ @type pipes: None or list of str
+ @keyword models: The list of models for each data pipe.
The number of elements must match the pipes argument. If set to None, then
all models will be used.
+ @type models: None or list of lists of int
+ @keyword molecules: The list of molecules for each data
pipe. The number of elements must match the pipes argument.
+ @type molecules: None or list of lists of str
+ @keyword atom_id: The molecule, residue, and atom
identifier string of the coordinates of interest. This matches the spin ID
string format.
+ @type atom_id: None or str
+ @keyword algorithm: The pairwise sequence alignment
algorithm to use.
+ @type algorithm: str
+ @keyword matrix: The substitution matrix to use.
+ @type matrix: str
+ @keyword gap_open_penalty: The penalty for introducing gaps, as a
positive number.
+ @type gap_open_penalty: float
+ @keyword gap_extend_penalty: The penalty for extending a gap, as a
positive number.
+ @type gap_extend_penalty: float
+ @keyword end_gap_open_penalty: The optional penalty for opening a gap
at the end of a sequence.
+ @type end_gap_open_penalty: float
+ @keyword end_gap_extend_penalty: The optional penalty for extending a
gap at the end of a sequence.
+ @type end_gap_extend_penalty: float
+ @keyword seq_info_flag: A flag which if True will cause the
atomic sequence information to be assembled and returned. This includes the
molecule names, residue names, residue numbers, atom names, and elements.
+ @type seq_info_flag: bool
+ @return: The array of atomic coordinates (first
dimension is the model and/or molecule, the second are the atoms, and the third
are the coordinates); a list of unique IDs for each structural object, model,
and molecule; the common list of molecule names (if the seq_info_flag is set);
the common list of residue names (if the seq_info_flag is set); the common list
of residue numbers (if the seq_info_flag is set); the common list of atom names
(if the seq_info_flag is set); the common list of element names (if the
seq_info_flag is set).
+ @rtype: numpy rank-3 float64 array, list of
str, list of str, list of str, list of int, list of str, list of str
"""
# The data pipes to use.
@@ -241,7 +269,7 @@
object_names.append(pipes[pipe_index])
# Call the library method to do all of the work.
- return assemble_coord_array(objects=objects, object_names=object_names,
molecules=molecules, models=models, atom_id=atom_id,
seq_info_flag=seq_info_flag)
+ return assemble_coord_array(objects=objects, object_names=object_names,
molecules=molecules, models=models, atom_id=atom_id, algorithm=algorithm,
matrix=matrix, gap_open_penalty=gap_open_penalty,
gap_extend_penalty=gap_extend_penalty,
end_gap_open_penalty=end_gap_open_penalty,
end_gap_extend_penalty=end_gap_extend_penalty, seq_info_flag=seq_info_flag)
def atomic_fluctuations(pipes=None, models=None, molecules=None, atom_id=None,
measure='distance', file=None, format='text', dir=None, force=False):
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits mailing list
[email protected]
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits