예제 #1
0
        private void Write_scp_network_for_results_of_dynamic_enrichment_analsyis(Ontology_enrichment_class dynamic_onto_enrichment_filtered, Ontology_enrichment_class standard_onto_enrichment_filtered)
        {
            if (Options.Report)
            {
                Report_class.WriteLine("{0}: Visualize SCP relationships of dynamic enrichment results", typeof(Mbc_enrichment_pipeline_class).Name);
            }
            string subdirectory = Get_results_subdirectory_for_indicated_ontology(Ontology_type_enum.Molecular_biology_cell);

            dynamic_onto_enrichment_filtered.Order_by_complete_sample_pvalue();
            standard_onto_enrichment_filtered.Order_by_complete_sample_pvalue();

            Leave_out_class leave_out = new Leave_out_class();

            leave_out.Generate_by_reading_safed_file();

            List <Ontology_enrichment_line_class> sameSample_ontology_enrichment = new List <Ontology_enrichment_line_class>();
            int dynamic_onto_enrich_length = dynamic_onto_enrichment_filtered.Enrich.Length;
            Ontology_enrichment_line_class enrichment_line;

            Leave_out_scp_scp_network_class current_scp_network;
            List <string> current_scpNames = new List <string>();

            string complete_sampleName;

            string[] standard_enriched_scps;
            Dictionary <string, Shape_enum> nodeLable_shape_dict = new Dictionary <string, Shape_enum>();

            for (int indexE = 0; indexE < dynamic_onto_enrich_length; indexE++)
            {
                enrichment_line = dynamic_onto_enrichment_filtered.Enrich[indexE];
                if ((indexE == 0) || (!enrichment_line.Equal_complete_sample(dynamic_onto_enrichment_filtered.Enrich[indexE - 1])))
                {
                    sameSample_ontology_enrichment.Clear();
                }
                sameSample_ontology_enrichment.Add(enrichment_line);
                if ((indexE == dynamic_onto_enrich_length - 1) || (!enrichment_line.Equal_complete_sample(dynamic_onto_enrichment_filtered.Enrich[indexE + 1])))
                {
                    current_scpNames.Clear();
                    foreach (Ontology_enrichment_line_class sameSample_enrichment_line in sameSample_ontology_enrichment)
                    {
                        current_scpNames.AddRange(sameSample_enrichment_line.Scp_name.Split(Global_class.Scp_delimiter));
                    }
                    complete_sampleName = enrichment_line.Complete_sample_name;
                    current_scp_network = Leave_out_scp_network_for_dynamicEnrichment_visualization.Deep_copy_scp_network();
                    current_scp_network.Scp_nw.Keep_only_input_nodeNames(current_scpNames.ToArray());
                    current_scp_network.Add_ancestors_of_missing_levels(this.Mbco_parentChild_nw);
                    standard_enriched_scps = standard_onto_enrichment_filtered.Get_all_scps_of_completeSample(complete_sampleName);
                    nodeLable_shape_dict.Clear();
                    foreach (string standard_enriched_scp in standard_enriched_scps)
                    {
                        nodeLable_shape_dict.Add(standard_enriched_scp, Shape_enum.Rectangle);
                    }
                    current_scp_network.Scp_nw.Write_yED_nw_in_results_directory_with_nodes_colored_by_level_and_sameLevel_processes_grouped(subdirectory + complete_sampleName + "_dynamicEnrichment_nw", Shape_enum.Diamond, nodeLable_shape_dict);
                }
            }
        }
예제 #2
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);
        }