예제 #1
0
        private void btnCompare_Click(object sender, EventArgs e)
        {
            string kit1 = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
            string kit2 = dataGridView2.SelectedRows[0].Cells[0].Value.ToString();

            if (kit1 == kit2)
            {
                MessageBox.Show("Please select different kits to compare.", "One-to-One Compare", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            // open mdi child
            switch (selected_operation)
            {
            case SELECT_ADMIXTURE:
                GGKUtilLib.hideAllMdiChildren();
                OneToOneCmpFrm cmp = new OneToOneCmpFrm(kit1, kit2);
                cmp.MdiParent   = Program.GGKitFrmMainInst;
                cmp.Visible     = true;
                cmp.WindowState = FormWindowState.Maximized;
                this.Close();
                break;

            default:
                break;
            }


            //
        }
예제 #2
0
 private void ProcessKitsFrm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (bwCompare.IsBusy || bwROH.IsBusy || bwPhaseVisualizer.IsBusy)
     {
         GGKUtilLib.setStatus("Cancelling...");
         GGKUtilLib.setProgress(-1);
         btnStart.Text    = "Cancelling";
         btnStart.Enabled = false;
         if (bwCompare.IsBusy)
         {
             bwCompare.CancelAsync();
         }
         if (bwROH.IsBusy)
         {
             bwROH.CancelAsync();
         }
         if (bwPhaseVisualizer.IsBusy)
         {
             bwPhaseVisualizer.CancelAsync();
         }
         e.Cancel       = true;
         timer1.Enabled = true;
     }
     else
     {
         GGKUtilLib.setStatus("Done.");
         GGKUtilLib.setProgress(-1);
     }
 }
예제 #3
0
        private void mtdna_chart_MouseClick(object sender, MouseEventArgs e)
        {
            // Call Hit Test Method
            HitTestResult result = mtdna_chart.HitTest(e.X, e.Y);

            if (result.ChartElementType == ChartElementType.DataPoint || result.ChartElementType == ChartElementType.DataPointLabel)
            {
                foreach (DataPoint dp2 in mtdna_chart.Series[0].Points)
                {
                    dp2.LabelBackColor = Color.White;
                    dp2.LabelForeColor = Color.Black;
                }

                DataPoint dp = (DataPoint)result.Object;
                dp.LabelBackColor = Color.LightBlue;
                GGKUtilLib.setStatus("Selected " + dp.Label);

                foreach (DataGridViewRow row in dgvmtdna.Rows)
                {
                    if (row.Cells[0].Value.ToString() == dp.Label)
                    {
                        row.Selected = true;
                        break;
                    }
                }
            }
        }
예제 #4
0
        void bWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            string[] o      = (string[])e.Argument;
            string   cmp_id = o[0];
            string   kit2   = o[1];
            string   name2  = o[2];

            segment_dt = GGKUtilLib.QueryDB("select chromosome'Chromosome',start_position'Start Position',end_position'End Position',segment_length_cm'Segment Length (cM)',snp_count'SNP Count',segment_id from cmp_autosomal where cmp_id='" + cmp_id + "'");

            if (GGKUtilLib.isPhased(kit))
            {
                phased_kit   = kit;
                unphased_kit = kit2;
                phased       = true;
            }
            else if (GGKUtilLib.isPhased(kit2))
            {
                phased_kit   = kit2;
                unphased_kit = kit;
                phased       = true;
            }
            else
            {
                phased = false;
            }
            e.Result = new string[] { kit2, name2 };
        }
예제 #5
0
        private void bwDelete_DoWork(object sender, DoWorkEventArgs e)
        {
            DataGridView           dgv  = (DataGridView)e.Argument;
            SQLiteConnection       conn = GGKUtilLib.getDBConnection();
            List <DataGridViewRow> rows = new List <DataGridViewRow>();

            using (SQLiteTransaction trans = conn.BeginTransaction())
            {
                foreach (DataGridViewRow row in dgv.SelectedRows)
                {
                    SQLiteCommand upCmd = new SQLiteCommand("DELETE FROM kit_master WHERE kit_no=@kit_no", conn);
                    upCmd.Parameters.AddWithValue("@kit_no", row.Cells[0].Value.ToString());
                    upCmd.ExecuteNonQuery();
                    rows.Add(row);
                }
                //
                trans.Commit();
            }


            this.Invoke(new MethodInvoker(delegate
            {
                foreach (DataGridViewRow row in rows)
                {
                    dgvEditKit.Rows.Remove(row);
                }
            }));
        }
