⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clustermain.h

📁 著名的基因芯片表达数据聚类软件。esein编写
💻 H
字号:
//---------------------------------------------------------------------------
#ifndef ClusterMainH
#define ClusterMainH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Dialogs.hpp>
#include <ComCtrls.hpp>
#include <NMHttp.hpp>
#include <Psock.hpp>
#include <Registry.hpp>
#include <ExtCtrls.hpp>
#include <Menus.hpp>
#include <Buttons.hpp>
#include <Chart.hpp>
#include <TeEngine.hpp>
#include <TeeProcs.hpp>
#include <Series.hpp>
#include <TeEngine.hpp>
#include <TeeProcs.hpp>
#include <TeeShape.hpp>
//---------------------------------------------------------------------------

/*
  TNode is a simple class for keeping track of objects in binary trees
*/

class TNode : public TObject
{
        public:

        __fastcall TNode();
        __fastcall ~TNode();

        bool IsNode;        // IsNode = true if there are children
        TNode *Parent;
        TNode *Child1;
        TNode *Child2;

        AnsiString ID;      // Text identifier of node

        double Length;      // Branch length

        AnsiString __fastcall Newick();

        void __fastcall SetList(TStringList *List)
        {
            if (IsNode == true)
            {
                Child1->SetList(List);
                Child2->SetList(List);
            }
            else
            {
                List->Add(ID);
            }
        }
};


class TMainForm : public TForm
{
__published:	// IDE-managed Components
        TOpenDialog *LoadFileDialog;
    TStatusBar *StatusBar1;
    TNMHTTP *NMHTTP1;
    TSaveDialog *DistFileDialogBox;
    TSaveDialog *SaveDialog1;
    TPanel *Panel3;
    TGroupBox *InputGroupBox;
    TButton *LoadFileButton;
    TButton *FileHelp;
    TMainMenu *MainMenu1;
    TMenuItem *About1;
    TLabel *Label13;
    TLabel *Label14;
    TPageControl *MainTabSheet;
    TTabSheet *ClusterTabSheet;
    TPanel *ClusterPanel;
    TLabel *Label4;
    TLabel *Label12;
    TGroupBox *GeneGroupBox;
    TLabel *Label3;
    TCheckBox *CalculateGeneWeightsCheckBox;
    TCheckBox *ClusterGenesCheckBox;
    TComboBox *GeneMetricComboBox;
    TGroupBox *GeneWeightOptionsGroupBox;
    TLabel *Label5;
    TLabel *Label6;
    TEdit *GeneWeightCutoffEdit;
    TEdit *GeneWeightExpEdit;
    TGroupBox *ArrayGroupBox;
    TLabel *Label1;
    TComboBox *ArrayMetricComboBox;
    TCheckBox *ClusterArraysCheckBox;
    TCheckBox *CalculateArrayWeightsCheckBox;
    TGroupBox *ArrayWeightOptionsGroupBox;
    TLabel *Label7;
    TLabel *Label8;
    TEdit *ArrayWeightCutoffEdit;
    TEdit *ArrayWeightExpEdit;
        TButton *AverageLinkageClusterButton;
    TTabSheet *SOMTabSheet;
    TPanel *Panel1;
    TLabel *Label11;
    TGroupBox *Genes;
    TLabel *SOMGenesXDimLabel;
    TLabel *SOMGenesYDimLabel;
    TLabel *SOMGenesTauLabel;
    TLabel *SOMGenesIterationsLabel;
    TEdit *SOMGenesXDimEdit;
    TEdit *SOMGenesYDimEdit;
    TCheckBox *SOMOrganizeGenesCheckBox;
    TEdit *SOMGenesTauEdit;
    TEdit *SOMGenesIterationsEdit;
    TGroupBox *ArraySomGroupBox;
    TLabel *SOMArraysXDimLabel;
    TLabel *SOMArraysYDimLabel;
    TLabel *SOMArraysTauLabel;
    TLabel *SOMArraysIterationsLabel;
    TEdit *SOMArraysXDimEdit;
    TEdit *SOMArraysYDimEdit;
    TCheckBox *SOMOrganizeArraysCheckBox;
    TEdit *SOMArraysTauEdit;
    TEdit *SOMArraysIterationsEdit;
    TButton *MakeSOMButton;
    TTabSheet *FilterTabSheet;
    TGroupBox *FilterDataGroupBox;
    TLabel *Label2;
    TLabel *FilterResultsLabel;
    TButton *Filter;
    TEdit *FilterPercentEdit;
    TCheckBox *FilterPercentCheckBox;
    TCheckBox *FilterSDCheckBox;
    TCheckBox *FilterAbsValCheckBox;
    TCheckBox *FilterMaxMinCheckBox;
    TEdit *FilterSDEdit;
    TEdit *FilterAbsValCountEdit;
    TEdit *FilterMaxMinEdit;
    TEdit *FilterAbsValEdit;
    TButton *AcceptFilterButton;
    TPanel *Panel4;
    TLabel *Label9;
    TLabel *Label10;
    TLabel *RowLabel;
    TLabel *ColumnLabel;
    TLabel *Label15;
    TLabel *Label16;
    TEdit *JobNameEdit;
    TLabel *Label17;
    TMemo *FileNameMemo;
    TTabSheet *AdjustTabSheet;
    TTabSheet *SVDTabSheet;
    TButton *AdjustDataButton;
    TPanel *Panel5;
    TLabel *Label19;
    TCheckBox *MeanCenterGenesCheckBox;
    TCheckBox *MeanCenterArraysCheckBox;
    TPanel *Panel6;
    TCheckBox *MedianCenterArraysCheckBox;
    TCheckBox *MedianCenterGenesCheckBox;
    TLabel *Label18;
    TPanel *Panel7;
    TLabel *Label20;
    TCheckBox *NormalizeArraysCheckBox;
    TCheckBox *NormalizeGenesCheckBox;
    TPanel *Panel8;
    TCheckBox *LogTransformCheckBox;
    TGroupBox *GroupBox1;
    TMemo *Memo2;
    TButton *DoSVDButton;
    TMemo *Memo3;
    TMemo *Memo4;
        TLabel *FractalLabel;
        TButton *CompleteLinkageClusterButton;
        TButton *SingleLinkageClusterButton;
        TButton *ReorderType1Button;
        TButton *SaveButton;
        TTabSheet *KMeansTabSheet;
        TGroupBox *KMeansGroupBox;
        TGroupBox *GroupBox2;
        TGroupBox *GroupBox3;
        TCheckBox *KOrganizeGenesCheckBox;
        TCheckBox *KOrganizeArraysCheckBox;
        TEdit *GenesKEdit;
        TEdit *ArraysKEdit;
        TLabel *Label21;
        TLabel *Label22;
        TEdit *GMaxKCyclesEdit;
        TLabel *Label23;
        TEdit *AMaxKCyclesEdit;
        TLabel *Label24;
        TRadioGroup *GKMethod;
        TRadioGroup *AKMethod;
        TButton *KExecute;
        TSaveDialog *SaveDataDialog;
        TButton *ManualButton;

