Esempio n. 1
0
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)
Esempio n. 2
0
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"
Esempio n. 3
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
Esempio n. 4
0
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"
Esempio n. 5
0
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"
Esempio n. 6
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 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
Esempio n. 7
0
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"
Esempio n. 8
0
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)
Esempio n. 9
0
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,
    )
Esempio n. 10
0
 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
Esempio n. 11
0
def fixture_sample_info_dna(sample_info_dna_raw: dict) -> MipBaseSampleInfo:
    return MipBaseSampleInfo(**sample_info_dna_raw)