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)
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)
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)
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()
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
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)