2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
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;
63 int alWidth = this.alignViewport.alignment.getWidth();
69 Conservation cons = new jalview.analysis.Conservation("All",
70 jalview.schemes.ResidueProperties.propHash, 3,
71 this.alignViewport.alignment.getSequences(), 0, alWidth - 1);
74 cons.verdict(false, this.alignViewport.ConsPercGaps);
76 if (this.alignViewport.quality != null)
80 cons.completeAnnotations(alignViewport.conservation,
81 alignViewport.quality, 0, alWidth);
82 } catch (OutOfMemoryError error)
84 new OOMWarning("calculating conservation", error);
86 this.alignViewport.conservation = null;
87 this.alignViewport.quality = null;
91 AlignViewport.UPDATING_CONSERVATION = false;
92 this.alignViewport.updatingConservation = false;
96 ap.paintAlignment(true);