예제 #6
0
 private void NewKitFrm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (bwDelete.IsBusy)
     {
         bwDelete.CancelAsync();
     }
     if (bwSave.IsBusy)
     {
         bwSave.CancelAsync();
     }
     if (bwNewKitAutosomalJob.IsBusy)
     {
         bwNewKitAutosomalJob.CancelAsync();
     }
     if (bwNewKitYDNAJob.IsBusy)
     {
         bwNewKitYDNAJob.CancelAsync();
     }
     if (bwPopuate.IsBusy)
     {
         bwPopuate.CancelAsync();
     }
     GGKUtilLib.disableSave();
     GGKUtilLib.disable_DisableKitToolbarBtn();
     GGKUtilLib.disable_EnableKitToolbarBtn();
     GGKUtilLib.disableDeleteKitToolbarBtn();
     GGKUtilLib.setStatus("Done.");
 }
예제 #7
0
        private void MatchingKitsFrm_Load(object sender, EventArgs e)
        {
            lblKit.Text  = kit;
            lblName.Text = GGKUtilLib.queryDatabase("kit_master", new string[] { "name" }, "WHERE kit_no='" + kit + "'").Rows[0].ItemArray[0].ToString();
            DataTable dt = GGKUtilLib.QueryDB("SELECT cmp_id,kit'Kit No',name'Name',at_longest'Autosomal Longest',at_total'Autosomal Total',x_longest'X Longest',x_total'X Total',mrca'MRCA' FROM (SELECT a.cmp_id,a.kit1'kit',b.name,a.at_longest,a.at_total,a.x_longest,a.x_total,a.mrca FROM cmp_status a,kit_master b WHERE a.at_total!=0 AND a.kit1!='" + kit + "' AND a.kit2='" + kit + "' AND a.status_autosomal=1 AND b.kit_no=a.kit1 AND b.disabled=0 UNION SELECT a.cmp_id,a.kit2'kit',b.name,a.at_longest,a.at_total,a.x_longest,a.x_total,a.mrca FROM cmp_status a,kit_master b WHERE a.at_total!=0 AND a.kit2!='" + kit + "' AND a.kit1='" + kit + "' AND a.status_autosomal=1 AND b.kit_no=a.kit2 AND b.disabled=0) ORDER BY at_longest DESC,at_total DESC");

            dgvMatches.Columns.Clear();
            dgvMatches.DataSource         = dt;
            dgvMatches.Columns[0].Visible = false;

            dgvMatches.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvMatches.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvMatches.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvMatches.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvMatches.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvMatches.Columns[6].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvMatches.Columns[7].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

            DataGridViewCellStyle style = new DataGridViewCellStyle();

            style.Format = "N2";

            dgvMatches.Columns[3].DefaultCellStyle = style;
            dgvMatches.Columns[4].DefaultCellStyle = style;
            dgvMatches.Columns[5].DefaultCellStyle = style;
            dgvMatches.Columns[6].DefaultCellStyle = style;
        }
 private void factoryResetToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("Are you sure to delete everything and reset to factory defaults?", "Factory Reset", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
     {
         GGKUtilLib.FactoryReset();
     }
 }
예제 #9
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            SQLiteConnection cnn = GGKUtilLib.getDBConnection();

            dataGridView1.Rows.Clear();
            dataGridView2.Rows.Clear();
            SQLiteCommand    query  = new SQLiteCommand(select_sql, cnn);
            SQLiteDataReader reader = query.ExecuteReader();

            DataTable dt1 = null;
            DataTable dt2 = null;

            dt1 = new DataTable();
            dt2 = new DataTable();
            dt1.Load(reader);
            reader = query.ExecuteReader();
            dt2.Load(reader);
            query.Dispose();
            cnn.Dispose();

            dataGridView1.DataSource = dt1;
            dataGridView2.DataSource = dt2;

            dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dataGridView2.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dataGridView2.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        }
