/** * Test importing of Clinical Data File. * * @throws DaoException Database Access Error. * @throws IOException IO Error. */ @Test @Ignore("To be fixed") public void testImportClinicalDataSurvival() throws Exception { // TBD: change this to use getResourceAsStream() File clinicalFile = new File("target/test-classes/clinical_data.txt"); ImportClinicalData importClinicalData = new ImportClinicalData(study, clinicalFile); importClinicalData.importData(); LinkedHashSet<String> caseSet = new LinkedHashSet<String>(); caseSet.add("TCGA-A1-A0SB"); caseSet.add("TCGA-A1-A0SI"); caseSet.add("TCGA-A1-A0SE"); List<Patient> clinicalCaseList = DaoClinicalData.getSurvivalData(study.getInternalId(), caseSet); assertEquals(3, clinicalCaseList.size()); Patient clinical0 = clinicalCaseList.get(0); assertEquals(new Double(79.04), clinical0.getAgeAtDiagnosis()); assertEquals("DECEASED", clinical0.getOverallSurvivalStatus()); assertEquals("Recurred/Progressed", clinical0.getDiseaseFreeSurvivalStatus()); assertEquals(new Double(43.8), clinical0.getOverallSurvivalMonths()); assertEquals(new Double(15.05), clinical0.getDiseaseFreeSurvivalMonths()); Patient clinical1 = clinicalCaseList.get(1); assertEquals(new Double(55.53), clinical1.getAgeAtDiagnosis()); assertEquals("LIVING", clinical1.getOverallSurvivalStatus()); assertEquals("DiseaseFree", clinical1.getDiseaseFreeSurvivalStatus()); assertEquals(new Double(49.02), clinical1.getOverallSurvivalMonths()); assertEquals(new Double(49.02), clinical1.getDiseaseFreeSurvivalMonths()); Patient clinical2 = clinicalCaseList.get(2); assertEquals(null, clinical2.getDiseaseFreeSurvivalMonths()); }
/** * Test importing of Clinical Data File. * * @throws DaoException Database Access Error. * @throws IOException IO Error. */ @Test @Ignore("To be fixed") public void testImportClinicalDataParameters() throws Exception { // TBD: change this to use getResourceAsStream() File clinicalFile = new File("target/test-classes/clinical_data.txt"); ImportClinicalData importClinicalData = new ImportClinicalData(study, clinicalFile); importClinicalData.importData(); Set<String> paramSet = DaoClinicalData.getDistinctParameters(study.getInternalId()); assertEquals(9, paramSet.size()); }
/** * Test importing of Clinical Data File. * * @throws DaoException Database Access Error. * @throws IOException IO Error. */ @Test @Ignore("To be fixed") public void testImportClinicalDataSlice() throws Exception { // TBD: change this to use getResourceAsStream() File clinicalFile = new File("target/test-classes/clinical_data.txt"); ImportClinicalData importClinicalData = new ImportClinicalData(study, clinicalFile); importClinicalData.importData(); List<ClinicalParameterMap> slice = DaoClinicalData.getDataSlice(study.getInternalId(), Arrays.asList("PLATINUMSTATUS")); assertTrue(slice.size() >= 1); ClinicalParameterMap paramMap = slice.get(0); assertEquals("PLATINUMSTATUS", paramMap.getName()); assertEquals("Sensitive", paramMap.getValue("TCGA-A1-A0SD")); assertEquals("NA", paramMap.getValue("TCGA-A1-A0SE")); assertEquals(2, paramMap.getDistinctCategories().size()); }
private void processRequestStatistics( HttpServletRequest request, HttpServletResponse response, String type) throws ServletException, IOException { String cancerStudyIds = request.getParameter(QueryBuilder.CANCER_STUDY_ID); try { boolean includeMut = "mut".equalsIgnoreCase(type); boolean includeCna = "cna".equalsIgnoreCase(type); Map<String, Map<String, Object>> data = new HashMap<String, Map<String, Object>>(); // get list of cancer studies AccessControl accessControl = getaccessControl(); List<CancerStudy> cancerStudies; if (cancerStudyIds == null || cancerStudyIds.isEmpty()) { cancerStudies = accessControl.getCancerStudies(); } else { cancerStudies = new ArrayList<CancerStudy>(); for (String studyId : cancerStudyIds.split("[ ,]+")) { CancerStudy study = DaoCancerStudy.getCancerStudyByStableId(studyId); if (study != null && !accessControl.isAccessibleCancerStudy(studyId).isEmpty()) { cancerStudies.add(study); } } } for (CancerStudy cancerStudy : cancerStudies) { if (cancerStudy.getCancerStudyStableId().equalsIgnoreCase("all")) { continue; } Map<String, Object> row = new HashMap<String, Object>(); data.put(cancerStudy.getCancerStudyStableId(), row); if (!includeMut && !includeMut) { row.put("name", cancerStudy.getName()); String pmid = cancerStudy.getPmid(); if (pmid != null) { row.put("pmid", pmid); } String citation = cancerStudy.getCitation(); if (citation != null) { row.put("citation", citation); } row.put( "cases", DaoPatient.getPatientsByCancerStudyId(cancerStudy.getInternalId()).size()); } if (includeMut) { GeneticProfile mutProfile = cancerStudy.getMutationProfile(); if (mutProfile == null) { row.put("mut", 0); } else { int mutEvents = DaoMutation.countMutationEvents(mutProfile.getGeneticProfileId()); int samplesWithMut = DaoSampleProfile.countSamplesInProfile(mutProfile.getGeneticProfileId()); row.put("mut", 1.0 * mutEvents / samplesWithMut); } } if (includeCna) { GeneticProfile cnaProfile = cancerStudy.getCopyNumberAlterationProfile(false); if (cnaProfile == null) { row.put("cna", 0); } else { List<Integer> samples = DaoSampleProfile.getAllSampleIdsInProfile(cnaProfile.getGeneticProfileId()); Map<Integer, Double> fracs = DaoCopyNumberSegment.getCopyNumberActeredFraction( samples, cnaProfile.getCancerStudyId(), GlobalProperties.getPatientViewGenomicOverviewCnaCutoff()[0]); double aveFrac = 0; for (double frac : fracs.values()) { aveFrac += frac; } aveFrac /= samples.size(); row.put("cna", aveFrac); } } } response.setContentType("application/json"); PrintWriter out = response.getWriter(); try { JSONValue.writeJSONString(data, out); } finally { out.close(); } } catch (DaoException ex) { throw new ServletException(ex); } catch (ProtocolException ex) { throw new ServletException(ex); } }