📄 sequence_display.hpp
字号:
// adds a string row to the alignment, that contains block boundary indicators DisplayRowFromString * FindBlockBoundaryRow(const BlockMultipleAlignment *forAlignment) const; void UpdateBlockBoundaryRow(const BlockMultipleAlignment *forAlignment) const; void AddBlockBoundaryRow(BlockMultipleAlignment *forAlignment); // adds to end of display! void AddBlockBoundaryRows(void); void RemoveBlockBoundaryRows(void); // returns a list of all sequences in the display (in order) for the given alignment typedef std::vector < const Sequence * > SequenceList; void GetSequences(const BlockMultipleAlignment *forAlignment, SequenceList *seqs) const; // returns a list of all protein sequences in the display (in order) void GetProteinSequences(SequenceList *seqs) const; // fills the vector with the current row ordering for the given alignment void GetRowOrder(const BlockMultipleAlignment *forAlignment, std::vector < int > *slaveRowOrder) const; // to inform the display that new rows have been added to or removed from the multiple void RowsAdded(int nRowsAddedToMultiple, BlockMultipleAlignment *multiple, int where = -1); void RowsRemoved(const std::vector < int >& rowsRemoved, const BlockMultipleAlignment *multiple); // row scoring and sorting functions - only for single-alignment displays! // sorting necessarily always leaves master at the top bool CalculateRowScoresWithThreader(double weightPSSM); void SortRowsByIdentifier(void); void SortRowsByThreadingScore(double weightPSSM); void SortRowsBySelfHit(void); void FloatPDBRowsToTop(void); void FloatHighlightsToTop(void); void FloatGVToTop(void); // a sort of clustering of similar sequences around a particular row bool ProximitySort(int displayRow); // create a new copy of this object SequenceDisplay * Clone(const Old2NewAlignmentMap& newAlignments) const; // clear out all rows from this display void Empty(void);private: const bool isEditable; // generic row manipulation functions void AddRow(DisplayRow *row); BlockMultipleAlignment * GetAlignmentForRow(int row) const; void UpdateBlockBoundaryRow(DisplayRowFromString *blockBoundaryRow) const; ViewerWindowBase* const *viewerWindow; int startingColumn; typedef std::vector < DisplayRow * > RowVector; RowVector rows; int maxRowWidth; void UpdateMaxRowWidth(void); void UpdateAfterEdit(const BlockMultipleAlignment *forAlignment); bool shiftDown, controlDown; void SortRows(void);public: int NRows(void) const { return rows.size(); } bool IsEditable(void) const { return isEditable; } const Sequence * GetSequenceForRow(int row) const { if (row >= 0 && row < NRows()) return rows[row]->GetSequence(); else return NULL; } // redraw all molecules associated with the SequenceDisplay void RedrawAlignedMolecules(void) const; // find coordinates of this residue in the display; returns false if not found bool GetDisplayCoordinates(const Molecule *molecule, int seqIndex, BlockMultipleAlignment::eUnalignedJustification justification, int *column, int *row); // column to scroll to when this display is first shown void SetStartingColumn(int column) { startingColumn = column; } int GetStartingColumn(void) const { return startingColumn; } // methods required by ViewableAlignment base class void GetSize(int *setColumns, int *setRows) const { *setColumns = maxRowWidth; *setRows = rows.size(); } bool GetRowTitle(int row, wxString *title, wxColour *color) const; bool GetCharacterTraitsAt(int column, int row, // location char *character, // character to draw wxColour *color, // color of this character bool *drawBackground, // special background color? wxColour *cellBackgroundColor ) const; // callbacks for ViewableAlignment void MouseOver(int column, int row) const; bool MouseDown(int column, int row, unsigned int controls); void SelectedRectangle(int columnLeft, int rowTop, int columnRight, int rowBottom); void DraggedCell(int columnFrom, int rowFrom, int columnTo, int rowTo);};END_SCOPE(Cn3D)#endif // CN3D_SEQUENCE_DISPLAY__HPP/** ---------------------------------------------------------------------------* $Log: sequence_display.hpp,v $* Revision 1000.1 2004/04/12 17:33:23 gouriano* PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.28** Revision 1.28 2004/02/19 17:05:06 thiessen* remove cn3d/ from include paths; add pragma to disable annoying msvc warning** Revision 1.27 2003/10/20 13:17:15 thiessen* add float geometry violations sorting** Revision 1.26 2003/02/03 19:20:05 thiessen* format changes: move CVS Log to bottom of file, remove std:: from .cpp files, and use new diagnostic macros** Revision 1.25 2003/01/29 01:41:06 thiessen* add merge neighbor instead of merge near highlight** Revision 1.24 2002/09/05 18:38:57 thiessen* add sort by highlights** Revision 1.23 2002/06/13 14:54:07 thiessen* add sort by self-hit** Revision 1.22 2002/04/26 19:01:00 thiessen* fix display delete bug** Revision 1.21 2002/02/28 19:11:52 thiessen* wrap sequences in single-structure mode** Revision 1.20 2002/02/05 18:53:25 thiessen* scroll to residue in sequence windows when selected in structure window** Revision 1.19 2001/11/27 16:26:09 thiessen* major update to data management system** Revision 1.18 2001/07/23 20:08:38 thiessen* add regex pattern search** Revision 1.17 2001/07/10 16:39:34 thiessen* change selection control keys; add CDD name/notes dialogs** Revision 1.16 2001/06/21 02:01:07 thiessen* major update to molecule identification and highlighting ; add toggle highlight (via alt)** Revision 1.15 2001/06/15 14:52:30 thiessen* fix minor syntax errors** Revision 1.14 2001/06/04 14:33:54 thiessen* add proximity sort; highlight sequence on browser launch** Revision 1.13 2001/06/01 18:07:38 thiessen* fix display clone bug** Revision 1.12 2001/06/01 14:04:54 thiessen* add float PDB sort** Revision 1.11 2001/05/11 02:10:04 thiessen* add better merge fail indicators; tweaks to windowing/taskbar** Revision 1.10 2001/05/03 14:38:32 thiessen* put ViewableAlignment in its own (non-wx) header** Revision 1.9 2001/04/04 00:27:21 thiessen* major update - add merging, threader GUI controls** Revision 1.8 2001/03/30 14:43:11 thiessen* show threader scores in status line; misc UI tweaks** Revision 1.7 2001/03/30 03:07:08 thiessen* add threader score calculation & sorting** Revision 1.6 2001/03/22 00:32:36 thiessen* initial threading working (PSSM only); free color storage in undo stack** Revision 1.5 2001/03/19 15:47:37 thiessen* add row sorting by identifier** Revision 1.4 2001/03/13 01:24:15 thiessen* working undo system for >1 alignment (e.g., update window)** Revision 1.3 2001/03/09 15:48:43 thiessen* major changes to add initial update viewer** Revision 1.2 2001/03/06 20:20:43 thiessen* progress towards >1 alignment in a SequenceDisplay ; misc minor fixes** Revision 1.1 2001/03/01 20:15:29 thiessen* major rearrangement of sequence viewer code into base and derived classes**/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -