diff --git a/cmake_support/CheckLSBTypes.cmake b/cmake_support/CheckLSBTypes.cmake index 93857bfa4967fc8ff6088d0b82b130b9dacb65cd..991a08c83de9700d0b6ee03e78c8641d098b5323 100644 --- a/cmake_support/CheckLSBTypes.cmake +++ b/cmake_support/CheckLSBTypes.cmake @@ -23,11 +23,11 @@ # CoR-Lab, Research Institute for Cognition and Robotics # Bielefeld University -SET(LSB_DISTRIBUTOR_ID "unkown") -SET(LSB_RELEASE "unkown") -SET(LSB_CODENAME "unkown") -SET(LSB_BIT_TYPE "unkown") -SET(LSB_ARCH_TYPE "unkown") +SET(LSB_DISTRIBUTOR_ID "unknown") +SET(LSB_RELEASE "unknown") +SET(LSB_CODENAME "unknown") +SET(LSB_BIT_TYPE "unknown") +SET(LSB_ARCH_TYPE "unknown") # ---- (mgoettin 10/17/2011) TODO: Update this to match all OS ---- SET(LSB_PROCESSOR_ARCH ${CMAKE_SYSTEM_PROCESSOR}) diff --git a/modules/gfx/src/bitmap_io.cc b/modules/gfx/src/bitmap_io.cc index 8437de3975fbeb601727deb904bca4659d24ace9..af47577c250f9217973dd3b1eaefa8a3b81b9689 100644 --- a/modules/gfx/src/bitmap_io.cc +++ b/modules/gfx/src/bitmap_io.cc @@ -152,7 +152,7 @@ Bitmap import_png(const String& filename) channels=png_get_channels(png_ptr,info_ptr); if(channels<1 || channels>4) { - LOG_ERROR("error importing bitmap: " << filename << " has " << channels << " channels, excpected 1-4"); + LOG_ERROR("error importing bitmap: " << filename << " has " << channels << " channels, expected 1-4"); return bm; } diff --git a/modules/gfx/src/povray.cc b/modules/gfx/src/povray.cc index e50c4ad6f32b233eb5ebe026e736676a845b025d..3097db3e3414db41393e3b3a7b9650096433eb18 100644 --- a/modules/gfx/src/povray.cc +++ b/modules/gfx/src/povray.cc @@ -82,7 +82,7 @@ void PovState::write_postamble() pov_ << " /*\n"; pov_ << " This transformation, together with\n"; pov_ << " the camera translation above,\n"; - pov_ << " mimicks the original scene view:\n"; + pov_ << " mimics the original scene view:\n"; pov_ << " 1. translate to center of rotation\n"; pov_ << " 2. apply rotation matrix\n"; pov_ << " 3. apply xy translation (z component is in camera)\n"; diff --git a/modules/gfx/src/scene.cc b/modules/gfx/src/scene.cc index f53323a54302e8f26325048e07cd00084f93b695..a79bee3a3e2e6ef2a0f67a519ab8216fa1395547 100644 --- a/modules/gfx/src/scene.cc +++ b/modules/gfx/src/scene.cc @@ -539,7 +539,7 @@ void Scene::InitGL(bool full) } if(full) { - LOG_DEBUG("Scene: initalizing textures"); + LOG_DEBUG("Scene: initialising textures"); glGenTextures(1,&scene_left_tex_); glGenTextures(1,&scene_right_tex_); glGenTextures(1,&bg_tex_); diff --git a/modules/img/alg/src/conjugate.hh b/modules/img/alg/src/conjugate.hh index 79409ecf57946d39c0095e3ec3e2fe8ce8f2279b..2e2b65bad4a488276a6fc2f9dddaa90d7d6921de 100644 --- a/modules/img/alg/src/conjugate.hh +++ b/modules/img/alg/src/conjugate.hh @@ -42,7 +42,7 @@ void do_conj_ip<Complex>(image_state::ValueHolder<Complex>& vh) } } -// generic case - emtpy +// generic case - empty template <typename V> void do_conj_ip(image_state::ValueHolder<V>& vh) {} diff --git a/modules/img/alg/src/highest_peak_search_3d.cc b/modules/img/alg/src/highest_peak_search_3d.cc index a4a80e78e7e066ef576545a5d9f974bdf587ccc4..99d5d917c3d073f8eb53d802880e7c2a32386c49 100644 --- a/modules/img/alg/src/highest_peak_search_3d.cc +++ b/modules/img/alg/src/highest_peak_search_3d.cc @@ -151,7 +151,7 @@ template <typename T, class D> { ss << " " << (*it); } - LOG_DEBUG("exluded regions:" << ss.str()); + LOG_DEBUG("excluded regions:" << ss.str()); } detail::PeakCollector peak_collector(max_num_peaks_,exclusion_radius_); diff --git a/modules/img/alg/src/histogram.hh b/modules/img/alg/src/histogram.hh index 619a9f845cfc4b825cb55758c24a32e10eb7ac96..4fe930bf4844d03670fb89f6910e8bfa6e4858c7 100644 --- a/modules/img/alg/src/histogram.hh +++ b/modules/img/alg/src/histogram.hh @@ -36,7 +36,7 @@ namespace ost { namespace img { namespace alg { class DLLEXPORT HistogramError: public Error { public: HistogramError(const String& s): - Error(String("A histogram error occured: ") + s) + Error(String("A histogram error occurred: ") + s) {} }; diff --git a/modules/img/alg/tests/test_fft.cc b/modules/img/alg/tests/test_fft.cc index 18f25b236effdd8df370dcc804f998f8e745270e..835dbbbde3ff9f68f9f1deca0d7da315d82e2023 100644 --- a/modules/img/alg/tests/test_fft.cc +++ b/modules/img/alg/tests/test_fft.cc @@ -388,7 +388,7 @@ void Test_DFT(DataType TYPE) std::ostringstream msg; - msg << "fi1 fi2 Extent missmatch: " << fi1.GetExtent() << "!=" << fi2.GetExtent(); + msg << "fi1 fi2 Extent mismatch: " << fi1.GetExtent() << "!=" << fi2.GetExtent(); BOOST_REQUIRE_MESSAGE(fi1.GetExtent()==fi2.GetExtent(),msg.str()); for(ExtentIterator it(fi1.GetExtent());!it.AtEnd();++it) { @@ -401,7 +401,7 @@ void Test_DFT(DataType TYPE) ImageHandle ri3 = fi1.Apply(alg::DFT()); msg.str(""); - msg << "ri1 ri3 Extent missmatch: " << ri3.GetExtent() << "!=" << ri1.GetExtent(); + msg << "ri1 ri3 Extent mismatch: " << ri3.GetExtent() << "!=" << ri1.GetExtent(); BOOST_REQUIRE_MESSAGE(ri3.GetExtent()==ri1.GetExtent(),msg.str()); for(ExtentIterator it(ri3.GetExtent());!it.AtEnd();++it) { diff --git a/modules/img/base/pymod/export_data_algorithm.cc b/modules/img/base/pymod/export_data_algorithm.cc index 167f5c78964deb231f4c9aee3550d9e815e0abec..c984c6d7dfe089e8a101a7e59a77ef49ba8123c1 100644 --- a/modules/img/base/pymod/export_data_algorithm.cc +++ b/modules/img/base/pymod/export_data_algorithm.cc @@ -70,7 +70,7 @@ public: virtual void Visit(ImageHandle& ih) {VisitImage(ih);} virtual void VisitImage(ImageHandle&) { - throw(Error("ModIPAlgorithm Base: VisitImage not overidden")); + throw(Error("ModIPAlgorithm Base: VisitImage not overridden")); } }; @@ -99,7 +99,7 @@ public: virtual void Visit(ImageHandle& ih) const {VisitImage(ih);} virtual void VisitImage(ImageHandle&) const { - throw(Error("ConstModIPAlgorithm Base: VisitImage not overidden")); + throw(Error("ConstModIPAlgorithm Base: VisitImage not overridden")); } }; @@ -129,7 +129,7 @@ public: virtual ImageHandle Visit(const ConstImageHandle& ih) {return VisitImage(ih);} virtual ImageHandle VisitImage(const ConstImageHandle& ih) { - throw(Error("ModOPAlgorithm Base: VisitImage not overidden")); + throw(Error("ModOPAlgorithm Base: VisitImage not overridden")); } }; @@ -158,7 +158,7 @@ public: virtual ImageHandle Visit(const ConstImageHandle& ih) const {return VisitImage(ih);} virtual ImageHandle VisitImage(const ConstImageHandle& ih) const { - throw(Error("ConstModOPAlgorithm Base: VisitImage not overidden")); + throw(Error("ConstModOPAlgorithm Base: VisitImage not overridden")); } }; diff --git a/modules/img/base/src/data_observer.hh b/modules/img/base/src/data_observer.hh index c061a97c3158b5e3facd4c37b2eb65ed0440a6cc..c3f06dc842114898f548ef302dea8a4ca4444aea 100644 --- a/modules/img/base/src/data_observer.hh +++ b/modules/img/base/src/data_observer.hh @@ -36,7 +36,7 @@ namespace ost { namespace img { class DLLEXPORT InvalidObserver: public Error { public: InvalidObserver(const String& s = String("unknown")): - Error(String("InvalidObserver exception occured: ") + s) + Error(String("InvalidObserver exception occurred: ") + s) {} }; diff --git a/modules/img/base/src/extent.hh b/modules/img/base/src/extent.hh index 16978d96ef627ce10328c20f68448549e90844c1..fdff69b7228173ad0c920aa8c6e1c331c2a88824 100644 --- a/modules/img/base/src/extent.hh +++ b/modules/img/base/src/extent.hh @@ -47,7 +47,7 @@ namespace ost { namespace img { struct DLLEXPORT InvalidExtentException: public Error { InvalidExtentException(const String& m= String("") ): - Error(String("an invalid extent occured ("+m+String(")"))) + Error(String("an invalid extent occurred ("+m+String(")"))) {} }; diff --git a/modules/img/base/src/image_handle.hh b/modules/img/base/src/image_handle.hh index 3d7261f9ceafc45b6cdb8b3b044d6ed52bb53fff..c984bc39dbab1bf89b5188124f5caa27053428df 100644 --- a/modules/img/base/src/image_handle.hh +++ b/modules/img/base/src/image_handle.hh @@ -126,7 +126,7 @@ public: //! Creates an empty, ie invalid handle /*! The default ctor is provided for e.g. using ImageHandle in STL containers. Any - attempt to use the interface of an emtpy ImageHandle will throw an + attempt to use the interface of an empty ImageHandle will throw an InvalidImageHandle exception. */ ImageHandle(); diff --git a/modules/io/doc/io.rst b/modules/io/doc/io.rst index 10be9a05532493ccaf23afa06cd49be89a8887a1..39a713dc980ad887052418b4d4b4667fdf83bd4e 100644 --- a/modules/io/doc/io.rst +++ b/modules/io/doc/io.rst @@ -89,12 +89,37 @@ behaviour. To get an entity equivalent to one loaded with :func:`LoadPDB`, set the `profile` and `process` arguments as follows: + .. code-block:: python + + with open('protein.pdb') as pdb_fd: + pdb_str = pdb.read() + ent = io.PDBStrToEntity(pdb_str, ost.io.profiles['DEFAULT'], True) + +Loading Molecular Structures From Remote Repositories +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:func:`LoadPDB` already provides access to selected structural databases in +the internet when enabling the *remote* flag. Predefined +:class:`ost.io.remote.RemoteRepository` objects are available as + .. code-block:: python - with open('protein.pdb') as pdb_fd: - pdb_str = pdb.read() - ent = io.PDBStrToEntity(pdb_str, ost.io.profiles['DEFAULT'], True) + from ost.io import remote + repo_name = 'smtl' + repo = remote.REMOTE_REPOSITORIES.get(repo_name) + + # url for entry with id 1ake.1 + print(repo.URLForID('1ake.1')) + +where *repo_name* can be one of ['pdb', 'cif', 'pdb_redo', 'smtl']. +Instead of explicit access, you can directly fetch data using: + +.. autofunction:: ost.io.remote.RemoteGet + +.. autofunction:: ost.io.remote.RemoteLoad +.. autoclass:: ost.io.remote.RemoteRepository + :members: Saving Molecular Structures ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/modules/io/pymod/remote.py b/modules/io/pymod/remote.py index 42fee8bc76b9fe5a04e9ddac45f6f0fc071128cf..74617994f8a279d63348ced4596b4a48da8d87cb 100644 --- a/modules/io/pymod/remote.py +++ b/modules/io/pymod/remote.py @@ -26,6 +26,19 @@ class RemoteRepository: """ A remote repository represents a structural database accessible through the internet, e.g. the PDB or SWISS-MODEL template library. + + :param name: Name of the repository + :param url_pattern: URL pattern for repository. Required format is described + in :func:`URLForID` + :param type: Data format to expect at resolved URL must be in + ('pdb', 'cif') + :param id_transform: Transformation to apply to ID before resolving URL + in :func:`URLForID`. Must be in ('lower', 'upper') + + :type name: :class:`str` + :type url_pattern: :class:`str` + :type type: :class:`str` + :type id_transform: :class:`str` """ def __init__(self, name, url_pattern, type, id_transform='upper'): self.name = name @@ -36,6 +49,15 @@ class RemoteRepository: self.id_transform = id_transform def URLForID(self, id): + """ + Resolves URL given *url_pattern* and *id_transform* provided at object + initialization. + The *url_pattern* must contain substring '$ID'. Given *id*, the URL to + the structure gets constructed by applying *id_transform* and inserting it + at the location of '$ID'. e.g. 'https://files.rcsb.org/view/$ID.pdb' given + 1ake as *id* and 'upper' as *id_transform* resolves to: + 'https://files.rcsb.org/view/1AKE.pdb' + """ if self.id_transform == 'upper': id = id.upper() if self.id_transform == 'lower': @@ -43,6 +65,13 @@ class RemoteRepository: return self.url_pattern.replace('$ID', id) def Get(self, id): + """ + Resolves URL with :func:`URLForID`, dumps the content in a temporary file + and returns its path. + + :param id: ID to resolve + :type id: :class:`str` + """ remote_url = self.URLForID(id) tmp_file_suffix = '.%s' % self.type if remote_url.endswith('.gz'): @@ -65,6 +94,16 @@ class RemoteRepository: return tmp_file def Load(self, id): + """ + Resolves URL with :func:`URLForID` and directly loads/returns the according + :class:`ost.mol.EntityHandle`. Loading invokes the + :func:`ost.io.LoadPDB`/:func:`ost.io.LoadMMCIF` with default parameterization. If you need + custom settings, you might want to consider to call :func:`Get` and do the + loading manually. + + :param id: ID to resolve + :type id: :class:`str` + """ tmp_file = self.Get(id) if self.type == 'pdb': return LoadPDB(tmp_file.name) @@ -83,12 +122,26 @@ REMOTE_REPOSITORIES = { } def RemoteGet(id, from_repo='pdb'): + """ + Invokes :func:`RemoteRepository.Get` on predefined repositories + ('pdb', 'smtl', 'cif', 'pdb_redo') + + :param from_repo: One of the predefined repositories + :type from_repo: :class:`str` + """ remote_repo = REMOTE_REPOSITORIES.get(from_repo, None) if not remote_repo: raise ValueError('%s is not a valid repository' % from_repo) return remote_repo.Get(id) def RemoteLoad(id, from_repo='pdb'): + """ + Invokes :func:`RemoteRepository.Load` on predefined repositories + ('pdb', 'smtl', 'cif', 'pdb_redo') + + :param from_repo: One of the predefined repositories + :type from_repo: :class:`str` + """ remote_repo = REMOTE_REPOSITORIES.get(from_repo, None) if not remote_repo: raise ValueError('%s is not a valid repository' % from_repo) diff --git a/modules/io/src/img/map_io_dm3_handler.cc b/modules/io/src/img/map_io_dm3_handler.cc index c7b3351ec81e7eb84f3e58a373dbe653e417d8e8..bfae05eb8af54ef29f8c8bb8628f1d8e22dc312a 100644 --- a/modules/io/src/img/map_io_dm3_handler.cc +++ b/modules/io/src/img/map_io_dm3_handler.cc @@ -320,7 +320,7 @@ void DM3Collector::check_image() image_handle_list_.push_back(ih); } else { - LOG_ERROR("missmatch in byte size of data (" + LOG_ERROR("mismatch in byte size of data (" << data_size*type_sizeof(image_number_type_) << " != " << image_data_byte_size_ << "), ignoring this image entry"); } diff --git a/modules/io/src/img/map_io_spi_handler.cc b/modules/io/src/img/map_io_spi_handler.cc index 36a08bb3ae383ec53999f9878ff795ca5d36f3c2..d5b47181e4c8b14a436cef7c0161056260cb686e 100644 --- a/modules/io/src/img/map_io_spi_handler.cc +++ b/modules/io/src/img/map_io_spi_handler.cc @@ -482,7 +482,7 @@ void MapIOSpiHandler::Import(img::MapHandle& mh, std::istream& infile,const Imag detail::header_filler<OST_LITTLE_ENDIAN>(infile, header); break; default: - throw(IOException("unkown byte order")); + throw(IOException("unknown byte order")); break; } @@ -506,7 +506,7 @@ void MapIOSpiHandler::Import(img::MapHandle& mh, std::istream& infile,const Imag detail::real_filler<OST_LITTLE_ENDIAN,float>(infile,header,mh,1.0); break; default: - throw(IOException("unkown byte order")); + throw(IOException("unknown byte order")); break; } diff --git a/modules/io/src/img/map_io_tiff_handler.cc b/modules/io/src/img/map_io_tiff_handler.cc index 5de5b240fb5d0293508ea850044783084bfde6c3..d88fc01d7d55b3b6227da0f8d18054fad3b54d2d 100644 --- a/modules/io/src/img/map_io_tiff_handler.cc +++ b/modules/io/src/img/map_io_tiff_handler.cc @@ -629,7 +629,7 @@ void MapIOTiffHandler::load_image_data(TIFF* tfile, img::ImageHandle& image, co buf = _TIFFmalloc(stripsize); if(image.GetType()==img::WORD) { - LOG_INFO("I/O Tiff: " << "reseting target image to WORD " << image_extent); + LOG_INFO("I/O Tiff: " << "resetting target image to WORD " << image_extent); image.Reset(image_extent, img::WORD, img::SPATIAL); img::image_state::WordSpatialImageState *is = @@ -676,14 +676,14 @@ void MapIOTiffHandler::load_image_data(TIFF* tfile, img::ImageHandle& image, co img::image_state::RealSpatialImageState *isr=0; img::image_state::ComplexSpatialImageState *isc=0; if(fmt==SAMPLEFORMAT_COMPLEXINT || fmt==SAMPLEFORMAT_COMPLEXIEEEFP){ - LOG_INFO("I/O Tiff: " << "reseting target image to complex spatial " << image_extent); + LOG_INFO("I/O Tiff: " << "resetting target image to complex spatial " << image_extent); image.Reset(image_extent,img::COMPLEX,img::SPATIAL); isc = dynamic_cast<img::image_state::ComplexSpatialImageState*>(image.ImageStatePtr().get()); if(!isc) { throw IOException("unexpected failure of dynamic_cast in tiff io"); } }else{ - LOG_INFO("I/O Tiff: " << "reseting target image to Real img::SPATIAL" << image_extent); + LOG_INFO("I/O Tiff: " << "resetting target image to Real img::SPATIAL" << image_extent); image.Reset(image_extent, img::REAL, img::SPATIAL); isr= dynamic_cast<img::image_state::RealSpatialImageState*>(image.ImageStatePtr().get()); diff --git a/modules/io/src/mol/dcd_io.cc b/modules/io/src/mol/dcd_io.cc index ec31b4bbf88694f714854645845557c42485a1e2..d70074433c734815669a84c178d4168b1f7b2e0d 100644 --- a/modules/io/src/mol/dcd_io.cc +++ b/modules/io/src/mol/dcd_io.cc @@ -267,7 +267,7 @@ mol::CoordGroupHandle load_dcd(const mol::AtomHandleList& alist, // this atom li bool swap_flag=false, ucell_flag=false, gap_flag=false; read_dcd_header(istream, header, swap_flag, ucell_flag, gap_flag, detect_swap, byte_swap); if(alist.size() != static_cast<size_t>(header.t_atom_count)) { - LOG_ERROR("LoadCHARMMTraj: atom count missmatch: " << alist.size() + LOG_ERROR("LoadCHARMMTraj: atom count mismatch: " << alist.size() << " in coordinate file, " << header.t_atom_count << " in each traj frame"); throw(IOException("invalid trajectory")); diff --git a/modules/io/src/mol/load_entity.cc b/modules/io/src/mol/load_entity.cc index a9d34c3eb26030bd00a7facf485d70423056af8d..c35010927ca7bf14f3eb85e3ba6bcea9f6c8d871 100644 --- a/modules/io/src/mol/load_entity.cc +++ b/modules/io/src/mol/load_entity.cc @@ -55,7 +55,7 @@ void Import(mol::EntityHandle& eh, const String& filename, const String& format) mol::EntityHandle LoadEntity(const String& filename, const String& format) { - LOG_DEBUG("creating emtpy entity"); + LOG_DEBUG("creating empty entity"); mol::EntityHandle eh=mol::CreateEntity(); mol::XCSEditor xcs_lock=eh.EditXCS(mol::BUFFERED_EDIT); Import(eh, filename, format); diff --git a/modules/io/src/mol/mmcif_reader.hh b/modules/io/src/mol/mmcif_reader.hh index 925dfde23b3362612a3fe63d5e0f04e6ff6c2df7..9147a234c4f4966b4ac861f45c48f0a2e7bee829 100644 --- a/modules/io/src/mol/mmcif_reader.hh +++ b/modules/io/src/mol/mmcif_reader.hh @@ -232,7 +232,7 @@ protected: const MMCifInfoStructRefs& GetStructRefs() const { return struct_refs_; } /// \brief convert the seqres data item to canonical form. /// - /// The seqres sequence lists non-standard residues in paranthesis. For + /// The seqres sequence lists non-standard residues in parenthesis. For /// proper handling of our sequence classes, these need to be converted to /// one-letter-codes. Ideally, we would use the canonical SEQRES. This is /// not possible, however, since the PDB assigns multiple one letter codes diff --git a/modules/mol/alg/pymod/wrap_mol_alg.cc b/modules/mol/alg/pymod/wrap_mol_alg.cc index f00a537c59bd0e9a360b005ca66f19efda0367f7..fd5b6d94de273dc57317e270d58596534fb5131f 100644 --- a/modules/mol/alg/pymod/wrap_mol_alg.cc +++ b/modules/mol/alg/pymod/wrap_mol_alg.cc @@ -30,6 +30,7 @@ #include <ost/mol/alg/consistency_checks.hh> #include <ost/mol/alg/pdbize.hh> #include <ost/mol/alg/contact_overlap.hh> +#include <ost/mol/alg/construct_cbeta.hh> #include <ost/export_helper/pair_to_tuple_conv.hh> #include <ost/export_helper/vec_to_list_conv.hh> @@ -294,6 +295,15 @@ void print_lddt_per_residue_stats_wrapper(list& scores, bool structural_checks, return mol::alg::PrintlDDTPerResidueStats(scores_vector, structural_checks, cutoffs_size); } + +geom::Vec3 cbeta_vectors(const geom::Vec3& n_pos, const geom::Vec3& ca_pos, + const geom::Vec3& c_pos, Real l) { + return mol::alg::CBetaPosition(n_pos, ca_pos, c_pos, l); +} + +geom::Vec3 cbeta_residue(const ost::mol::ResidueHandle& r, Real l) { + return mol::alg::CBetaPosition(r, l); +} } @@ -529,4 +539,10 @@ BOOST_PYTHON_MODULE(_ost_mol_alg) def("DRMSD",&mol::alg::DRMSD,(arg("view"),arg("distance_list"), arg("cap_distance")=5.0,arg("sequence_separation")=0)); + def("CBetaPosition", &cbeta_vectors, (arg("n_pos"), arg("ca_pos"), + arg("c_pos"), arg("l")=1.5)); + def("CBetaPosition", &cbeta_residue, (arg("r"), arg("l") = 1.5)); + + def("ConstructCBetas", &mol::alg::ConstructCBetas, (arg("ent"), + arg("include_gly")=false)); } diff --git a/modules/mol/alg/src/local_dist_diff_test.hh b/modules/mol/alg/src/local_dist_diff_test.hh index 794c671e06039c132f3f20bdeac9cc2e564a44a6..41ebf09ac800acf8242295361a6cb877a85315f7 100644 --- a/modules/mol/alg/src/local_dist_diff_test.hh +++ b/modules/mol/alg/src/local_dist_diff_test.hh @@ -214,7 +214,7 @@ GlobalRDMap DLLEXPORT_OST_MOL_ALG CreateDistanceList(const EntityView& ref,Real /// /// If a distance between two atoms is shorter than the inclusion radius in all structures in which the two atoms are /// present, it is included in the list. However, if the distance is longer than the inclusion radius in at least one -/// of the structures, it is not be considered a local interaction and is exluded from the list +/// of the structures, it is not be considered a local interaction and is excluded from the list /// /// The function takes care of residues with ambigous symmetric sidechains. To decide which naming convention to use, the functions /// computes a local distance score of each reference structure with the first reference structure in the list, using only non ambigously-named atoms. diff --git a/modules/mol/base/pymod/export_editors.cc b/modules/mol/base/pymod/export_editors.cc index 3c5ab790008016ce376da1f353ea9a5fbd4b71c9..e20ee4d4e11b5b8e7b658926667cb85005c2c5e2 100644 --- a/modules/mol/base/pymod/export_editors.cc +++ b/modules/mol/base/pymod/export_editors.cc @@ -123,7 +123,7 @@ void set_pos2_t(XCSEditor& e, const AtomHandleList& alist, object pyobj) PyArrayObject* na=reinterpret_cast<PyArrayObject*>(pyobj.ptr()); if(PyArray_NDIM(na)!=2 || PyArray_DIM(na,0)!=int(acount) || PyArray_DIM(na,1)!=3) { - throw Error("excpected a numpy array of shape (NAtoms, 3)"); + throw Error("expected a numpy array of shape (NAtoms, 3)"); return; } diff --git a/modules/mol/base/src/coord_frame.cc b/modules/mol/base/src/coord_frame.cc index 8fb7a39cfcecaab0c161c76ec2dbd671077c97c3..582e6711012dcbb7f1569a9e1cb4c649ba363a0e 100644 --- a/modules/mol/base/src/coord_frame.cc +++ b/modules/mol/base/src/coord_frame.cc @@ -289,7 +289,7 @@ namespace ost { namespace mol { throw Error("not same numbers of CA, C, O and N atoms in the selection"); } if (n_atoms<=5){ - throw Error("At least five residues are needed to calulate an alpha helix similarity"); + throw Error("At least five residues are needed to calculate an alpha helix similarity"); } c=(*this)[indices_c[0]]; n_next=(*this)[indices_n[1]]; diff --git a/modules/mol/base/src/impl/entity_impl.cc b/modules/mol/base/src/impl/entity_impl.cc index db0731f27583d9bc499183e56c65464188a4037d..c15489bed172612a51904f1061e9b4ba009ee576 100644 --- a/modules/mol/base/src/impl/entity_impl.cc +++ b/modules/mol/base/src/impl/entity_impl.cc @@ -544,7 +544,7 @@ void EntityImpl::TraceDirectionality() { fragment_list_.clear(); Profile profile_trace("trace directionality"); - // some reseting on the atom level + // some resetting on the atom level for(AtomImplMap::iterator it=atom_map_.begin();it!=atom_map_.end();++it) { it->second->ClearDirectionality(); it->second->SetVisited(false); diff --git a/modules/mol/base/src/impl/query_impl.cc b/modules/mol/base/src/impl/query_impl.cc index a7c2cfb95c495362e1e04b104499fb109ef90263..f5842a7492cddc841c2685dc1ed9c4413da3d760 100644 --- a/modules/mol/base/src/impl/query_impl.cc +++ b/modules/mol/base/src/impl/query_impl.cc @@ -797,7 +797,7 @@ Node* QueryImpl::ParseParenSubExpr(QueryLexer& lexer) { QueryToken end_paren=lexer.CurrentToken(); if (end_paren.GetType()!=tok::RightParen) { delete n; - error_desc_.msg="unmatched paranthesis in query string"; + error_desc_.msg="unmatched parenthesis in query string"; error_desc_.range=paren_token.GetRange(); return NULL; } else { diff --git a/modules/mol/base/src/query_error.hh b/modules/mol/base/src/query_error.hh index c8a092cc9c073cf5f217db4294b51cc32bf46f45..56cfb21db1b516ae227387f3d70c8fc5722c90e8 100644 --- a/modules/mol/base/src/query_error.hh +++ b/modules/mol/base/src/query_error.hh @@ -45,7 +45,7 @@ public: //! Get error description. const String& GetMessage()const throw(); - // Get range of where the error occured + // Get range of where the error occurred const Range& GetRange() const; //! Get nicely formatted error message diff --git a/modules/seq/alg/src/data/BLOSUM100 b/modules/seq/alg/src/data/BLOSUM100 new file mode 100644 index 0000000000000000000000000000000000000000..46e9e851608adcec2ccd8906f5c10b8555714959 --- /dev/null +++ b/modules/seq/alg/src/data/BLOSUM100 @@ -0,0 +1,31 @@ +# Matrix made by matblas from blosum100_3.iij +# * column uses minimum score +# BLOSUM Clustered Scoring Matrix in 1/3 Bit Units +# Blocks Database = /data/blocks_5.0/blocks.dat +# Cluster Percentage: >= 100 +# Entropy = 1.4516, Expected = -1.0948 + A R N D C Q E G H I L K M F P S T W Y V B Z X * +A 8 -3 -4 -5 -2 -2 -3 -1 -4 -4 -4 -2 -3 -5 -2 1 -1 -6 -5 -2 -4 -2 -2 -10 +R -3 10 -2 -5 -8 0 -2 -6 -1 -7 -6 3 -4 -6 -5 -3 -3 -7 -5 -6 -4 -1 -3 -10 +N -4 -2 11 1 -5 -1 -2 -2 0 -7 -7 -1 -5 -7 -5 0 -1 -8 -5 -7 5 -2 -3 -10 +D -5 -5 1 10 -8 -2 2 -4 -3 -8 -8 -3 -8 -8 -5 -2 -4 -10 -7 -8 6 0 -4 -10 +C -2 -8 -5 -8 14 -7 -9 -7 -8 -3 -5 -8 -4 -4 -8 -3 -3 -7 -6 -3 -7 -8 -5 -10 +Q -2 0 -1 -2 -7 11 2 -5 1 -6 -5 2 -2 -6 -4 -2 -3 -5 -4 -5 -2 5 -2 -10 +E -3 -2 -2 2 -9 2 10 -6 -2 -7 -7 0 -5 -8 -4 -2 -3 -8 -7 -5 0 7 -3 -10 +G -1 -6 -2 -4 -7 -5 -6 9 -6 -9 -8 -5 -7 -8 -6 -2 -5 -7 -8 -8 -3 -5 -4 -10 +H -4 -1 0 -3 -8 1 -2 -6 13 -7 -6 -3 -5 -4 -5 -3 -4 -5 1 -7 -2 -1 -4 -10 +I -4 -7 -7 -8 -3 -6 -7 -9 -7 8 2 -6 1 -2 -7 -5 -3 -6 -4 4 -8 -7 -3 -10 +L -4 -6 -7 -8 -5 -5 -7 -8 -6 2 8 -6 3 0 -7 -6 -4 -5 -4 0 -8 -6 -3 -10 +K -2 3 -1 -3 -8 2 0 -5 -3 -6 -6 10 -4 -6 -3 -2 -3 -8 -5 -5 -2 0 -3 -10 +M -3 -4 -5 -8 -4 -2 -5 -7 -5 1 3 -4 12 -1 -5 -4 -2 -4 -5 0 -7 -4 -3 -10 +F -5 -6 -7 -8 -4 -6 -8 -8 -4 -2 0 -6 -1 11 -7 -5 -5 0 4 -3 -7 -7 -4 -10 +P -2 -5 -5 -5 -8 -4 -4 -6 -5 -7 -7 -3 -5 -7 12 -3 -4 -8 -7 -6 -5 -4 -4 -10 +S 1 -3 0 -2 -3 -2 -2 -2 -3 -5 -6 -2 -4 -5 -3 9 2 -7 -5 -4 -1 -2 -2 -10 +T -1 -3 -1 -4 -3 -3 -3 -5 -4 -3 -4 -3 -2 -5 -4 2 9 -7 -5 -1 -2 -3 -2 -10 +W -6 -7 -8 -10 -7 -5 -8 -7 -5 -6 -5 -8 -4 0 -8 -7 -7 17 2 -5 -9 -7 -6 -10 +Y -5 -5 -5 -7 -6 -4 -7 -8 1 -4 -4 -5 -5 4 -7 -5 -5 2 12 -5 -6 -6 -4 -10 +V -2 -6 -7 -8 -3 -5 -5 -8 -7 4 0 -5 0 -3 -6 -4 -1 -5 -5 8 -7 -5 -3 -10 +B -4 -4 5 6 -7 -2 0 -3 -2 -8 -8 -2 -7 -7 -5 -1 -2 -9 -6 -7 6 0 -4 -10 +Z -2 -1 -2 0 -8 5 7 -5 -1 -7 -6 0 -4 -7 -4 -2 -3 -7 -6 -5 0 6 -2 -10 +X -2 -3 -3 -4 -5 -2 -3 -4 -4 -3 -3 -3 -3 -4 -4 -2 -2 -6 -4 -3 -4 -2 -3 -10 +* -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 1 diff --git a/modules/seq/alg/src/data/BLOSUM45 b/modules/seq/alg/src/data/BLOSUM45 new file mode 100644 index 0000000000000000000000000000000000000000..18c3323896f4f802558e6eda688f467a582a3d5e --- /dev/null +++ b/modules/seq/alg/src/data/BLOSUM45 @@ -0,0 +1,31 @@ +# Matrix made by matblas from blosum45.iij +# * column uses minimum score +# BLOSUM Clustered Scoring Matrix in 1/3 Bit Units +# Blocks Database = /data/blocks_5.0/blocks.dat +# Cluster Percentage: >= 45 +# Entropy = 0.3795, Expected = -0.2789 + A R N D C Q E G H I L K M F P S T W Y V B Z X * +A 5 -2 -1 -2 -1 -1 -1 0 -2 -1 -1 -1 -1 -2 -1 1 0 -2 -2 0 -1 -1 0 -5 +R -2 7 0 -1 -3 1 0 -2 0 -3 -2 3 -1 -2 -2 -1 -1 -2 -1 -2 -1 0 -1 -5 +N -1 0 6 2 -2 0 0 0 1 -2 -3 0 -2 -2 -2 1 0 -4 -2 -3 4 0 -1 -5 +D -2 -1 2 7 -3 0 2 -1 0 -4 -3 0 -3 -4 -1 0 -1 -4 -2 -3 5 1 -1 -5 +C -1 -3 -2 -3 12 -3 -3 -3 -3 -3 -2 -3 -2 -2 -4 -1 -1 -5 -3 -1 -2 -3 -2 -5 +Q -1 1 0 0 -3 6 2 -2 1 -2 -2 1 0 -4 -1 0 -1 -2 -1 -3 0 4 -1 -5 +E -1 0 0 2 -3 2 6 -2 0 -3 -2 1 -2 -3 0 0 -1 -3 -2 -3 1 4 -1 -5 +G 0 -2 0 -1 -3 -2 -2 7 -2 -4 -3 -2 -2 -3 -2 0 -2 -2 -3 -3 -1 -2 -1 -5 +H -2 0 1 0 -3 1 0 -2 10 -3 -2 -1 0 -2 -2 -1 -2 -3 2 -3 0 0 -1 -5 +I -1 -3 -2 -4 -3 -2 -3 -4 -3 5 2 -3 2 0 -2 -2 -1 -2 0 3 -3 -3 -1 -5 +L -1 -2 -3 -3 -2 -2 -2 -3 -2 2 5 -3 2 1 -3 -3 -1 -2 0 1 -3 -2 -1 -5 +K -1 3 0 0 -3 1 1 -2 -1 -3 -3 5 -1 -3 -1 -1 -1 -2 -1 -2 0 1 -1 -5 +M -1 -1 -2 -3 -2 0 -2 -2 0 2 2 -1 6 0 -2 -2 -1 -2 0 1 -2 -1 -1 -5 +F -2 -2 -2 -4 -2 -4 -3 -3 -2 0 1 -3 0 8 -3 -2 -1 1 3 0 -3 -3 -1 -5 +P -1 -2 -2 -1 -4 -1 0 -2 -2 -2 -3 -1 -2 -3 9 -1 -1 -3 -3 -3 -2 -1 -1 -5 +S 1 -1 1 0 -1 0 0 0 -1 -2 -3 -1 -2 -2 -1 4 2 -4 -2 -1 0 0 0 -5 +T 0 -1 0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -1 -1 2 5 -3 -1 0 0 -1 0 -5 +W -2 -2 -4 -4 -5 -2 -3 -2 -3 -2 -2 -2 -2 1 -3 -4 -3 15 3 -3 -4 -2 -2 -5 +Y -2 -1 -2 -2 -3 -1 -2 -3 2 0 0 -1 0 3 -3 -2 -1 3 8 -1 -2 -2 -1 -5 +V 0 -2 -3 -3 -1 -3 -3 -3 -3 3 1 -2 1 0 -3 -1 0 -3 -1 5 -3 -3 -1 -5 +B -1 -1 4 5 -2 0 1 -1 0 -3 -3 0 -2 -3 -2 0 0 -4 -2 -3 4 2 -1 -5 +Z -1 0 0 1 -3 4 4 -2 0 -3 -2 1 -1 -3 -1 0 -1 -2 -2 -3 2 4 -1 -5 +X 0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 -2 -1 -1 -1 -1 -1 -5 +* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 1 diff --git a/modules/seq/alg/src/data/BLOSUM62 b/modules/seq/alg/src/data/BLOSUM62 new file mode 100644 index 0000000000000000000000000000000000000000..205f139aa2f8c879f6426708fe316be8bf55f771 --- /dev/null +++ b/modules/seq/alg/src/data/BLOSUM62 @@ -0,0 +1,31 @@ +# Matrix made by matblas from blosum62.iij +# * column uses minimum score +# BLOSUM Clustered Scoring Matrix in 1/2 Bit Units +# Blocks Database = /data/blocks_5.0/blocks.dat +# Cluster Percentage: >= 62 +# Entropy = 0.6979, Expected = -0.5209 + A R N D C Q E G H I L K M F P S T W Y V B Z X * +A 4 -1 -2 -2 0 -1 -1 0 -2 -1 -1 -1 -1 -2 -1 1 0 -3 -2 0 -2 -1 0 -4 +R -1 5 0 -2 -3 1 0 -2 0 -3 -2 2 -1 -3 -2 -1 -1 -3 -2 -3 -1 0 -1 -4 +N -2 0 6 1 -3 0 0 0 1 -3 -3 0 -2 -3 -2 1 0 -4 -2 -3 3 0 -1 -4 +D -2 -2 1 6 -3 0 2 -1 -1 -3 -4 -1 -3 -3 -1 0 -1 -4 -3 -3 4 1 -1 -4 +C 0 -3 -3 -3 9 -3 -4 -3 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -2 -4 +Q -1 1 0 0 -3 5 2 -2 0 -3 -2 1 0 -3 -1 0 -1 -2 -1 -2 0 3 -1 -4 +E -1 0 0 2 -4 2 5 -2 0 -3 -3 1 -2 -3 -1 0 -1 -3 -2 -2 1 4 -1 -4 +G 0 -2 0 -1 -3 -2 -2 6 -2 -4 -4 -2 -3 -3 -2 0 -2 -2 -3 -3 -1 -2 -1 -4 +H -2 0 1 -1 -3 0 0 -2 8 -3 -3 -1 -2 -1 -2 -1 -2 -2 2 -3 0 0 -1 -4 +I -1 -3 -3 -3 -1 -3 -3 -4 -3 4 2 -3 1 0 -3 -2 -1 -3 -1 3 -3 -3 -1 -4 +L -1 -2 -3 -4 -1 -2 -3 -4 -3 2 4 -2 2 0 -3 -2 -1 -2 -1 1 -4 -3 -1 -4 +K -1 2 0 -1 -3 1 1 -2 -1 -3 -2 5 -1 -3 -1 0 -1 -3 -2 -2 0 1 -1 -4 +M -1 -1 -2 -3 -1 0 -2 -3 -2 1 2 -1 5 0 -2 -1 -1 -1 -1 1 -3 -1 -1 -4 +F -2 -3 -3 -3 -2 -3 -3 -3 -1 0 0 -3 0 6 -4 -2 -2 1 3 -1 -3 -3 -1 -4 +P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4 7 -1 -1 -4 -3 -2 -2 -1 -2 -4 +S 1 -1 1 0 -1 0 0 0 -1 -2 -2 0 -1 -2 -1 4 1 -3 -2 -2 0 0 0 -4 +T 0 -1 0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1 1 5 -2 -2 0 -1 -1 0 -4 +W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1 1 -4 -3 -2 11 2 -3 -4 -3 -2 -4 +Y -2 -2 -2 -3 -2 -1 -2 -3 2 -1 -1 -2 -1 3 -3 -2 -2 2 7 -1 -3 -2 -1 -4 +V 0 -3 -3 -3 -1 -2 -2 -3 -3 3 1 -2 1 -1 -2 -2 0 -3 -1 4 -3 -2 -1 -4 +B -2 -1 3 4 -3 0 1 -1 0 -3 -4 0 -3 -3 -2 0 -1 -4 -3 -3 4 1 -1 -4 +Z -1 0 0 1 -3 3 4 -2 0 -3 -3 1 -1 -3 -1 0 -1 -3 -2 -2 1 4 -1 -4 +X 0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 0 0 -2 -1 -1 -1 -1 -1 -4 +* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 1 diff --git a/modules/seq/alg/src/data/BLOSUM80 b/modules/seq/alg/src/data/BLOSUM80 new file mode 100644 index 0000000000000000000000000000000000000000..78172a3592b5322c5e9429e2e4661dc5c374d9eb --- /dev/null +++ b/modules/seq/alg/src/data/BLOSUM80 @@ -0,0 +1,31 @@ +# Matrix made by matblas from blosum80_3.iij +# * column uses minimum score +# BLOSUM Clustered Scoring Matrix in 1/3 Bit Units +# Blocks Database = /data/blocks_5.0/blocks.dat +# Cluster Percentage: >= 80 +# Entropy = 0.9868, Expected = -0.7442 + A R N D C Q E G H I L K M F P S T W Y V B Z X * +A 7 -3 -3 -3 -1 -2 -2 0 -3 -3 -3 -1 -2 -4 -1 2 0 -5 -4 -1 -3 -2 -1 -8 +R -3 9 -1 -3 -6 1 -1 -4 0 -5 -4 3 -3 -5 -3 -2 -2 -5 -4 -4 -2 0 -2 -8 +N -3 -1 9 2 -5 0 -1 -1 1 -6 -6 0 -4 -6 -4 1 0 -7 -4 -5 5 -1 -2 -8 +D -3 -3 2 10 -7 -1 2 -3 -2 -7 -7 -2 -6 -6 -3 -1 -2 -8 -6 -6 6 1 -3 -8 +C -1 -6 -5 -7 13 -5 -7 -6 -7 -2 -3 -6 -3 -4 -6 -2 -2 -5 -5 -2 -6 -7 -4 -8 +Q -2 1 0 -1 -5 9 3 -4 1 -5 -4 2 -1 -5 -3 -1 -1 -4 -3 -4 -1 5 -2 -8 +E -2 -1 -1 2 -7 3 8 -4 0 -6 -6 1 -4 -6 -2 -1 -2 -6 -5 -4 1 6 -2 -8 +G 0 -4 -1 -3 -6 -4 -4 9 -4 -7 -7 -3 -5 -6 -5 -1 -3 -6 -6 -6 -2 -4 -3 -8 +H -3 0 1 -2 -7 1 0 -4 12 -6 -5 -1 -4 -2 -4 -2 -3 -4 3 -5 -1 0 -2 -8 +I -3 -5 -6 -7 -2 -5 -6 -7 -6 7 2 -5 2 -1 -5 -4 -2 -5 -3 4 -6 -6 -2 -8 +L -3 -4 -6 -7 -3 -4 -6 -7 -5 2 6 -4 3 0 -5 -4 -3 -4 -2 1 -7 -5 -2 -8 +K -1 3 0 -2 -6 2 1 -3 -1 -5 -4 8 -3 -5 -2 -1 -1 -6 -4 -4 -1 1 -2 -8 +M -2 -3 -4 -6 -3 -1 -4 -5 -4 2 3 -3 9 0 -4 -3 -1 -3 -3 1 -5 -3 -2 -8 +F -4 -5 -6 -6 -4 -5 -6 -6 -2 -1 0 -5 0 10 -6 -4 -4 0 4 -2 -6 -6 -3 -8 +P -1 -3 -4 -3 -6 -3 -2 -5 -4 -5 -5 -2 -4 -6 12 -2 -3 -7 -6 -4 -4 -2 -3 -8 +S 2 -2 1 -1 -2 -1 -1 -1 -2 -4 -4 -1 -3 -4 -2 7 2 -6 -3 -3 0 -1 -1 -8 +T 0 -2 0 -2 -2 -1 -2 -3 -3 -2 -3 -1 -1 -4 -3 2 8 -5 -3 0 -1 -2 -1 -8 +W -5 -5 -7 -8 -5 -4 -6 -6 -4 -5 -4 -6 -3 0 -7 -6 -5 16 3 -5 -8 -5 -5 -8 +Y -4 -4 -4 -6 -5 -3 -5 -6 3 -3 -2 -4 -3 4 -6 -3 -3 3 11 -3 -5 -4 -3 -8 +V -1 -4 -5 -6 -2 -4 -4 -6 -5 4 1 -4 1 -2 -4 -3 0 -5 -3 7 -6 -4 -2 -8 +B -3 -2 5 6 -6 -1 1 -2 -1 -6 -7 -1 -5 -6 -4 0 -1 -8 -5 -6 6 0 -3 -8 +Z -2 0 -1 1 -7 5 6 -4 0 -6 -5 1 -3 -6 -2 -1 -2 -5 -4 -4 0 6 -1 -8 +X -1 -2 -2 -3 -4 -2 -2 -3 -2 -2 -2 -2 -2 -3 -3 -1 -1 -5 -3 -2 -3 -1 -2 -8 +* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 1 diff --git a/modules/seq/alg/src/data/generate_blosum_data.py b/modules/seq/alg/src/data/generate_blosum_data.py new file mode 100644 index 0000000000000000000000000000000000000000..cb0dc1f607826ee223dd63b9b02d914dc9c317ff --- /dev/null +++ b/modules/seq/alg/src/data/generate_blosum_data.py @@ -0,0 +1,47 @@ +# code generation for subst_weight_matrix.cc +# loads BLOSUM substitution matrices from files provided by NCBI at: +# ftp://ftp.ncbi.nlm.nih.gov/blast/matrices/ + +def Generate(filename, matrix_name): + + with open(filename) as f: + data = f.readlines() + + scores = dict() + olcs = None + for line in data: + if line.startswith('#'): + continue + if olcs is None: + if " A " in line and " R " in line and " N " in line: + # very high likelihood that this line contains the olcs + olcs = line.strip().split() + continue + split_line = line.strip().split() + if split_line[0] in olcs: + olc = split_line[0] + for score_idx, score in enumerate(split_line[1:]): + scores[(olc, olcs[score_idx])] = score + + ost_olcs = "ABCDEFGHIKLMNPQRSTVWXYZ" + print("short %s[23][23]={"%(matrix_name)) + for a in ost_olcs: + score_string = "" + for b in ost_olcs: + score = scores[(a,b)] + if len(score_string) == 0: + entry = [' ', ' '] + else: + entry = [',', ' ', ' ', ' '] + for i in range(len(score)): + entry[-1-i] = score[-1-i] + score_string += ''.join(entry) + print(" {%s},"%(score_string)) + print("};") + print() + +Generate("BLOSUM45", "RAW_BLOSUM45_DATA") +Generate("BLOSUM62", "RAW_BLOSUM62_DATA") +Generate("BLOSUM80", "RAW_BLOSUM80_DATA") +Generate("BLOSUM100", "RAW_BLOSUM100_DATA") + diff --git a/modules/seq/alg/src/subst_weight_matrix.cc b/modules/seq/alg/src/subst_weight_matrix.cc index 8f05ba92c28a2b5732dc73e4a514b052c953662e..f382e4f8edeb423938d6b3b4a0f9c6dcef629efe 100644 --- a/modules/seq/alg/src/subst_weight_matrix.cc +++ b/modules/seq/alg/src/subst_weight_matrix.cc @@ -23,6 +23,9 @@ namespace{ +// The data for the following matrices can be reproduced by running generate_blosum_data.py +// in OST_SOURCE/modules/seq/alg/src/data + short RAW_BLOSUM45_DATA[23][23]={ { 5, -1, -1, -2, -1, -2, 0, -2, -1, -1, -1, -1, -1, -1, -1, -2, 1, 0, 0, -2, 0, -2, -1}, {-1, 4, -2, 5, 1, -3, -1, 0, -3, 0, -3, -2, 4, -2, 0, -1, 0, 0, -3, -4, -1, -2, 2}, @@ -48,7 +51,7 @@ short RAW_BLOSUM45_DATA[23][23]={ {-2, -2, -3, -2, -2, 3, -3, 2, 0, -1, 0, 0, -2, -3, -1, -1, -2, -1, -1, 3, -1, 8, -2}, {-1, 2, -3, 1, 4, -3, -2, 0, -3, 1, -2, -1, 0, -1, 4, 0, 0, -1, -3, -2, -1, -2, 4}, }; - + short RAW_BLOSUM62_DATA[23][23]={ { 4, -2, 0, -2, -1, -2, 0, -2, -1, -1, -1, -1, -2, -1, -1, -1, 1, 0, 0, -3, 0, -2, -1}, {-2, 4, -3, 4, 1, -3, -1, 0, -3, 0, -4, -3, 3, -2, 0, -1, 0, -1, -3, -4, -1, -3, 1}, @@ -121,7 +124,7 @@ short RAW_BLOSUM100_DATA[23][23]={ { 1, -1, -3, -2, -2, -5, -2, -3, -5, -2, -6, -4, 0, -3, -2, -3, 9, 2, -4, -7, -2, -5, -2}, {-1, -2, -3, -4, -3, -5, -5, -4, -3, -3, -4, -2, -1, -4, -3, -3, 2, 9, -1, -7, -2, -5, -3}, {-2, -7, -3, -8, -5, -3, -8, -7, 4, -5, 0, 0, -7, -6, -5, -6, -4, -1, 8, -5, -3, -5, -5}, - {-6, -9, -7, 10, -8, 0, -7, -5, -6, -8, -5, -4, -8, -8, -5, -7, -7, -7, -5, 17, -6, 2, -7}, + {-6, -9, -7,-10, -8, 0, -7, -5, -6, -8, -5, -4, -8, -8, -5, -7, -7, -7, -5, 17, -6, 2, -7}, {-2, -4, -5, -4, -3, -4, -4, -4, -3, -3, -3, -3, -3, -4, -2, -3, -2, -2, -3, -6, -3, -4, -2}, {-5, -6, -6, -7, -7, 4, -8, 1, -4, -5, -4, -5, -5, -7, -4, -5, -5, -5, -5, 2, -4, 12, -6}, {-2, 0, -8, 0, 7, -7, -5, -1, -7, 0, -6, -4, -2, -4, 5, -1, -2, -3, -5, -7, -2, -6, 6}, diff --git a/scripts/bump-version.py b/scripts/bump-version.py index 361e7877258e6954c7f267931908d6016ff8f216..25873539b389ad80b481086c7f23e50751e637ce 100755 --- a/scripts/bump-version.py +++ b/scripts/bump-version.py @@ -42,6 +42,6 @@ lines = open(vfile).readlines() for i, line in enumerate(lines): if line.startswith("From: registry.scicore.unibas.ch/schwede/openstructure:"): lines[i] = 'From: registry.scicore.unibas.ch/schwede/openstructure:'+\ - '"%s"' % version_string + '%s' % version_string break open(vfile, "w").writelines(lines) diff --git a/scripts/ost_config.in b/scripts/ost_config.in index c8a170a32867eca70cac323aaf723f38f9d0a49a..b3e253c5c5e24fe424851d9ab7a5e68cc73237d4 100644 --- a/scripts/ost_config.in +++ b/scripts/ost_config.in @@ -69,7 +69,7 @@ if [ -n "$DNG_PROFILE" ]; then echo "Profiling activated using cProfile" pyexec="$pyexec#-m#cProfile#-s#cumulative#--" else - echo "Profiling deactivated due to unkown profiler" + echo "Profiling deactivated due to unknown profiler" fi fi diff --git a/singularity/Singularity b/singularity/Singularity index 222fe694ea6657a943ed386ba0e8e078653c589f..9e445f865b89d6e3e1501eb2847720ca868b8005 100644 --- a/singularity/Singularity +++ b/singularity/Singularity @@ -1,5 +1,5 @@ BootStrap: docker -From: registry.scicore.unibas.ch/schwede/openstructure:"2.0.0" +From: registry.scicore.unibas.ch/schwede/openstructure:2.0.0-bionic %post ##############################################################################