kad-ecoli / tmalign Goto Github PK
View Code? Open in Web Editor NEWThis repo is outdated. Please use https://github.com/pylelab/USalign instead
Home Page: https://github.com/pylelab/USalign
This repo is outdated. Please use https://github.com/pylelab/USalign instead
Home Page: https://github.com/pylelab/USalign
============================================================================== TM-align: protein and RNA structure alignment by TM-score superposition. This program was written by (in reverse chronological order) Chengxin Zhang, Sha Gong, Jianjie Wu, and Jianyi Yang at Yang Zhang lab, Department of Computational Medicine and Bioinformatics, University of Michigan, 100 Washtenaw Ave, Ann Arbor, MI 48109-2218. Please report issues to [email protected] References to cite: S Gong, C Zhang, Y Zhang. Bioinformatics, btz282 (2019) Y Zhang, J Skolnick. Nucl Acids Res 33, 2302-9 (2005) DISCLAIMER: Permission to use, copy, modify, and distribute this program for any purpose, with or without fee, is hereby granted, provided that the notices on the head, the reference information, and this copyright notice appear in all copies or substantial portions of the Software. It is provided "as is" without express or implied warranty. *************** updating history ******************************** 2012/01/24: A C/C++ code of TM-align was constructed by J Yang 2016/05/21: Several updates of this program were made by J Wu, including (1) fixed several compiling bugs (2) made I/O of C/C++ version consistent with the Fortran version (3) added outputs including full-atom and ligand structures (4) added options of '-i', '-I' and '-m' 2016/05/25: fixed a bug on PDB file reading 2018/06/04: Several updates were made by C Zhang, including (1) Fixed bug in reading PDB files with negative residue index, at the expense of the '-o' option now only being able to output superposed structure instead of full rasmol script. (2) Implemented the fTM-align algorithm (by the '-fast' option) as described in R Dong, S Pan, Z Peng, Y Zhang, J Yang (2018) Nucleic acids research. gky430. (3) Included option to perform TM-align against a whole folder of PDB files. A full list of options not available in the Fortran version can be explored by TMalign -h 2018/07/27: Added the -byresi option for TM-score superposition without re-alignment as in TMscore and TMscore -c 2018/08/07: Added the -dir option 2018/08/14: Added the -split option 2018/08/16: Added the -infmt1, -infmt2 options. TMalign can now read .gz and .bz2 compressed files. 2018/10/20: C Zhang and S Gong updated the RNA alignment part of the program. Changes include: (1) new d0 calculation for RNA. (2) secondary structure assignment for RNA. (3) automatic detection of molecule type (protein vs RNA). 2019/01/07: C Zhang added support for PDBx/mmCIF format. 2019/02/09: Fixed asymmetric alignment bug. 2019/03/17: Added the -cp option for circular permutation 2019/03/27: Added the -mirror option for mirror structure alignment 2019/04/25: The RNA-align algorithm was published by Bioinformatics 2019/07/24: Fixed bug in displaying matching residues. Added GDT and MaxSub to TMscore program. 2019/08/18: Prevent excessive circular permutation alignment by -cp. 2020/05/19: Add back rasmol output 2020/12/12: Fixed bug in double precision coordinate mmcif alignment 2021/01/07: Fixed bug in TMscore -c 2021/05/29: Remove unnecessary depedency on malloc.h, which prevent compilation on Mac OS =============================================================================== ========================= How to install TM-align ========================= To compile the program in your Linux computer, simply enter make or g++ -static -O3 -ffast-math -lm -o TMalign TMalign.cpp The '-static' flag should be removed on Mac OS, which does not support building static executables. ===================== How to use TM-align ===================== You can run the program without arguments to obtain a brief instruction ./TMalign structure1.pdb structure2.pdb =================== Fortran version =================== You can download the fortran version of TM-align from https://zhanglab.ccmb.med.umich.edu/TM-align/ This C++ version of TM-align implemented several features not available in the fortran version, including RNA alignment and batch alignment of multiple structures. A full list of available options can be explored by: ./TMalign -h 2021/05/20
TM-align occasionally generate asymmetric alignment. For example,
"TMalign 1x5gA.pdb 2q7nA5.pdb" and "TMalign 2q7nA5.pdb 1x5gA.pdb" does not not generate the same alignment. Similarly, "TMalign 1se9A.pdb 2edpA.pdb" and "TMalign 2edpA.pdb 1se9A.pdb"does not generate the same alignment. I suspect that this is related to the secondary structure intial alignment step. We should check if this is true. If it is, we should generate two pairs of secondary structure alignments (A vs B, and B vs A), and choose the alignment with higher TM-score if these two alignments are not the same.
It will be good to have additional option for TMalign between circularly permuted PDB.
http://sarst.life.nthu.edu.tw/cpdb/
This can be relatively easily implemented by the following steps:
[1] add L/2 adaptor residues at both termini of the longer chain (L).
[2] If the shorter chain (l) has align both adaptors on longer chain, the adaptor with less aligned residues are deleted and a new alignment is re-computed.
TMalign -o should transform the x,y, z only, without destroying any other part of the PDB file. nres causes problem for PDB files with negative residue index.
Line 79 in e547a21
The fallback for lowercase letters in the AAmap function in basic_fun.h does not seem to work properly. The used function "toupper" returns and int. That number is just added (I guess to the memory address) of the constant " " string instead of concatenating the uppercase letter. Have a look at the attached file. AAmap1 mimics the original version, AAmap2 contains a possible fix.
get_PDB_len is unnecessary and expensive. Should instead Read everything in read_PDB as vector and convert it to array later. Currently, I/O is unnecessarily heavy: once for checking file existence, once for estimating chain length, once for reading the CA atoms.
Implement TMscore superposition based only on residue index.
TMalign has ~50 global variables, as declared by global_var.h. Try to change them to local variables, starting from the *_opt variables, to make TMalign easier to be called as a library.
TMalign 3knc_B.pdb 1rna_AB.pdb -atom " C3'"
will throw segment fault.
xyz file reading is very slow. Probably << is not a good way of reading data. Change xyz parser so that it does not perform numerical conversion.
se calculated TM-score and RMSD is not identical to the one directly calculated by TM-align. Check what is going on.
Hello! I want to get the cigar string of alignment. Does procedure TMalign can make it?
Split by model and by chain.
Read pdb.gz, pdb.bz2, best-effort/minimal tarball, SPICKER, xyz format protein structure.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.