def test_instantiate_mip_sampleinfo(sample_info_dna_raw: dict): """Tests sample info against a pydantic MipBaseSampleInfo""" # GIVEN a dictionary with the basic config # WHEN instantiating a MipBaseSampleInfo object sample_info_object = MipBaseSampleInfo(**sample_info_dna_raw) # THEN assert that it was successfully created assert isinstance(sample_info_object, MipBaseSampleInfo)
def test_mip_sampleinfo_rank_model_version(sample_info_dna_raw: dict): """Test rank_model_version validator""" # GIVEN a dictionary with the sample info data # WHEN instantiating a MipBaseSampleInfo object sample_info_object = MipBaseSampleInfo(**sample_info_dna_raw) # THEN assert that rank_model_version was set assert sample_info_object.rank_model_version == "v1.0"
def test_mip_sampleinfo_is_finished(sample_info_dna_raw: dict): """Test is_finished validator""" # GIVEN a dictionary with the sample info data # WHEN instantiating a MipBaseSampleInfo object sample_info_object = MipBaseSampleInfo(**sample_info_dna_raw) # THEN assert that is_finished was set assert sample_info_object.is_finished
def test_mip_sampleinfo_case_id(sample_info_dna_raw: dict): """Test case_id validator""" # GIVEN a dictionary with the sample info data # WHEN instantiating a MipBaseSampleInfo object sample_info_object = MipBaseSampleInfo(**sample_info_dna_raw) # THEN assert that case_id was set assert sample_info_object.case_id == "yellowhog"
def test_mip_sampleinfo_genome_build(sample_info_dna_raw: dict): """Test genome_build validator""" # GIVEN a dictionary with the sample info data # WHEN instantiating a MipBaseSampleInfo object sample_info_object = MipBaseSampleInfo(**sample_info_dna_raw) # THEN assert that genome build was set assert sample_info_object.genome_build == "grch37"
def test_mip_sampleinfo_is_finished(sample_info_dna_raw: dict): """Test is_finished validator""" # GIVEN a dictionary with the sample info data when analysisrunstatus is not finished sample_info_dna_raw["analysisrunstatus"] = "not_finished" # WHEN instantiating a MipBaseSampleInfo object sample_info_object = MipBaseSampleInfo(**sample_info_dna_raw) # THEN assert that is_finished was set assert not sample_info_object.is_finished
def test_mip_sampleinfo_case_id_with_family_id(sample_info_dna_raw: dict): """Test case_id validator""" # GIVEN a MIP sample info file missing a case_id but with family_id sample_info_dna_raw.pop("case_id") # WHEN instantiating a MipBaseSampleInfo object sample_info_object = MipBaseSampleInfo(**sample_info_dna_raw) # THEN assert that case_id was set assert sample_info_object.case_id == "a_family_id"
def test_mip_sampleinfo(case_qc_sample_info_path: Path): """Test to parse the content of a real qc_sample_info file""" # GIVEN the path to a file with sample_info metadata content with open(case_qc_sample_info_path, "r") as sample_info_handle: raw_sample_info = yaml.full_load(sample_info_handle) # WHEN instantiating a MipBaseSampleInfo object sample_info_object = MipBaseSampleInfo(**raw_sample_info) # THEN assert that it was successfully created assert isinstance(sample_info_object, MipBaseSampleInfo)
def parse_mip_analysis(mip_config_raw: dict, qc_metrics_raw: dict, sample_info_raw: dict) -> MipAnalysis: """Parse the output analysis files from MIP Args: mip_config_raw (dict): raw YAML input from MIP analysis config file qc_metrics_raw (dict): raw YAML input from MIP analysis qc metric file sample_info_raw (dict): raw YAML input from MIP analysis qc sample info file Returns: MipAnalysis: parsed MIP analysis data """ mip_config: MipBaseConfig = MipBaseConfig(**mip_config_raw) qc_metrics = MIPMetricsDeliverables(**qc_metrics_raw) sample_info: MipBaseSampleInfo = MipBaseSampleInfo(**sample_info_raw) return MipAnalysis( case=mip_config.case_id, genome_build=sample_info.genome_build, sample_id_metrics=qc_metrics.sample_id_metrics, mip_version=sample_info.mip_version, rank_model_version=sample_info.rank_model_version, sample_ids=mip_config.sample_ids, sv_rank_model_version=sample_info.sv_rank_model_version, )
def get_pipeline_version(self, case_id: str) -> str: """Get MIP version from sample info file""" LOG.debug("Fetch pipeline version") sample_info_raw = yaml.safe_load(self.get_sample_info_path(case_id).open()) sample_info: MipBaseSampleInfo = MipBaseSampleInfo(**sample_info_raw) return sample_info.mip_version
def fixture_sample_info_dna(sample_info_dna_raw: dict) -> MipBaseSampleInfo: return MipBaseSampleInfo(**sample_info_dna_raw)