diff --git a/examples/demos/conservation.py b/examples/demos/conservation.py index 8ecce056648e082f70cd4f16f6ea5b7cd0ab3077..b2e206c126e32543bc297508aa6bca5740b4b7f4 100644 --- a/examples/demos/conservation.py +++ b/examples/demos/conservation.py @@ -7,7 +7,7 @@ m=io.LoadPDB('data/sh2.pdb') mp=m.Select('ishetatm=false') aln=io.LoadAlignment('data/sh2.aln') aln.AttachView(0, mp) - +aln.SetSequenceOffset(0, 1) #------------------------------------------------------------------------------- # Calculate conservation of alignment # First we set all properties to zero, then let alg.Conservation assign the @@ -27,12 +27,12 @@ scene.Add(gs) scene.Add(g) scene.CenterOn(g) -s.Attach(mp.Select('ishetatm=false'), 5.0) +s.Attach(mp.Select('ishetatm=false'), 8.0) gr=gfx.Gradient() -gr.SetColorAt(0.0, gfx.BLUE) -gr.SetColorAt(0.5, gfx.WHITE) -gr.SetColorAt(1.0, gfx.RED) +gr.SetColorAt(0.0, gfx.Color(0.1, 0.1, 0.8)) +gr.SetColorAt(1.0, gfx.Color(0.8, 0.1, 0.1)) + gs.ColorBy('cons', gr, 0.8, 1.0, mol.Prop.Level.RESIDUE) g.SetRenderMode(gfx.HSC, diff --git a/examples/demos/data/sh2.aln b/examples/demos/data/sh2.aln index 45daa963b90571581ffe75d3904757efafe107a8..7a18486a077f360b5522ed8b9c65523a716f9277 100644 --- a/examples/demos/data/sh2.aln +++ b/examples/demos/data/sh2.aln @@ -4,7 +4,6 @@ CLUSTAL 2.0.12 multiple sequence alignment SH2 -------------------------KP-HPWFFGKIPRAKAEEMLSKQR- 23 UniRef90_UPI0000EB201F KAELNGKDGFIPKN-------YIEMKP-HPWFFGKIPRAKAEEMLSKQR- 45 UniRef90_P62993 KAELNGKDGFIPKN-------YIEMKP-HPWFFGKIPRAKAEEMLSKQR- 78 -UniRef90_P62993-2 KAELNGKDGFIPKN-------YIEMKP-HP-------------------- 59 UniRef90_P87379 KAELNGKDGFIPKN-------YIEMKA-HPWFFGKIPRAKAEEMLGKQR- 78 UniRef90_UPI00016E653C KAELRGKDGFIPKN-------YIEMKA-HPWFYGKIPRAKAEEILNKQR- 78 UniRef90_UPI00016E653B KAELRGKDGFIPKN-------YIEMKA-HPWFYGKIPRAKAEEILNKQR- 78 @@ -57,7 +56,6 @@ UniRef90_Q567F1 KAELHGHEGYVPKN-------YVDRQI-PSWFKESASRGSAEETLMSRE- 7 SH2 -------HDGAFLIRESESA--PGDFSL----SVKFGNDVQHFKVLR--D 58 UniRef90_UPI0000EB201F -------HDGAFLIRESESA--PGDFSL----SVKFGNDVQHFKVLR--D 80 UniRef90_P62993 -------HDGAFLIRESESA--PGDFSL----SVKFGNDVQHFKVLR--D 113 -UniRef90_P62993-2 -----------------------------------FGNDVQHFKVLR--D 72 UniRef90_P87379 -------HDGAFLIRESESA--PGDFSL----SVKFGNDVQHFKVLR--D 113 UniRef90_UPI00016E653C -------RDGAFLIRESESA--PGDFSL----SVKYGNDVQHFKVLR--D 113 UniRef90_UPI00016E653B -------RDGAFLIRESESA--PGDFSL----SVKYGNDVQHFKVLR--D 113 @@ -110,7 +108,6 @@ UniRef90_Q567F1 --------VGAFLIRGSQSS--PGDFSI----SVRHDYDVQHFKVMK--D 1 SH2 GAGKYFLWVVKFNSLNELVDYHRSTSVSR---------------NQQIFL 93 UniRef90_UPI0000EB201F GAGKYFLWVVKFNSLNELVDYHRSTSVSR---------------NQQIFL 115 UniRef90_P62993 GAGKYFLWVVKFNSLNELVDYHRSTSVSR---------------NQQIFL 148 -UniRef90_P62993-2 GAGKYFLWVVKFNSLNELVDYHRSTSVSR---------------NQQIFL 107 UniRef90_P87379 GAGKYFLWVVKFNSLNELVDYHRSTSVSR---------------NQQIFL 148 UniRef90_UPI00016E653C GAGKYFLWVVKFNSLNELVEYHRTTSVSR---------------NQQIFL 148 UniRef90_UPI00016E653B GAGKYFLWVVKFNSLNELVEYHRTTSVSR---------------NQQIFL 148 @@ -163,7 +160,6 @@ UniRef90_Q567F1 KSGHYYLWTEKFTSLNKLVDFYKTTSISK---------------QKEIFL 1 SH2 RDIEQVP------------------------------------------- 100 UniRef90_UPI0000EB201F RDIEQVPQQNSIFSLCQR----TSLTLCSIVSLEASEEENPVVREWSPHS 161 UniRef90_P62993 RDIEQVP------------------------------------------- 155 -UniRef90_P62993-2 RDIEQVP------------------------------------------- 114 UniRef90_P87379 RDIEQVPQVHGGDRATS--------------------------------- 165 UniRef90_UPI00016E653C REIEQ--------------------------------------------- 153 UniRef90_UPI00016E653B REIEQVTQVNVGTHYIN--------------------------------- 165 diff --git a/modules/seq/alg/src/conservation.cc b/modules/seq/alg/src/conservation.cc index e5a0df71d875a088ae8bd5863e8fa72ef5a8169f..46cb5cfd8fb9d648c0d9b0f0e0ab797093e9cfa2 100644 --- a/modules/seq/alg/src/conservation.cc +++ b/modules/seq/alg/src/conservation.cc @@ -82,8 +82,7 @@ float PhysicoChemicalDissim(char c1, char c2) -1, 13, 19, 21, 18, 22}; int idx_a=(c1=='-' || c1<'A' || c1>'Z') ? 20 : indices[c1-'A']; int idx_b=(c2=='-' || c2<'A' || c2>'Z') ? 20 : indices[c2-'A']; - assert(idx_a>=0); - assert(idx_b>=0); + if (idx_a<0) { idx_a=20; } @@ -103,7 +102,7 @@ std::vector<Real> Conservation(const AlignmentHandle& aln, bool assign, const String& prop) { std::vector<Real> cons(aln.GetLength(), 0.0); - int comb=aln.GetCount()*(aln.GetCount()-1)/2; + int comb=(aln.GetCount()*(aln.GetCount()-1))/2; for (int col=0; col<aln.GetLength(); ++col) { float score=0.0; AlignedColumn c=aln[col]; @@ -119,6 +118,10 @@ std::vector<Real> Conservation(const AlignmentHandle& aln, bool assign, if (c[i]!='-') { mol::ResidueView r=c.GetResidue(i); if (r.IsValid()) { + if (r.GetOneLetterCode()!=c[i]) { + std::cout << "WARNING: " << col << " " << c[i] << "!=" + << r.GetOneLetterCode() << std::endl; + } r.SetFloatProp(prop, score); } }