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); }
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()); }