use of gov.nih.nci.ctd2.dashboard.model.Gene in project nci-ctd2-dashboard by CBIIT.
the class UniProtDataReader method findGene.
private Gene findGene() {
Gene toReturn = null;
if (geneId.length() > 0) {
toReturn = genesCache.get(geneId);
if (toReturn == null) {
List<Gene> genes = dashboardDao.findGenesByEntrezId(geneId);
if (genes.size() == 1) {
toReturn = genes.get(0);
genesCache.put(geneId, toReturn);
}
}
}
return toReturn;
}
use of gov.nih.nci.ctd2.dashboard.model.Gene in project nci-ctd2-dashboard by CBIIT.
the class GeneDataFieldSetMapper method mapFieldSet.
public Gene mapFieldSet(FieldSet fieldSet) throws BindException {
Gene gene = dashboardFactory.create(Gene.class);
String entrezGeneId = fieldSet.readString(1);
gene.setEntrezGeneId(entrezGeneId);
gene.setDisplayName(fieldSet.readString(2));
// create synonym back to self
Synonym synonym = dashboardFactory.create(Synonym.class);
synonym.setDisplayName(fieldSet.readString(2));
gene.getSynonyms().add(synonym);
// create xref back to ncbi
Xref xref = dashboardFactory.create(Xref.class);
xref.setDatabaseId(entrezGeneId);
xref.setDatabaseName(NCBI_GENE_DATABASE);
gene.getXrefs().add(xref);
for (String synonymName : fieldSet.readString(4).split("\\|")) {
synonym = dashboardFactory.create(Synonym.class);
synonym.setDisplayName(synonymName);
gene.getSynonyms().add(synonym);
}
for (String synonymName : fieldSet.readString(13).split("\\|")) {
synonym = dashboardFactory.create(Synonym.class);
synonym.setDisplayName(synonymName);
gene.getSynonyms().add(synonym);
}
// hgnc parsing
for (String dbXrefs : fieldSet.readString(5).split("\\|")) {
String[] parts = dbXrefs.split("\\:");
if (parts[0].equals("HGNC")) {
gene.setHGNCId(parts[1]);
break;
}
}
// set organism
String taxonomyId = fieldSet.readString(0);
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)
gene.setOrganism(organism);
String map_location = fieldSet.readString(7);
gene.setMapLocation(map_location);
String description = fieldSet.readString(8);
gene.setFullName(description);
String type_of_gene = fieldSet.readString(9);
GeneType geneType = geneTypeMap.get(type_of_gene);
if (geneType == null) {
geneType = dashboardFactory.create(GeneType.class);
geneType.setDisplayName(type_of_gene);
geneTypeMap.put(type_of_gene, geneType);
dashboardDao.save(geneType);
}
gene.setGeneType(geneType);
return gene;
}
use of gov.nih.nci.ctd2.dashboard.model.Gene in project nci-ctd2-dashboard by CBIIT.
the class GeneDataWriter method write.
public void write(List<? extends Gene> items) throws Exception {
StableURL stableURL = new StableURL();
for (Gene gene : items) {
char species = gene.getOrganism().getDisplayName().charAt(0);
species = Character.toLowerCase(species);
gene.setStableURL(stableURL.createURLWithPrefix("gene/" + species, gene.getDisplayName()));
}
dashboardDao.batchSave(items, batchSize);
log.debug("Gene written");
}
use of gov.nih.nci.ctd2.dashboard.model.Gene in project nci-ctd2-dashboard by CBIIT.
the class CnkbController method getCnkbObject.
@SuppressWarnings("unchecked")
@Transactional
@RequestMapping(value = "query", method = { RequestMethod.POST, RequestMethod.GET }, headers = "Accept=application/text")
public ResponseEntity<String> getCnkbObject(@RequestParam("dataType") String dataType, @RequestParam("interactome") String interactome, @RequestParam("version") String version, @RequestParam("selectedGenes") String selectedGenes, @RequestParam("interactionLimit") int interactionLimit, @RequestParam("throttle") String throttle) {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json; charset=utf-8");
final CNKB interactionsConnection = CNKB.getInstance(getCnkbDataURL());
CnkbObject cnkbObject = null;
try {
if (dataType.equals("interactome-context")) {
cnkbObject = new InteractomeInfo();
((InteractomeInfo) cnkbObject).setInteractomeList(interactionsConnection.getNciDatasetAndInteractioCount());
} else if (dataType.equals("interactome-version")) {
cnkbObject = new InteractomeInfo();
((InteractomeInfo) cnkbObject).setDescription(interactionsConnection.getInteractomeDescription(interactome));
List<VersionDescriptor> versionDescriptors = interactionsConnection.getVersionDescriptor(interactome);
for (VersionDescriptor versionDescriptor : versionDescriptors) {
if (versionDescriptor.getRequiresAuthentication() == false)
((InteractomeInfo) cnkbObject).addVersionDescriptor(versionDescriptor);
}
} else if (dataType.equals("interaction-result")) {
cnkbObject = new QueryResult();
List<String> interactionTypes = interactionsConnection.getInteractionTypesByInteractomeVersion(interactome, version);
((QueryResult) cnkbObject).setInteractionTypeList(interactionTypes);
List<InteractionDetail> interactionDetails = null;
Short confidenceType = null;
@SuppressWarnings("rawtypes") List<String> selectedGenesList = (List<String>) new JSONDeserializer().deserialize(selectedGenes);
if (selectedGenesList != null && selectedGenesList.size() != 0) {
for (String gene : selectedGenesList) {
CellularNetWorkElementInformation c = new CellularNetWorkElementInformation(gene.trim());
interactionDetails = interactionsConnection.getInteractionsByGeneSymbol(gene.trim(), interactome, version);
if (confidenceType == null && interactionDetails != null && interactionDetails.size() > 0)
confidenceType = interactionDetails.get(0).getConfidenceTypes().get(0);
for (int i = 0; i < interactionTypes.size(); i++) {
c.addInteractionNum(getInteractionNumber(interactionDetails, interactionTypes.get(i), confidenceType));
}
((QueryResult) cnkbObject).addCnkbElement(c);
}
}
} else if (dataType.equals("interaction-throttle")) {
cnkbObject = new QueryResult();
List<InteractionDetail> interactionDetails = null;
List<String> selectedGenesList = convertStringToList(selectedGenes);
List<Float> confidentList = new ArrayList<Float>();
Short confidenceType = null;
if (selectedGenesList != null && selectedGenesList.size() != 0) {
for (String gene : selectedGenesList) {
interactionDetails = interactionsConnection.getInteractionsByGeneSymbolAndLimit(gene.trim(), interactome, version, interactionLimit);
if (interactionDetails != null) {
if (confidenceType == null && interactionDetails.size() > 0)
confidenceType = interactionDetails.get(0).getConfidenceTypes().get(0);
for (InteractionDetail interactionDetail : interactionDetails) confidentList.add(interactionDetail.getConfidenceValue(confidenceType));
}
}
// sort genes by value
Collections.sort(confidentList, new Comparator<Float>() {
public int compare(Float f1, Float f2) {
return f2.compareTo(f1);
}
});
if (confidentList.size() > interactionLimit)
((QueryResult) cnkbObject).setThreshold(confidentList.get(interactionLimit));
else if (confidentList.size() > 0)
((QueryResult) cnkbObject).setThreshold(confidentList.get(confidentList.size() - 1));
}
}
} catch (UnAuthenticatedException uae) {
uae.printStackTrace();
} catch (ConnectException e1) {
e1.printStackTrace();
} catch (SocketTimeoutException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
JSONSerializer jsonSerializer = new JSONSerializer().exclude("*.class");
return new ResponseEntity<String>(jsonSerializer.deepSerialize(cnkbObject), headers, HttpStatus.OK);
}
use of gov.nih.nci.ctd2.dashboard.model.Gene in project nci-ctd2-dashboard by CBIIT.
the class CnkbController method getInvalidNames.
@SuppressWarnings({ "rawtypes", "unchecked" })
private List<String> getInvalidNames(String geneSymbols) {
List<String> invalidGenes = new ArrayList<String>();
List<String> geneSymbolList = null;
if (geneSymbols != null && geneSymbols.trim().length() > 0) {
geneSymbolList = (List<String>) new JSONDeserializer().deserialize(geneSymbols);
}
for (String gene : geneSymbolList) {
if (gene != null && gene.trim().length() > 0) {
List<Gene> genes = dashboardDao.findGenesBySymbol(gene);
if (genes == null || genes.size() == 0) {
invalidGenes.add(gene);
}
}
}
return invalidGenes;
}
Aggregations