예제 #10
0
        private void bwROH_DoWork(object sender, DoWorkEventArgs e)
        {
            DataTable dt  = GGKUtilLib.QueryDB("select kit_no,roh_status from kit_master where reference=0 and disabled=0");
            string    kit = null;
            string    roh = null;

            foreach (DataRow row in dt.Rows)
            {
                if (bwROH.CancellationPending)
                {
                    break;
                }
                kit = row.ItemArray[0].ToString();
                roh = row.ItemArray[1].ToString();
                if (roh == "0")
                {
                    bwROH.ReportProgress(dt.Rows.IndexOf(row) * 100 / dt.Rows.Count, "Runs of Homozygosity for kit #" + kit + " (" + GGKUtilLib.getKitName(kit) + ") - Processing ...");
                    GGKUtilLib.ROH(kit);
                }
                else if (roh == "1")
                {
                    bwROH.ReportProgress(dt.Rows.IndexOf(row) * 100 / dt.Rows.Count, "Runs of Homozygosity for kit #" + kit + " (" + GGKUtilLib.getKitName(kit) + ") - Already Exists. Skipping..");
                }
            }
        }
예제 #11
0
 private void QuickEditKit_FormClosing(object sender, FormClosingEventArgs e)
 {
     GGKUtilLib.disableSave();
     GGKUtilLib.disableDeleteKitToolbarBtn();
     GGKUtilLib.disable_DisableKitToolbarBtn();
     GGKUtilLib.disable_EnableKitToolbarBtn();
 }
예제 #12
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            label2.Text    = GGKUtilLib.getKitName(kit);
            txtSNPs.Text   = GGKUtilLib.queryValue("kit_ysnps", new string[] { "ysnps" }, "where kit_no='" + kit + "'");
            GGKUtilLib.setStatus("Plotting on ISOGG Y-Tree ...");
            //
            XDocument doc = XDocument.Parse(Genetic_Genealogy_Kit.Properties.Resources.ytree);

            TreeNode root = new TreeNode("Adam");

            treeView1.Nodes.Add(root);

            foreach (XElement el in doc.Root.Elements())
            {
                buildTree(root, el);
            }
            root.Expand();
            //
            snp_on_tree.AddRange(Genetic_Genealogy_Kit.Properties.Resources.snps_on_tree.Split(new char[] { ',' }));

            my_snp    = txtSNPs.Text;
            snp_array = filterSNPsOnTree(my_snp);

            timer2.Enabled = true;
        }
 private void MainFrm_Load(object sender, EventArgs e)
 {
     label2.Text    = kit + " - " + GGKUtilLib.getKitName(kit);
     this.Text      = "Mitocondrial Phylogeny - (" + kit + ")" + GGKUtilLib.getKitName(kit);
     xml_phylogeny  = Genetic_Genealogy_Kit.Properties.Resources.mtDNAPhylogeny;
     timer1.Enabled = true;
 }
