Ejemplo n.º 1
0
        private void Generate_leave_out_scp_network()
        {
            if (Options.Report)
            {
                Report_class.WriteLine("{0}: Generate SCP networks", typeof(Mbc_enrichment_pipeline_class).Name);
            }
            Dictionary <string, int> processName_processLevel_dict = Mbco_parentChild_nw.Get_processName_level_dictionary_after_setting_process_level();

            Leave_out_class leave_out = new Leave_out_class();

            leave_out.Generate_by_reading_safed_file();
            Leave_out_scp_network_for_dynamicEnrichment_analysis.Options.Consider_scp_interactions_between_signaling_processes = this.Options.Consider_interactions_between_signalingSCPs_for_dyanmicEnrichment;
            Leave_out_scp_network_for_dynamicEnrichment_analysis.Options.Top_quantile_of_considered_SCP_interactions_per_level = this.Options.Top_quantile_of_scp_interactions_for_dynamicEnrichment_per_level;
            Leave_out_scp_network_for_dynamicEnrichment_analysis.Generate_scp_scp_network_from_leave_out(leave_out);
            Leave_out_scp_network_for_dynamicEnrichment_analysis.Scp_nw.Nodes.Set_processLevel_for_all_nodes_based_on_dictionary(processName_processLevel_dict);

            Leave_out_scp_network_for_dynamicEnrichment_visualization.Options.Consider_scp_interactions_between_signaling_processes = this.Options.Consider_interactions_between_signalingSCPs_for_dyanmicEnrichment;
            Leave_out_scp_network_for_dynamicEnrichment_visualization.Options.Top_quantile_of_considered_SCP_interactions_per_level = this.Options.Top_quantile_of_scp_interactions_for_visualization_of_dynamicEnrichment_per_level;
            Leave_out_scp_network_for_dynamicEnrichment_visualization.Generate_scp_scp_network_from_leave_out(leave_out);
            Leave_out_scp_network_for_dynamicEnrichment_visualization.Scp_nw.Transform_into_undirected_single_network_and_set_all_widths_to_one();
            Leave_out_scp_network_for_dynamicEnrichment_visualization.Scp_nw.Nodes.Set_processLevel_for_all_nodes_based_on_dictionary(processName_processLevel_dict);
        }
Ejemplo n.º 2
0
        private MBCO_association_line_class[] Generate_new_mbco_association_lines_by_merging_neighboring_scps_for_one_level(Ontology_enrichment_line_class[] sameSampleLevel_mbco_enrich_lines_standard)
        {
            int level             = sameSampleLevel_mbco_enrich_lines_standard[0].ProcessLevel;
            int sameSample_length = sameSampleLevel_mbco_enrich_lines_standard.Length;
            Ontology_enrichment_line_class onto_enrich_line;
            List <string> scpNames_list = new List <string>();

            for (int indexE = 0; indexE < sameSample_length; indexE++)
            {
                onto_enrich_line = sameSampleLevel_mbco_enrich_lines_standard[indexE];
                if (onto_enrich_line.ProcessLevel != level)
                {
                    throw new System.Exception("more than one level");
                }
                if ((indexE != 0) &&
                    (!onto_enrich_line.Equal_complete_sample(sameSampleLevel_mbco_enrich_lines_standard[indexE - 1])))
                {
                    throw new Exception("More than one sample");
                }
                scpNames_list.Add(onto_enrich_line.Scp_name);
            }
            if (scpNames_list.Distinct().ToArray().Length != scpNames_list.Count)
            {
                throw new Exception();
            }
            Dictionary <string, string[]> scpNames_scpUnionNames_dict = Leave_out_scp_network_for_dynamicEnrichment_analysis.Generate_scpNames_scpUnionNames_dict_with_indicated_numbers_of_combined_scps(this.Options.Numbers_of_merged_scps_for_dynamicEnrichment_per_level[level], scpNames_list.ToArray());

            string[] scpNames = scpNames_scpUnionNames_dict.Keys.ToArray();
            string   scpName;

            string[] scpUnionNames;
            string   scpUnionName;
            int      scpUnionNames_length;
            int      scpNames_length = scpNames.Length;

            scpNames = scpNames.OrderBy(l => l).ToArray();
            this.MBCO_association.Order_by_processName_symbol();
            int mbco_length   = this.MBCO_association.MBCO_associations.Length;
            int indexMBCO     = 0;
            int stringCompare = -2;
            MBCO_association_line_class        mbc_association_line;
            MBCO_association_line_class        scpUnion_mbc_association_line;
            List <MBCO_association_line_class> scpUnion_mbc_association_list = new List <MBCO_association_line_class>();

            for (int indexScp = 0; indexScp < scpNames_length; indexScp++)
            {
                scpName       = scpNames[indexScp];
                stringCompare = -2;
                while ((indexMBCO < mbco_length) && (stringCompare <= 0))
                {
                    mbc_association_line = this.MBCO_association.MBCO_associations[indexMBCO];
                    stringCompare        = mbc_association_line.ProcessName.CompareTo(scpName);
                    if (stringCompare < 0)
                    {
                        indexMBCO++;
                    }
                    else if (stringCompare == 0)
                    {
                        scpUnionNames        = scpNames_scpUnionNames_dict[scpName];
                        scpUnionNames_length = scpUnionNames.Length;
                        for (int indexUnion = 0; indexUnion < scpUnionNames_length; indexUnion++)
                        {
                            scpUnionName = scpUnionNames[indexUnion];
                            scpUnion_mbc_association_line                    = new MBCO_association_line_class();
                            scpUnion_mbc_association_line.ProcessID          = "SCP union";
                            scpUnion_mbc_association_line.ProcessName        = (string)scpUnionName.Clone();
                            scpUnion_mbc_association_line.ProcessLevel       = mbc_association_line.ProcessLevel;
                            scpUnion_mbc_association_line.Symbol             = (string)mbc_association_line.Symbol.Clone();
                            scpUnion_mbc_association_line.Parent_processName = "SCP union";
                            scpUnion_mbc_association_list.Add(scpUnion_mbc_association_line);
                        }
                        indexMBCO++;
                    }
                }
            }

            List <MBCO_association_line_class> final_scpUnion_mbc_association_list = new List <MBCO_association_line_class>();

            scpUnion_mbc_association_list = scpUnion_mbc_association_list.OrderBy(l => l.ProcessName).ThenBy(l => l.Symbol).ToList();
            int scpUnion_length = scpUnion_mbc_association_list.Count;

            for (int indexScpUnion = 0; indexScpUnion < scpUnion_length; indexScpUnion++)
            {
                mbc_association_line = scpUnion_mbc_association_list[indexScpUnion];
                if ((indexScpUnion == 0) ||
                    (!mbc_association_line.ProcessName.Equals(scpUnion_mbc_association_list[indexScpUnion - 1].ProcessName)) ||
                    (!mbc_association_line.Symbol.Equals(scpUnion_mbc_association_list[indexScpUnion - 1].Symbol)))
                {
                    final_scpUnion_mbc_association_list.Add(mbc_association_line);
                }
            }
            return(final_scpUnion_mbc_association_list.ToArray());
        }