2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
3 * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
11 * Jalview is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 * PURPOSE. See the GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
20 import jalview.analysis.Conservation;
21 import jalview.datamodel.Annotation;
23 import java.awt.Color;
25 class ConservationThread extends Thread
30 private AlignViewport alignViewport;
34 public ConservationThread(AlignViewport alignViewport, AlignmentPanel ap)
36 this.alignViewport = alignViewport;
44 this.alignViewport.updatingConservation = true;
46 while (AlignViewport.UPDATING_CONSERVATION)
52 ap.paintAlignment(false);
55 } catch (Exception ex)
61 AlignViewport.UPDATING_CONSERVATION = true;
65 if (alignViewport==null || alignViewport.alignment==null || (alWidth=alignViewport.alignment.getWidth())< 0)
67 this.alignViewport.updatingConservation = false;
68 AlignViewport.UPDATING_CONSERVATION = false;
72 Conservation cons = new jalview.analysis.Conservation("All",
73 jalview.schemes.ResidueProperties.propHash, 3,
74 this.alignViewport.alignment.getSequences(), 0, alWidth - 1);
77 cons.verdict(false, this.alignViewport.ConsPercGaps);
79 if (this.alignViewport.quality != null)
83 cons.completeAnnotations(alignViewport.conservation,
84 alignViewport.quality, 0, alWidth);
85 } catch (OutOfMemoryError error)
87 new OOMWarning("calculating conservation", error);
89 this.alignViewport.conservation = null;
90 this.alignViewport.quality = null;
94 AlignViewport.UPDATING_CONSERVATION = false;
95 this.alignViewport.updatingConservation = false;
99 ap.paintAlignment(true);