Ejemplo n.º 1
0
def main():
    # Parse arguments from the command line
    parsed_args = parser_args()
    # Check interpretation request ID matches expected pattern, and split into ID and version
    ir_id, ir_version = get_request_details(parsed_args.interpretation_request)
    # Get v6 of interpretation request JSON
    ir_json_v6 = get_interpretation_request_json(
        ir_id, ir_version, reports_v6=True, testing_on=parsed_args.testing)
    # Check that there is only one exisitng clinical report
    if num_existing_reports(ir_json_v6) != 1:
        sys.exit(
            "Expected 1 clinical report but found {num} for interpretation request {ir_id}-{ir_version}"
            .format(num=num_existing_reports(ir_json_v6),
                    ir_id=ir_id,
                    ir_version=ir_version))
    # Create exit questionnaire
    eq = create_eq(eventDate=parsed_args.date,
                   reporter=parsed_args.reporter,
                   familyLevelQuestions=create_flq(
                       caseSolvedFamily="no",
                       segregationQuestion="no",
                       additionalComments="No tier 1 or 2 variants detected"))
    # Push exit questionnaire to CIP-API
    put_eq(exit_questionnaire=eq,
           ir_id=ir_id,
           ir_version=ir_version,
           testing_on=parsed_args.testing)
Ejemplo n.º 2
0
def main():
    # Parse arguments from the command line
    parsed_args = parser_args()
    # Check interpretation request ID matches expected pattern, and split into ID and version
    ir_id, ir_version = get_request_details(parsed_args.interpretation_request)
    # Get v6 of interpretation request JSON
    ir_json_v6 = get_interpretation_request_json(ir_id, ir_version, reports_v6=True, testing_on=parsed_args.testing)
    # Check that there is not already an exisitng clinical report
    if num_existing_reports(ir_json_v6):
        sys.exit("Existing clinical reports detected for interpretation request {ir_id}-{ir_version}".format(
            ir_id=ir_id,
            ir_version=ir_version
            )
        )
    # Create clinical report object
    cr = create_cr(
        interpretationRequestId=ir_id,
        interpretationRequestVersion=int(ir_version),
        reportingDate=parsed_args.date,
        user=parsed_args.reporter,
        referenceDatabasesVersions=get_ref_db_versions(ir_json_v6),
        softwareVersions=gel_software_versions(ir_json_v6),
        genomicInterpretation="No tier 1 or 2 variants detected"
    )
    # Push clinical report to CIP-API
    post_cr(clinical_report=cr, ir_json_v6=ir_json_v6, testing_on=parsed_args.testing)
Ejemplo n.º 3
0
def handle_interpretation_request(interpretation_request, force_update=False):
    """Handle an interpretation request for getting tiered variants.

    Check if the interpretation request has interpretation_request_data and get
    if from the CIPAPI if not. Make a simple_pedigree record and then pass the
    interpretation_request to output_variant_tsv for export.

    Args:
        interpretation_request: JSON representation of an
            interpretation_request (output of get_interpretation_request_json).
        force_update: Boolean switch to enforce output file overwriting.

    """
    # get_or_create interpretation_request_data
    ir_id, ir_version = (
        interpretation_request['interpretation_request_id'].split('-'))
    try:
        interpretation_request_data = (
            interpretation_request['interpretation_request_data'])
    except KeyError:
        interpretation_request_data = (get_interpretation_request_json(
            ir_id, ir_version))
        interpretation_request['interpretation_request_data'] = (
            interpretation_request_data)
    # make simple pedigree
    interpretation_request['simple_pedigree'] = (
        get_pedigree_dict(interpretation_request))
    output_variant_tsv(interpretation_request, force_update)
Ejemplo n.º 4
0
def test_get_irjson(jpconfig, authenticated_session):
    """Test that the interpretation request in config can be pulled from the CIPAPI"""
    irid = jpconfig.get('pyCIPAPI', 'test_irid')
    irversion = jpconfig.get('pyCIPAPI', 'test_irversion')
    """Interpretation request data can be downloaded from the CIPAPI with an authenticated session"""
    data = irs.get_interpretation_request_json(irid,
                                               irversion,
                                               reports_v6=True,
                                               session=authenticated_session)
    assert 'interpretation_request_id' in data.keys()
Ejemplo n.º 5
0
def count_tiered_variants(case):
    """Count the number of variants in each tier for a case."""
    case['T1'] = 0
    case['T2'] = 0
    case['T3'] = 0
    ir_id, ir_version = case['interpretation_request_id'].split('-')
    interpretation_request = get_interpretation_request_json(ir_id, ir_version)
    case['interpretation-request_data'] = interpretation_request
    for variant in (interpretation_request['interpretation_request_data']
                    ['json_request']['TieredVariants']):
        tier = get_variant_tier(variant)
        case['T{}'.format(tier)] += 1
Ejemplo n.º 6
0
    def get(cls: object, irid: int, irversion: int,
            session: AuthenticatedCIPAPISession) -> IRJson:
        """Get an interpretation request json from the CPIAPI using jellypy.pyCIPAPI library

        Args:
            irid: Interpretation request id
            irversion: Interpretation request version
            session: An authenticated CIPAPI session (pyCIPAPI)
        Returns:
            An IRJson object
        """
        json_response = irs.get_interpretation_request_json(irid,
                                                            irversion,
                                                            reports_v6=True,
                                                            session=session)
        return IRJson(json_response)