예제 #14
0
 private void btnStart_Click(object sender, EventArgs e)
 {
     if (btnStart.Text == "Start")
     {
         redo_again   = cbDontSkip.Checked;
         redo_visual  = cbRedoVisual.Checked;
         no_admixture = cbNoAdmixture.Checked;
         GGKUtilLib.setStatus("Processing Kits ...");
         if (bwCompare.IsBusy)
         {
             MessageBox.Show("Process is busy!", "Please Wait!", MessageBoxButtons.OK, MessageBoxIcon.Stop);
         }
         else
         {
             bwCompare.RunWorkerAsync();
             btnStart.Text = "Stop";
         }
     }
     else if (btnStart.Text == "Stop")
     {
         if (MessageBox.Show("Are you sure you want to cancel the process?", "Cancel?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
         {
             GGKUtilLib.setStatus("Done.");
             GGKUtilLib.setProgress(-1);
             bwCompare.CancelAsync();
             bwROH.CancelAsync();
             bwPhaseVisualizer.CancelAsync();
             btnStart.Text    = "Cancelling";
             btnStart.Enabled = false;
         }
     }
 }
 public void  Save()
 {
     if (saveFileDlg.ShowDialog(this) == DialogResult.OK)
     {
         StringBuilder sb = new StringBuilder();
         sb.Append("RSID,CHROMOSOME,POSITION,RESULT\r\n");
         object[] data = null;
         foreach (DataTable dt in segments)
         {
             foreach (DataRow row in dt.Rows)
             {
                 data = row.ItemArray;
                 if (data[5].ToString() == "--")
                 {
                     continue;
                 }
                 if (data[5].ToString().Length == 2)
                 {
                     sb.Append(("\"" + data[0] + "\",\"" + data[1] + "\",\"" + data[2] + "\",\"" + data[5] + "\"\r\n"));
                 }
                 else if (data[5].ToString().Length == 1)
                 {
                     sb.Append(("\"" + data[0] + "\",\"" + data[1] + "\",\"" + data[2] + "\",\"" + data[5] + data[5] + "\"\r\n"));
                 }
             }
         }
         File.WriteAllText(saveFileDlg.FileName, sb.ToString());
         sb.Length = 0;
         GGKUtilLib.setStatus("CA Profile saved.");
     }
 }
예제 #16
0
 private void QuickEditKit_Load(object sender, EventArgs e)
 {
     GGKUtilLib.enableSave();
     GGKUtilLib.enableDeleteKitToolbarBtn();
     GGKUtilLib.enable_DisableKitToolbarBtn();
     GGKUtilLib.enable_EnableKitToolbarBtn();
     timer1.Enabled = true;
 }
예제 #17
0
        private void bwROH_DoWork(object sender, DoWorkEventArgs e)
        {
            string kit = e.Argument.ToString();

            object[] roh_results = GGKUtilLib.ROH(kit);
            segment_idx = (DataTable)roh_results[0];
            segments    = (List <DataTable>)roh_results[1];
        }
예제 #18
0
        private void bwDelete_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            GGKUtilLib.setStatus("Deleted.");

            this.Enabled = true;
            GGKUtilLib.enableMenu();
            GGKUtilLib.enableToolbar();
        }
예제 #19
0
 private void bwSave_ProgressChanged(object sender, ProgressChangedEventArgs e)
 {
     GGKUtilLib.setProgress(e.ProgressPercentage);
     if (e.UserState != null)
     {
         GGKUtilLib.setStatus(e.UserState.ToString());
     }
 }
예제 #20
0
        public void Save()
        {
            GGKUtilLib.setStatus("Saving ...");
            SQLiteConnection conn     = GGKUtilLib.getDBConnection();
            string           sex      = "";
            string           location = "";

            using (SQLiteTransaction trans = conn.BeginTransaction())
            {
                foreach (DataGridViewRow row in dgvEditKit.Rows)
                {
                    SQLiteCommand upCmd = new SQLiteCommand("UPDATE kit_master set name=@name, sex=@sex, disabled=@disabled, x=@x, y=@y WHERE kit_no=@kit_no", conn);
                    upCmd.Parameters.AddWithValue("@name", row.Cells[1].Value.ToString());

                    sex = row.Cells[2].Value.ToString();
                    if (sex == "Unknown")
                    {
                        upCmd.Parameters.AddWithValue("@sex", "U");
                    }
                    else if (sex == "Male")
                    {
                        upCmd.Parameters.AddWithValue("@sex", "M");
                    }
                    else if (sex == "Female")
                    {
                        upCmd.Parameters.AddWithValue("@sex", "F");
                    }

                    if (((bool)row.Cells[3].Value))
                    {
                        upCmd.Parameters.AddWithValue("@disabled", "1");
                    }
                    else
                    {
                        upCmd.Parameters.AddWithValue("@disabled", "0");
                    }

                    location = row.Cells[4].Value.ToString();
                    if (location == "Unknown")
                    {
                        upCmd.Parameters.AddWithValue("@x", "0");
                        upCmd.Parameters.AddWithValue("@y", "0");
                    }
                    else
                    {
                        upCmd.Parameters.AddWithValue("@x", location.Split(new char[] { ':' })[0]);
                        upCmd.Parameters.AddWithValue("@y", location.Split(new char[] { ':' })[1]);
                    }

                    upCmd.Parameters.AddWithValue("@kit_no", row.Cells[0].Value.ToString());
                    upCmd.ExecuteNonQuery();
                }
                //
                trans.Commit();
            }

            GGKUtilLib.setStatus("Saved.");
        }
        private void bwExport_DoWork(object sender, DoWorkEventArgs e)
        {
            string kit_no   = ((string[])e.Argument)[0];
            string filename = ((string[])e.Argument)[1];
            int    option   = int.Parse(((string[])e.Argument)[2]);

            //
            GGKUtilLib.exportKit(kit_no, filename, option);
        }
예제 #22
0
        private void populateFields(string kit)
        {
            foreach (Control ctrl in editableCtrls)
            {
                ctrl.Enabled = false;
            }

            GGKUtilLib.setStatus("Please wait ...");
            bwPopuate.RunWorkerAsync(kit);
        }
 private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     treeView1.Nodes.Clear();
     lblSb.Text  = "";
     lblyhg.Text = "";
     mutations_map.Clear();
     match_map.Clear();
     GGKUtilLib.setStatus("Done.");
     timer1.Enabled = true;
 }
