use of gov.nih.nci.ctd2.dashboard.model.ShRna in project nci-ctd2-dashboard by CBIIT.
the class DashboardDaoImpl method summarize.
@Override
public void summarize() {
findEntities(Summary.class).forEach(s -> delete(s));
Map<Class<?>, String> summaryClasses = new HashMap<Class<?>, String>();
summaryClasses.put(AnimalModel.class, "Animal Models");
summaryClasses.put(CellSample.class, "Cell Lines");
summaryClasses.put(Compound.class, "Compounds");
summaryClasses.put(Gene.class, "Genes");
summaryClasses.put(ShRna.class, "shRNA");
summaryClasses.put(TissueSample.class, "Disease Contexts (Tissues)");
summaryClasses.forEach((clazz, label) -> {
@SuppressWarnings("unchecked") Summary s = summarizePerSubject((Class<? extends Subject>) clazz, label);
save(s);
});
Summary s = summarizeStories();
save(s);
Summary eco = summarizeECO();
save(eco);
Summary total = summarizeTotal();
save(total);
}
use of gov.nih.nci.ctd2.dashboard.model.ShRna in project nci-ctd2-dashboard by CBIIT.
the class TRCshRNADataProcessor method process.
@Override
public ShRna process(ShRna shRNA) throws Exception {
if (shRNA == null)
return null;
if (shRNA.getOrganism() == null)
return null;
// allow null transcript relationship
// if (shRNA.getTranscript() == null) return null;
String stableURL = new StableURL().createURLWithPrefix("rna", shRNA.getTargetSequence());
shRNA.setStableURL(stableURL);
return shRNA;
}
use of gov.nih.nci.ctd2.dashboard.model.ShRna in project nci-ctd2-dashboard by CBIIT.
the class siRNADataFieldSetMapper method mapFieldSet.
public ShRna mapFieldSet(FieldSet fieldSet) throws BindException {
ShRna shRNA = dashboardFactory.create(ShRna.class);
shRNA.setType("sirna");
shRNA.setDisplayName(fieldSet.readString(REAGENT_NAME_COL_INDEX));
shRNA.setReagentName(shRNA.getDisplayName());
// create synonym back to self
Synonym synonym = dashboardFactory.create(Synonym.class);
synonym.setDisplayName(fieldSet.readString(REAGENT_NAME_COL_INDEX));
shRNA.getSynonyms().add(synonym);
// set target seq
shRNA.setTargetSequence(fieldSet.readString(TARGET_SEQ_COL_INDEX));
// set organism
if (fieldSet.readString(ORGANISM_COL_INDEX).equals("Homo sapiens")) {
Organism organism = organismMap.get("9606");
if (organism == null) {
List<Organism> organisms = dashboardDao.findOrganismByTaxonomyId("9606");
if (organisms.size() == 1)
organism = organisms.get(0);
organismMap.put("9606", organism);
}
if (organism != null)
shRNA.setOrganism(organism);
}
// set transcript
Transcript transcript = getTranscript(fieldSet.readString(TARGET_GENE_COL_INDEX), fieldSet.readString(TRANSCRIPT_ID_COL_INDEX));
if (transcript != null)
shRNA.setTranscript(transcript);
return shRNA;
}
use of gov.nih.nci.ctd2.dashboard.model.ShRna in project nci-ctd2-dashboard by CBIIT.
the class TRCshRNADataFieldSetMapper method mapFieldSet.
public ShRna mapFieldSet(FieldSet fieldSet) throws BindException {
ShRna shRNA = dashboardFactory.create(ShRna.class);
shRNA.setType("shrna");
// sanity check
String cloneId = fieldSet.readString(CLONE_ID_COL_INDEX);
if (cloneId.equalsIgnoreCase(MISSING_ENTRY))
return shRNA;
// only process records that exist in our map
if (!tRCshRNAFilterMap.isEmpty() && !tRCshRNAFilterMap.containsKey(cloneId))
return shRNA;
shRNA.setDisplayName(fieldSet.readString(TARGET_SEQ_COL_INDEX));
shRNA.setReagentName(cloneId);
// create synonym back to self
Synonym synonym = dashboardFactory.create(Synonym.class);
synonym.setDisplayName(fieldSet.readString(CLONE_NAME_COL_INDEX));
shRNA.getSynonyms().add(synonym);
// create xref back to broad
Xref xref = dashboardFactory.create(Xref.class);
xref.setDatabaseId(cloneId);
xref.setDatabaseName(BROAD_SHRNA_DATABASE);
shRNA.getXrefs().add(xref);
// set target seq
shRNA.setTargetSequence(fieldSet.readString(TARGET_SEQ_COL_INDEX));
// set organism
String taxonomyId = fieldSet.readString(TAX_ID_COL_INDEX);
Organism organism = organismMap.get(taxonomyId);
if (organism == null) {
List<Organism> organisms = dashboardDao.findOrganismByTaxonomyId(taxonomyId);
if (organisms.size() == 1)
organism = organisms.get(0);
organismMap.put(taxonomyId, organism);
}
if (organism != null)
shRNA.setOrganism(organism);
// set transcript
Transcript transcript = getTranscript(fieldSet.readString(TRANSCRIPT_ID_COL_INDEX));
if (transcript != null) {
shRNA.setTranscript(transcript);
} else {
transcript = getTranscript(fieldSet.readString(ALT_TRANSCRIPT_ID_COL_INDEX));
if (transcript != null)
shRNA.setTranscript(transcript);
else {
missingTranscriptCount++;
log.debug("null transcript " + missingTranscriptCount + ": " + fieldSet.readString(TARGET_SEQ_COL_INDEX) + " [" + fieldSet.readString(TRANSCRIPT_ID_COL_INDEX) + "][" + fieldSet.readString(ALT_TRANSCRIPT_ID_COL_INDEX) + "]");
}
}
return shRNA;
}
use of gov.nih.nci.ctd2.dashboard.model.ShRna in project nci-ctd2-dashboard by CBIIT.
the class AdminTest method importerTest.
@Test
public void importerTest() throws Exception {
// import taxonomy data
jobExecution = executeJob("taxonomyDataImporterJob");
assertEquals("COMPLETED", jobExecution.getExitStatus().getExitCode());
assertEquals("Organism count", 2, dashboardDao.countEntities(Organism.class).intValue());
List<Organism> organisms = dashboardDao.findOrganismByTaxonomyId("9606");
assertEquals(1, organisms.size());
assertEquals("Homo sapiens", organisms.iterator().next().getDisplayName());
// animal model
jobExecution = executeJob("animalModelImporterJob");
assertEquals("COMPLETED", jobExecution.getExitStatus().getExitCode());
assertEquals("AnimalModel count", 1, dashboardDao.countEntities(AnimalModel.class).intValue());
List<AnimalModel> models = dashboardDao.findAnimalModelByName("[FVB/N x SPRET/Ei] x FVB/N");
assertEquals("AnimalModel found by name", 1, models.size());
assertEquals("10090", models.iterator().next().getOrganism().getTaxonomyId());
// import some cell line data
jobExecution = executeJob("cellLineDataImporterJob");
assertEquals("COMPLETED", jobExecution.getExitStatus().getExitCode());
assertEquals("CellSample count", 3, dashboardDao.countEntities(CellSample.class).intValue());
List<CellSample> cellSamples = dashboardDao.findCellSampleByAnnoSource("COSMIC (Sanger)");
assertEquals("CellSample found by source", 3, cellSamples.size());
cellSamples = dashboardDao.findCellSampleByAnnoType("primary_site");
assertEquals(3, cellSamples.size());
cellSamples = dashboardDao.findCellSampleByAnnoName("acute_lymphoblastic_B_cell_leukaemia");
assertEquals("CellSample size", 1, cellSamples.size());
CellSample cellSample = (CellSample) cellSamples.iterator().next();
assertEquals(8, cellSample.getAnnotations().size());
assertEquals("CellSamples synonyms size", 2, cellSample.getSynonyms().size());
Annotation annotation = cellSample.getAnnotations().iterator().next();
cellSamples = dashboardDao.findCellSampleByAnnotation(annotation);
assertEquals(1, cellSamples.size());
assertEquals(cellSample, cellSamples.iterator().next());
List<Subject> cellSampleSubjects = dashboardDao.findSubjectsBySynonym("5637", true);
assertEquals(1, cellSampleSubjects.size());
cellSample = (CellSample) cellSampleSubjects.iterator().next();
assertEquals("M", cellSample.getGender());
// import some compound data
jobExecution = executeJob("compoundDataImporterJob");
assertEquals("COMPLETED", jobExecution.getExitStatus().getExitCode());
assertEquals("Compound count", 10, dashboardDao.countEntities(Compound.class).intValue());
List<Subject> compoundSubjects = dashboardDao.findSubjectsByXref(CompoundsFieldSetMapper.BROAD_COMPOUND_DATABASE, "411739");
assertEquals(1, compoundSubjects.size());
List<Compound> compounds = dashboardDao.findCompoundsBySmilesNotation("CCCCCCCCC1OC(=O)C(=C)C1C(O)=O");
assertEquals(1, compounds.size());
assertEquals(3, compounds.iterator().next().getSynonyms().size());
List<Subject> compoundSubjectsWithImage = dashboardDao.findSubjectsByXref(CompoundsFieldSetMapper.COMPOUND_IMAGE_DATABASE, "BRD-A01145011.png");
assertEquals(1, compoundSubjectsWithImage.size());
assertEquals("zebularine", compoundSubjectsWithImage.iterator().next().getDisplayName());
// import some gene data
jobExecution = executeJob("geneDataImporterJob");
assertEquals("COMPLETED", jobExecution.getExitStatus().getExitCode());
assertEquals("Gene count", 19, dashboardDao.countEntities(Gene.class).intValue());
List<Gene> genes = dashboardDao.findGenesByEntrezId("7529");
assertEquals(1, genes.size());
assertEquals("synonym number for 7529", 12, genes.iterator().next().getSynonyms().size());
List<Subject> geneSubjects = dashboardDao.findSubjectsBySynonym("RB1", true);
assertEquals(1, geneSubjects.size());
// import some protein data
jobExecution = executeJob("proteinDataImporterJob");
assertEquals("COMPLETED", jobExecution.getExitStatus().getExitCode());
assertEquals("Protein count", 15, dashboardDao.countEntities(Protein.class).intValue());
List<Protein> proteins = dashboardDao.findProteinsByUniprotId("P31946");
assertEquals(1, proteins.size());
// some transcripts get created along with proteins
assertEquals(35, dashboardDao.countEntities(Transcript.class).intValue());
List<Transcript> transcripts = dashboardDao.findTranscriptsByRefseqId("NM_003404");
assertEquals(1, transcripts.size());
// import some shrna
jobExecution = executeJob("TRCshRNADataImporterJob");
assertEquals("COMPLETED", jobExecution.getExitStatus().getExitCode());
assertEquals("ShRna count", 1, dashboardDao.countEntities(ShRna.class).intValue());
List<Subject> shRNASubjects = dashboardDao.findSubjectsByXref("BROAD_SHRNA", "TRCN0000000001");
assertEquals(1, shRNASubjects.size());
ShRna shRNA = (ShRna) shRNASubjects.get(0);
assertEquals("CCCTGCCAAACAAGCTAATAT", shRNA.getDisplayName());
assertEquals("CCCTGCCAAACAAGCTAATAT", shRNA.getTargetSequence());
// import some tissue sample data
jobExecution = executeJob("tissueSampleDataImporterJob");
assertEquals("COMPLETED", jobExecution.getExitStatus().getExitCode());
assertEquals("TissueSample count", 2, dashboardDao.countEntities(TissueSample.class).intValue());
List<TissueSample> tissueSamples = dashboardDao.findTissueSampleByName("neoplasm by morphology");
assertEquals(1, tissueSamples.size());
TissueSample tissueSample = tissueSamples.get(0);
assertEquals(1, tissueSample.getSynonyms().size());
assertEquals("Xrefs size", 2, tissueSample.getXrefs().size());
// check tissue xref import
tissueSamples = dashboardDao.findTissueSampleByName("neoplasm");
assertEquals(1, tissueSamples.size());
String doid = "not found";
for (Xref xref : tissueSamples.get(0).getXrefs()) {
if ("DISEASE ONTOLOGY".equals(xref.getDatabaseName())) {
doid = xref.getDatabaseId();
}
}
assertEquals("DOID:14566", doid);
tissueSamples = dashboardDao.findTissueSampleByName("neoplasm by morphology");
assertEquals(1, tissueSamples.size());
doid = "not found";
for (Xref xref : tissueSamples.get(0).getXrefs()) {
if ("DISEASE ONTOLOGY".equals(xref.getDatabaseName())) {
doid = xref.getDatabaseId();
}
}
assertEquals("not found", doid);
// import controlled vocabulary
jobExecution = executeJob("controlledVocabularyImporterJob");
assertEquals("COMPLETED", jobExecution.getExitStatus().getExitCode());
// we get some subject/observed subject roles
assertEquals("SubjectRole count", 18, dashboardDao.countEntities(SubjectRole.class).intValue());
assertEquals("ObservedSubjectRole count", 75, dashboardDao.countEntities(ObservedSubjectRole.class).intValue());
assertTrue("findObservedSubjectRole", dashboardDao.findObservedSubjectRole("broad_cpd_sens_lineage_enrich", "compound_name") != null);
// we get some evidence/observed evidence roles
assertEquals("countEntities EvidenceRole", 9, dashboardDao.countEntities(EvidenceRole.class).intValue());
assertEquals("countEntities ObservedEvidenceRole", 186, dashboardDao.countEntities(ObservedEvidenceRole.class).intValue());
assertTrue(dashboardDao.findObservedEvidenceRole("broad_cpd_sens_lineage_enrich", "cell_line_subset") != null);
// we get observation template data
assertEquals("countEntities ObservationTemplate", 25, dashboardDao.countEntities(ObservationTemplate.class).intValue());
ObservationTemplate observationTemplate = dashboardDao.findObservationTemplateByName("broad_cpd_sens_lineage_enrich");
assertNotNull(observationTemplate);
assertFalse(observationTemplate.getIsSubmissionStory());
assertEquals(0, observationTemplate.getSubmissionStoryRank().intValue());
observationTemplate = dashboardDao.findObservationTemplateByName("broad_beta-catenin_navitoclax");
assertNotNull(observationTemplate);
assertFalse(observationTemplate.getIsSubmissionStory());
assertEquals(0, observationTemplate.getSubmissionStoryRank().intValue());
// check compound xref import
compounds = dashboardDao.findCompoundsByName("navitoclax");
assertEquals(1, compounds.size());
String drugBankId = "not found";
for (Xref xref : compounds.get(0).getXrefs()) {
if ("DRUG BANK".equals(xref.getDatabaseName())) {
drugBankId = xref.getDatabaseId();
}
}
assertEquals("DB12340", drugBankId);
compoundSubjects = dashboardDao.findSubjectsByXref("DRUG BANK", "DB12025");
assertEquals(1, compoundSubjects.size());
}
Aggregations