    void __fastcall LoadFileButtonClick(TObject *Sender);
    void __fastcall AverageLinkageClusterButtonClick(TObject *Sender);
    void __fastcall FileHelpClick(TObject *Sender);
    void __fastcall AboutButtonClick(TObject *Sender);
    void __fastcall CalculateGeneWeightsCheckBoxClick(TObject *Sender);
    void __fastcall GeneWeightCutoffEditExit(TObject *Sender);
    void __fastcall GeneWeightExpEditExit(TObject *Sender);
    void __fastcall CalculateArrayWeightsCheckBoxClick(TObject *Sender);
    void __fastcall ArrayWeightExpEditExit(TObject *Sender);
    void __fastcall ArrayWeightCutoffEditExit(TObject *Sender);
    void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
    void __fastcall ReorderType1ButtonClick(TObject *Sender);
    void __fastcall FormDragDrop(TObject *Sender, TObject *Source,
         int X, int Y);
    void __fastcall FormDragOver(TObject *Sender, TObject *Source,
         int X, int Y, TDragState State, bool &Accept);
    void __fastcall AppMessage(tagMSG &Msg, bool &Handled);
    void __fastcall LoadFile(AnsiString FileName);
    void __fastcall FormDestroy(TObject *Sender);
    void __fastcall FilterClick(TObject *Sender);
    void __fastcall SOMOrganizeGenesCheckBoxClick(TObject *Sender);
    void __fastcall SOMOrganizeArraysCheckBoxClick(TObject *Sender);
    void __fastcall About1Click(TObject *Sender);
    void __fastcall FilterPercentEditExit(TObject *Sender);
    void __fastcall FilterSDEditExit(TObject *Sender);
    void __fastcall FilterAbsValCountEditExit(TObject *Sender);
    void __fastcall FilterAbsValEditExit(TObject *Sender);
    void __fastcall FilterMaxMinEditExit(TObject *Sender);
    void __fastcall AcceptFilterButtonClick(TObject *Sender);
    void __fastcall SOMGenesXDimEditExit(TObject *Sender);
    void __fastcall SOMGenesYDimEditExit(TObject *Sender);
    void __fastcall SOMGenesTauEditExit(TObject *Sender);
    void __fastcall SOMGenesIterationsEditExit(TObject *Sender);
    void __fastcall SOMArraysXDimEditExit(TObject *Sender);
    void __fastcall SOMArraysYDimEditExit(TObject *Sender);
    void __fastcall SOMArraysTauEditExit(TObject *Sender);
    void __fastcall SOMArraysIterationsEditExit(TObject *Sender);
    void __fastcall MakeSOMButtonClick(TObject *Sender);
    void __fastcall AdjustDataButtonClick(TObject *Sender);
    void __fastcall DoSVDButtonClick(TObject *Sender);
        void __fastcall CompleteLinkageClusterButtonClick(TObject *Sender);
        void __fastcall SingleLinkageClusterButtonClick(TObject *Sender);
        void __fastcall KExecuteClick(TObject *Sender);
        void __fastcall SaveButtonClick(TObject *Sender);
        void __fastcall GenesKEditExit(TObject *Sender);
        void __fastcall ArraysKEditExit(TObject *Sender);
        void __fastcall GMaxKCyclesEditExit(TObject *Sender);
        void __fastcall AMaxKCyclesEditExit(TObject *Sender);
        void __fastcall ManualButtonClick(TObject *Sender);

private:	// User declarations