예제 #24
0
 private void bwPopuate_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     foreach (Control ctrl in editableCtrls)
     {
         ctrl.Enabled = true;
     }
     //
     doControlActivities(kit_disabled);
     GGKUtilLib.setStatus("Done.");
 }
예제 #25
0
 private void textBoxYDNA_DragDrop(object sender, DragEventArgs e)
 {
     // file dropped.
     if (e.Data.GetDataPresent(DataFormats.FileDrop))
     {
         string[] filePaths = (string[])(e.Data.GetData(DataFormats.FileDrop));
         GGKUtilLib.setStatus("Parsing Y-DNA file(s) ...");
         bwNewKitYDNAJob.RunWorkerAsync(filePaths[0]);
     }
 }
예제 #26
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            DataGridViewCellStyle gray = new DataGridViewCellStyle();

            gray.ForeColor = Color.LightGray;

            SQLiteConnection cnn = GGKUtilLib.getDBConnection();

            dgvEditKit.Rows.Clear();
            SQLiteCommand    query  = new SQLiteCommand(@"SELECT kit_no,name,sex,disabled,coalesce(x,0),coalesce(y,0),last_modified FROM kit_master WHERE reference=0 order by last_modified DESC", cnn);
            SQLiteDataReader reader = query.ExecuteReader();
            string           sex    = "U";
            string           xy     = null;

            while (reader.Read())
            {
                int             new_idx = dgvEditKit.Rows.Add();
                DataGridViewRow row     = dgvEditKit.Rows[new_idx];
                row.Cells[0].Value = reader.GetString(0);
                row.Cells[1].Value = reader.GetString(1);

                sex = reader.GetString(2);
                if (sex == "U")
                {
                    row.Cells[2].Value = "Unknown";
                }
                else if (sex == "M")
                {
                    row.Cells[2].Value = "Male";
                }
                else if (sex == "F")
                {
                    row.Cells[2].Value = "Female";
                }

                if (reader.GetInt16(3) == 1)
                {
                    row.Cells[3].Value = true;
                }
                else
                {
                    row.Cells[3].Value = false;
                }

                xy = reader.GetInt16(4).ToString() + ":" + reader.GetInt16(5).ToString();
                if (xy == "0:0")
                {
                    xy = "Unknown";
                }
                row.Cells[4].Value = xy;
            }
            query.Dispose();
            cnn.Dispose();
        }
예제 #27
0
 public void Delete()
 {
     if (MessageBox.Show("You had selected " + dgvEditKit.SelectedRows.Count.ToString() + " kits to be deleted. Are you sure?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         GGKUtilLib.setStatus("Deleting " + dgvEditKit.SelectedRows.Count.ToString() + " kit(s) and all it's associated data ...");
         this.Enabled = false;
         GGKUtilLib.disableMenu();
         GGKUtilLib.disableToolbar();
         bwDelete.RunWorkerAsync(dgvEditKit);
     }
 }
예제 #28
0
 private void bwSave_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     GGKUtilLib.setProgress(-1);
     this.Enabled = true;
     GGKUtilLib.enableMenu();
     GGKUtilLib.enableToolbar();
     if (save_success)
     {
         this.Close();
     }
 }
예제 #29
0
        public static void _addParameter(string key, string value, string desc, string read_only)
        {
            SQLiteConnection cnn   = GGKUtilLib.getDBConnection();
            SQLiteCommand    upCmd = new SQLiteCommand(@"INSERT into ggk_settings(key,value,description,readonly) VALUES (@key,@value,@desc,@readonly)", cnn);

            upCmd.Parameters.AddWithValue("@key", key);
            upCmd.Parameters.AddWithValue("@value", value);
            upCmd.Parameters.AddWithValue("@desc", desc);
            upCmd.Parameters.AddWithValue("@readonly", read_only);
            upCmd.ExecuteNonQuery();
            upCmd.Dispose();
        }
예제 #30
0
        private void bwPhaseVisualizer_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            lblComparing.Text = e.UserState.ToString();
            GGKUtilLib.setProgress(e.ProgressPercentage);
            GGKUtilLib.setStatus(e.UserState.ToString());
            progressBar.Value = e.ProgressPercentage;

            lblComparing.Text = e.UserState.ToString();
            tbStatus.Text    += e.UserState.ToString() + "\r\n";
            tbStatus.Select(tbStatus.Text.Length - 1, 0);
            tbStatus.ScrollToCaret();
        }