(
adata: &IMAnnData,
key: &str,
groups: &[String],
scores: HashMap<String, Vec<f64>>,
pvals: HashMap<String, Vec<f64>>,
pvals_adj: HashMap<String, Vec<f64>>,
logfoldchanges
| 996 | |
| 997 | #[allow(clippy::too_many_arguments)] |
| 998 | fn store_results( |
| 999 | adata: &IMAnnData, |
| 1000 | key: &str, |
| 1001 | groups: &[String], |
| 1002 | scores: HashMap<String, Vec<f64>>, |
| 1003 | pvals: HashMap<String, Vec<f64>>, |
| 1004 | pvals_adj: HashMap<String, Vec<f64>>, |
| 1005 | logfoldchanges: HashMap<String, Vec<f64>>, |
| 1006 | gene_names: HashMap<String, Vec<String>>, |
| 1007 | method: TestMethod, |
| 1008 | groupby: &str, |
| 1009 | reference: Option<String>, |
| 1010 | ) -> anyhow::Result<()> { |
| 1011 | let scores_df = create_dataframe_from_map(&scores)?; |
| 1012 | let pvals_df = create_dataframe_from_map(&pvals)?; |
| 1013 | let pvals_adj_df = create_dataframe_from_map(&pvals_adj)?; |
| 1014 | let logfoldchanges_df = create_dataframe_from_map(&logfoldchanges)?; |
| 1015 | let gene_names_df = create_string_dataframe_from_map(&gene_names)?; |
| 1016 | |
| 1017 | let uns = adata.uns(); |
| 1018 | |
| 1019 | let result_key = if key.is_empty() || key == "rank_genes_groups" { |
| 1020 | "rank_genes_groups".to_string() |
| 1021 | } else { |
| 1022 | format!("rank_genes_groups_{}", key) |
| 1023 | }; |
| 1024 | |
| 1025 | uns.add_data( |
| 1026 | format!("{}_scores", result_key), |
| 1027 | IMElement::new(Data::ArrayData(ArrayData::DataFrame(scores_df))), |
| 1028 | )?; |
| 1029 | |
| 1030 | uns.add_data( |
| 1031 | format!("{}_pvals", result_key), |
| 1032 | IMElement::new(Data::ArrayData(ArrayData::DataFrame(pvals_df))), |
| 1033 | )?; |
| 1034 | |
| 1035 | uns.add_data( |
| 1036 | format!("{}_pvals_adj", result_key), |
| 1037 | IMElement::new(Data::ArrayData(ArrayData::DataFrame(pvals_adj_df))), |
| 1038 | )?; |
| 1039 | |
| 1040 | uns.add_data( |
| 1041 | format!("{}_logfoldchanges", result_key), |
| 1042 | IMElement::new(Data::ArrayData(ArrayData::DataFrame(logfoldchanges_df))), |
| 1043 | )?; |
| 1044 | |
| 1045 | uns.add_data( |
| 1046 | format!("{}_names", result_key), |
| 1047 | IMElement::new(Data::ArrayData(ArrayData::DataFrame(gene_names_df))), |
| 1048 | )?; |
| 1049 | |
| 1050 | uns.add_data( |
| 1051 | format!("{}_params_reference", result_key), |
| 1052 | IMElement::new(Data::Scalar(DynScalar::String( |
| 1053 | reference.unwrap_or("rest".to_string()).to_string(), |
| 1054 | ))), |
| 1055 | )?; |
no test coverage detected