Search in sources :

Example 6 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 {
        List<String> interactomeList = interactionsConnection.getNciDatasetAndInteractioCount();
        if (interactome != null && interactome.trim().length() > 0 && !interactionsConnection.interactionNames.contains(interactome.trim())) {
            return new ResponseEntity<String>(headers, HttpStatus.NOT_FOUND);
        }
        if (dataType.equals("interactome-context")) {
            cnkbObject = new InteractomeInfo();
            ((InteractomeInfo) cnkbObject).setInteractomeList(interactomeList);
        } 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 7 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)

Example 8 with Gene

use of gov.nih.nci.ctd2.dashboard.model.Gene in project nci-ctd2-dashboard by CBIIT.

the class DashboardDaoImpl method findGenesBySymbolCaseSensitive.

@Override
public List<Gene> findGenesBySymbolCaseSensitive(String symbol) {
    List<Gene> caseInsensitive = queryWithClass("from GeneImpl where displayName = :symbol", "symbol", symbol);
    // only case-sensitive match is accepted
    List<Gene> list = new ArrayList<Gene>();
    for (Gene gene : caseInsensitive) {
        if (gene.getDisplayName().equals(symbol))
            list.add(gene);
    }
    return list;
}
Also used : Gene(gov.nih.nci.ctd2.dashboard.model.Gene) ArrayList(java.util.ArrayList)

Example 9 with Gene

use of gov.nih.nci.ctd2.dashboard.model.Gene in project nci-ctd2-dashboard by CBIIT.

the class DashboardDaoImpl method findProteinByGene.

@Cacheable(value = "uniprotCache")
@Override
public List<Protein> findProteinByGene(Gene gene) {
    Set<Protein> proteins = new HashSet<Protein>();
    List<Transcript> transcriptList = queryWithClass("from TranscriptImpl where gene = :gene", "gene", gene);
    for (Transcript t : transcriptList) {
        List<Protein> list = queryWithClass("from ProteinImpl as p where :transcript member of p.transcripts", "transcript", t);
        for (Protein p : list) {
            proteins.add(p);
        }
    }
    return (new ArrayList<Protein>(proteins));
}
Also used : Transcript(gov.nih.nci.ctd2.dashboard.model.Transcript) Protein(gov.nih.nci.ctd2.dashboard.model.Protein) HashSet(java.util.HashSet) Cacheable(org.springframework.cache.annotation.Cacheable)

Example 10 with Gene

use of gov.nih.nci.ctd2.dashboard.model.Gene in project nci-ctd2-dashboard by CBIIT.

the class FindProteinFromGeneController method browseByCharacter.

@Transactional
@RequestMapping(value = "{id}", method = { RequestMethod.GET, RequestMethod.POST }, headers = "Accept=application/json")
public ResponseEntity<String> browseByCharacter(@PathVariable Integer id) {
    HttpHeaders headers = new HttpHeaders();
    headers.add("Content-Type", "application/json; charset=utf-8");
    Gene gene = dashboardDao.getEntityById(Gene.class, id);
    List<Protein> proteinByGene = dashboardDao.findProteinByGene(gene);
    JSONSerializer jsonSerializer = new JSONSerializer().transform(new ImplTransformer(), Class.class).transform(new DateTransformer(), Date.class);
    return new ResponseEntity<String>(jsonSerializer.deepSerialize(proteinByGene), headers, HttpStatus.OK);
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) ResponseEntity(org.springframework.http.ResponseEntity) Gene(gov.nih.nci.ctd2.dashboard.model.Gene) ImplTransformer(gov.nih.nci.ctd2.dashboard.util.ImplTransformer) DateTransformer(gov.nih.nci.ctd2.dashboard.util.DateTransformer) Protein(gov.nih.nci.ctd2.dashboard.model.Protein) JSONSerializer(flexjson.JSONSerializer) Transactional(org.springframework.transaction.annotation.Transactional) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

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