Search in sources :

Example 1 with Gene

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;
}
Also used : Gene(gov.nih.nci.ctd2.dashboard.model.Gene)

Example 2 with Gene

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;
}
Also used : Xref(gov.nih.nci.ctd2.dashboard.model.Xref) Organism(gov.nih.nci.ctd2.dashboard.model.Organism) Gene(gov.nih.nci.ctd2.dashboard.model.Gene) Synonym(gov.nih.nci.ctd2.dashboard.model.Synonym) GeneType(gov.nih.nci.ctd2.dashboard.model.GeneType)

Example 3 with 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");
}
Also used : StableURL(gov.nih.nci.ctd2.dashboard.util.StableURL) Gene(gov.nih.nci.ctd2.dashboard.model.Gene)

Example 4 with Gene

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);
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) CnkbObject(gov.nih.nci.ctd2.dashboard.util.cnkb.CnkbObject) CellularNetWorkElementInformation(gov.nih.nci.ctd2.dashboard.util.cnkb.CellularNetWorkElementInformation) Comparator(java.util.Comparator) UnAuthenticatedException(gov.nih.nci.ctd2.dashboard.util.cnkb.UnAuthenticatedException) QueryResult(gov.nih.nci.ctd2.dashboard.util.cnkb.QueryResult) ArrayList(java.util.ArrayList) List(java.util.List) CNKB(gov.nih.nci.ctd2.dashboard.util.cnkb.CNKB) ConnectException(java.net.ConnectException) JSONSerializer(flexjson.JSONSerializer) JSONDeserializer(flexjson.JSONDeserializer) IOException(java.io.IOException) ResponseEntity(org.springframework.http.ResponseEntity) SocketTimeoutException(java.net.SocketTimeoutException) VersionDescriptor(gov.nih.nci.ctd2.dashboard.util.cnkb.VersionDescriptor) InteractionDetail(gov.nih.nci.ctd2.dashboard.util.cnkb.InteractionDetail) InteractomeInfo(gov.nih.nci.ctd2.dashboard.util.cnkb.InteractomeInfo) Transactional(org.springframework.transaction.annotation.Transactional) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 5 with Gene

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;
}
Also used : Gene(gov.nih.nci.ctd2.dashboard.model.Gene) ArrayList(java.util.ArrayList) JSONDeserializer(flexjson.JSONDeserializer)

Aggregations

Gene (gov.nih.nci.ctd2.dashboard.model.Gene)9 Transactional (org.springframework.transaction.annotation.Transactional)7 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)6 JSONSerializer (flexjson.JSONSerializer)5 HttpHeaders (org.springframework.http.HttpHeaders)5 ResponseEntity (org.springframework.http.ResponseEntity)5 ArrayList (java.util.ArrayList)4 Protein (gov.nih.nci.ctd2.dashboard.model.Protein)3 Transcript (gov.nih.nci.ctd2.dashboard.model.Transcript)3 Xref (gov.nih.nci.ctd2.dashboard.model.Xref)3 CNKB (gov.nih.nci.ctd2.dashboard.util.cnkb.CNKB)3 InteractionDetail (gov.nih.nci.ctd2.dashboard.util.cnkb.InteractionDetail)3 UnAuthenticatedException (gov.nih.nci.ctd2.dashboard.util.cnkb.UnAuthenticatedException)3 IOException (java.io.IOException)3 ConnectException (java.net.ConnectException)3 SocketTimeoutException (java.net.SocketTimeoutException)3 JSONDeserializer (flexjson.JSONDeserializer)2 DashboardDao (gov.nih.nci.ctd2.dashboard.dao.DashboardDao)2 Organism (gov.nih.nci.ctd2.dashboard.model.Organism)2 Subject (gov.nih.nci.ctd2.dashboard.model.Subject)2