Search in sources :

Example 1 with EntryPublication

use of org.nextprot.api.core.domain.publication.EntryPublication in project nextprot-api by calipho-sib.

the class EntryPublicationViewServiceImpl method buildEntryPublicationView.

@Override
public List<EntryPublicationView> buildEntryPublicationView(String entryAccession, PublicationCategory publicationCategory) {
    EntryPublications entryPublications = entryPublicationService.findEntryPublications(entryAccession);
    List<EntryPublicationView> list = new ArrayList<>();
    Map<Long, EntryPublication> entryPublicationMap = entryPublications.getEntryPublicationList(publicationCategory).stream().collect(Collectors.toMap(EntryPublication::getPubId, Function.identity(), (entryPublication, entryPublication2) -> entryPublication));
    List<Publication> publications = publicationService.findPublicationsByEntryName(entryPublications.getEntryAccession());
    for (Publication publication : publications) {
        if (entryPublicationMap.containsKey(publication.getPublicationId())) {
            EntryPublicationView view = new EntryPublicationView();
            EntryPublication entryPublication = entryPublicationMap.get(publication.getPublicationId());
            view.setCitedInViews(entryPublication.getCitedInViews());
            view.setDirectLinks(entryPublication.getDirectLinks());
            view.setPublication(publication);
            list.add(view);
        }
    }
    return list;
}
Also used : Autowired(org.springframework.beans.factory.annotation.Autowired) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) ArrayList(java.util.ArrayList) EntryPublicationService(org.nextprot.api.core.service.EntryPublicationService) Publication(org.nextprot.api.core.domain.Publication) List(java.util.List) Service(org.springframework.stereotype.Service) PublicationCategory(org.nextprot.api.core.domain.publication.PublicationCategory) Map(java.util.Map) EntryPublicationViewService(org.nextprot.api.core.service.EntryPublicationViewService) PublicationService(org.nextprot.api.core.service.PublicationService) EntryPublication(org.nextprot.api.core.domain.publication.EntryPublication) EntryPublications(org.nextprot.api.core.domain.publication.EntryPublications) EntryPublicationView(org.nextprot.api.core.domain.publication.EntryPublicationView) EntryPublications(org.nextprot.api.core.domain.publication.EntryPublications) EntryPublicationView(org.nextprot.api.core.domain.publication.EntryPublicationView) EntryPublication(org.nextprot.api.core.domain.publication.EntryPublication) ArrayList(java.util.ArrayList) Publication(org.nextprot.api.core.domain.Publication) EntryPublication(org.nextprot.api.core.domain.publication.EntryPublication)

Example 2 with EntryPublication

use of org.nextprot.api.core.domain.publication.EntryPublication in project nextprot-api by calipho-sib.

the class EntryPublicationTest method testPublicationDirectLinkListOrder.

@Test
public void testPublicationDirectLinkListOrder() {
    EntryPublication p = new EntryPublication("", 12);
    List<String> scopes = Arrays.asList("VARIANT SCA34 PHE-168", "CLEAVAGE OF INITIATOR METHIONINE [LARGE SCALE ANALYSIS]", "INVOLVEMENT IN SCA34");
    List<String> comments = Arrays.asList("[PDB:1JWU] [Structure]", "[iPTMnet:P04637] [PTM/processing]Phosphorylation", "[GeneRif:3303] S100A4 has opposite roles in Tag7 and Hsp70- mediated tumoricidal mechanisms", "[PRO:PR:000028557] [PTM/processing]P18848-1", "[GAD:125207] [Pathology & Biotech]Associated with CARDIOVASCULAR: pulmonary hypertension; thrombosis, deep vein; pulmonary thromboembolism; HLA-B");
    List<PublicationDirectLink> list = new ArrayList<>();
    scopes.forEach(scope -> list.add(new PublicationDirectLink(188, PublicationProperty.SCOPE, scope)));
    comments.forEach(comment -> list.add(new PublicationDirectLink(188, PublicationProperty.COMMENT, comment)));
    p.setDirectLinks(list);
    Assert.assertEquals(3, p.getDirectLinks(PublicationProperty.SCOPE).size());
    Assert.assertEquals(5, p.getDirectLinks(PublicationProperty.COMMENT).size());
    List<PublicationDirectLink> links = p.getDirectLinks();
    Assert.assertEquals(8, links.size());
    // should be datasource UniProt first, then order by database alpha insensitive, then by label alpha
    Assert.assertEquals(links.get(0).getLabel(), "CLEAVAGE OF INITIATOR METHIONINE [LARGE SCALE ANALYSIS]");
    Assert.assertEquals(links.get(1).getLabel(), "INVOLVEMENT IN SCA34");
    Assert.assertEquals(links.get(2).getLabel(), "VARIANT SCA34 PHE-168");
    Assert.assertEquals(links.get(3).getLabel(), "[Pathology & Biotech]Associated with CARDIOVASCULAR: pulmonary hypertension; thrombosis, deep vein; pulmonary thromboembolism; HLA-B");
    Assert.assertEquals(links.get(4).getLabel(), "S100A4 has opposite roles in Tag7 and Hsp70- mediated tumoricidal mechanisms");
    Assert.assertEquals(links.get(5).getLabel(), "[PTM/processing]Phosphorylation");
    Assert.assertEquals(links.get(6).getLabel(), "[Structure]");
    Assert.assertEquals(links.get(7).getLabel(), "[PTM/processing]P18848-1");
    Assert.assertEquals(links.get(0).getDatasource(), "Uniprot");
    Assert.assertEquals(links.get(1).getDatasource(), "Uniprot");
    Assert.assertEquals(links.get(2).getDatasource(), "Uniprot");
    Assert.assertEquals(links.get(3).getDatasource(), "PIR");
    Assert.assertEquals(links.get(4).getDatasource(), "PIR");
    Assert.assertEquals(links.get(5).getDatasource(), "PIR");
    Assert.assertEquals(links.get(6).getDatasource(), "PIR");
    Assert.assertEquals(links.get(7).getDatasource(), "PIR");
}
Also used : PublicationDirectLink(org.nextprot.api.core.domain.publication.PublicationDirectLink) EntryPublication(org.nextprot.api.core.domain.publication.EntryPublication) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 3 with EntryPublication

use of org.nextprot.api.core.domain.publication.EntryPublication in project nextprot-api by calipho-sib.

the class EntryPublicationTest method testPublicationDirectLinkListEmpty.

@Test
public void testPublicationDirectLinkListEmpty() {
    EntryPublication p = new EntryPublication("", 12);
    Assert.assertTrue(p.getDirectLinks().isEmpty());
}
Also used : EntryPublication(org.nextprot.api.core.domain.publication.EntryPublication) Test(org.junit.Test)

Example 4 with EntryPublication

use of org.nextprot.api.core.domain.publication.EntryPublication in project nextprot-api by calipho-sib.

the class EntryPublicationTest method testPublicationDirectLinkListCommentEmpty.

@Test
public void testPublicationDirectLinkListCommentEmpty() {
    EntryPublication p = new EntryPublication("", 12);
    Assert.assertTrue(p.getDirectLinks(PublicationProperty.SCOPE).isEmpty());
}
Also used : EntryPublication(org.nextprot.api.core.domain.publication.EntryPublication) Test(org.junit.Test)

Example 5 with EntryPublication

use of org.nextprot.api.core.domain.publication.EntryPublication in project nextprot-api by calipho-sib.

the class EntryPublicationTest method testPublicationDirectLinkListScopeEmpty.

@Test
public void testPublicationDirectLinkListScopeEmpty() {
    EntryPublication p = new EntryPublication("", 12);
    Assert.assertTrue(p.getDirectLinks(PublicationProperty.SCOPE).isEmpty());
}
Also used : EntryPublication(org.nextprot.api.core.domain.publication.EntryPublication) Test(org.junit.Test)

Aggregations

EntryPublication (org.nextprot.api.core.domain.publication.EntryPublication)6 Test (org.junit.Test)4 ArrayList (java.util.ArrayList)2 List (java.util.List)1 Map (java.util.Map)1 Function (java.util.function.Function)1 Collectors (java.util.stream.Collectors)1 Publication (org.nextprot.api.core.domain.Publication)1 EntryPublicationView (org.nextprot.api.core.domain.publication.EntryPublicationView)1 EntryPublications (org.nextprot.api.core.domain.publication.EntryPublications)1 GlobalPublicationStatistics (org.nextprot.api.core.domain.publication.GlobalPublicationStatistics)1 PublicationCategory (org.nextprot.api.core.domain.publication.PublicationCategory)1 PublicationDirectLink (org.nextprot.api.core.domain.publication.PublicationDirectLink)1 EntryPublicationService (org.nextprot.api.core.service.EntryPublicationService)1 EntryPublicationViewService (org.nextprot.api.core.service.EntryPublicationViewService)1 PublicationService (org.nextprot.api.core.service.PublicationService)1 Autowired (org.springframework.beans.factory.annotation.Autowired)1 Cacheable (org.springframework.cache.annotation.Cacheable)1 Service (org.springframework.stereotype.Service)1