    int FRows;
    int FColumns;

protected:


    __fastcall void SetRows(int NewRows)
    {
        FRows = NewRows;
        RowLabel->Caption = NewRows;
    }

    __fastcall void SetColumns(int NewColumns)
    {
        FColumns = NewColumns;
        ColumnLabel->Caption = NewColumns;
    }


public:		// User declarations
    __fastcall TMainForm(TComponent* Owner);

    AnsiString NextString(AnsiString *InString);
    unsigned short Correlation(double **Data, bool **Mask, double *Weight,
    bool Centered, bool Absolute, int elem1, int elem2, int ClusterColumns);
    float Correlation(double **Data, bool **Mask, double *Weight,
    int elem1, int elem2, int ClusterColumns);
    unsigned short Distance(double **Data, bool **Mask, double *Weight,    bool Centered, bool Absolute, int elem1, int elem2, int ClusterColumns);    unsigned short Distance(int Metric, double **Data, bool **Mask, double *Weight,    int elem1, int elem2, int DataColumns);    void    Cluster(double **ClusterData, bool **ClusterMask,    int ClusterRows, int ClusterColumns,
    TStringList *TreeFile, double *Order, double *RowWeight, double *ColumnWeight,
    AnsiString *ID, int DistFunction,
    bool CalculateWeights, double WeightCutoff, double WeightPower,
    TStringList *ClusterOrder, TStatusBar *StatusBar,
    bool ReturnTNode, TNode *TopNode);

    void    CompactCluster(double **ClusterData, bool **ClusterMask,
    int ClusterRows, int ClusterColumns,
    TStringList *TreeFile, double *Order, double *RowWeight, double *ColumnWeight,
    AnsiString *ID, int DistFunction,
    bool CalculateWeights, double WeightCutoff, double WeightPower,
    TStringList *ClusterOrder, TStatusBar *StatusBar,
    bool ReturnTNode, TNode *TopNode);

    void    SingleCluster(double **ClusterData, bool **ClusterMask,
    int ClusterRows, int ClusterColumns,
    TStringList *TreeFile, double *Order, double *RowWeight, double *ColumnWeight,
    AnsiString *ID, int DistFunction,
    bool CalculateWeights, double WeightCutoff, double WeightPower,
    TStringList *ClusterOrder, TStatusBar *StatusBar,
    bool ReturnTNode, TNode *TopNode);

    double*** __fastcall SOM(int X, int Y, double **SOMData, bool **SOMMask,
     int SOMRows, int SOMColumns, int SOMIterations);

    double Correlation(double ***Nodes, double **SOMData, bool **SOMMask,
       bool Centered, int j, int k, int n, int SOMColumns);

    void SaveDistMatrix(double **ClusterData, bool **ClusterMask, double *ClusterWeight,
    int ClusterRows, int ClusterColumns, AnsiString FileName);
    void CompDistMatrix(double **ClusterData, bool **ClusterMask, double *ClusterWeight,
    int ClusterRows, int ClusterColumns, int NumBins, int NumIterations);

    int * __fastcall DoKMeans(int K, double **KData, bool **KMask,
     int KRows, int KColumns, int KMaxIterations, int Method);

    void __fastcall SaveData(AnsiString FileName);


    void __fastcall MakeSOM();
    void __fastcall MakeSVD();

    double **GeneData;
    bool **GeneMask;
    AnsiString *UniqID;    AnsiString *GeneName;    //int Rows, Columns;    double *GeneWeight;    double *GeneOrder;    double *ArrayWeight;    double *ArrayOrder;    char ClusterName[256];    AnsiString JobName;    TStringList *Headers;    bool *IsData;    int *InColumn;    AnsiString UniqueID;    double GeneWeightExp, GeneWeightCutoff;
    double ArrayWeightExp, ArrayWeightCutoff;    double FilterPercentVal;    double FilterSDVal;    int FilterAbsValCount;    double FilterAbsValVal;    double FilterMaxMinVal;    bool *Use;
    int UseRows;    int SOMGenesXDim, SOMGenesYDim;    int SOMArraysXDim, SOMArraysYDim;    double SOMGenesTau, SOMArraysTau;    int SOMGenesIterations, SOMArraysIterations;    int GenesK, ArraysK, GMaxKCycles, AMaxKCycles;    __property int Rows = {read=FRows, write=SetRows};    __property int Columns = {read=FColumns, write=SetColumns};};



//---------------------------------------------------------------------------
extern PACKAGE TMainForm *MainForm;
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -