Exemple #1
0
def augmentCollection(request, collection_id, seed_level):
    if request.method == 'GET':
        if collection_id in names:
            return HttpResponse(json.dumps({warning: 'Collection already exists! Try with another collection id.'}), status=status.HTTP_304_NOT_MODIFIED)
        seeds = Evidence.objects.filter(Q(created_by=collection_id)&~Q(abstract='')&Q(augmentation=seed_level))
        counter = 0
        start = 306
        for e in seeds:
            counter += 1
            if counter < start:
                continue
            print 'processing entry #' + str(counter) + ' out of ' + str(seeds.count())
            unicodeTitle = e.title.encode('utf-8')
            related_evidence, citation_map, pmid = PubMedQuerier.get_related_evidence(unicodeTitle)
            print 'found ' + str(len(related_evidence)) + ' related evidence for ' + unicodeTitle
            refs, citedin = getRefsAndCitedin(pmid, citation_map)    
            for re in related_evidence:
                if not re.title:
                    continue
                re_object = Evidence.objects.create_evidence(re.title, re.abstract, serializePaperMetadata(re.pmid,re.authors_str,re.journal,re.year,''), collection_id, int(seed_level)+1)          
                if re.pmid in refs:
                    Citation.objects.get_or_create(paper_id=e.id, citation_id=re_object.id, collection_id=collection_id)
                if re.pmid in citedin:
                    Citation.objects.get_or_create(paper_id=re_object.id, citation_id=e.id, collection_id=collection_id)

        return HttpResponse(json.dumps({}), status=status.HTTP_200_OK)
Exemple #2
0
def augmentCollection(request, collection_id, seed_level):
    if request.method == 'GET':
        if collection_id in names:
            return HttpResponse(json.dumps({warning: 'Collection already exists! Try with another collection id.'}), status=status.HTTP_304_NOT_MODIFIED)
        seeds = Evidence.objects.filter(Q(created_by=collection_id)&~Q(abstract='')&Q(augmentation=seed_level))
        counter = 0
        for e in seeds:
            counter += 1
            print 'processing entry #' + str(counter) + ' out of ' + str(seeds.count())
#            print e.title
#            counter += 1
#            if counter < 183:
#                continue
#            if counter > 
            related_evidence = PubMedQuerier.get_related_evidence(e.title)
            try:
                print 'found ' + str(len(related_evidence)) + ' related evidence for ' + e.title
            except UnicodeEncodeError:
                pass
            for re in related_evidence:
                Evidence.objects.create_evidence(re.title, re.abstract, json.dumps({
                    'PMID': re.pmid,
                    'AUTHOR': re.authors_str,
                    'JOURNAL': re.journal,
                    'DATE': re.year,
                    'AFFILIATION': ''
                }), collection_id, seed_level+1)
        return HttpResponse(json.dumps({}), status=status.HTTP_200_OK)
Exemple #3
0
def completeCitationInfo(request, collection_id):
    if request.method == 'GET':
        if collection_id == '18':
            completeCitationInfoAMiner(collection_id)
        else:
            evidence = Evidence.objects.filter(created_by=collection_id)
            start = 546
            counter = 1
            for e in evidence:
                if counter < start:
                    counter += 1
                    continue
                print '>> Processing entry ' + str(counter) + ' out of ' + str(evidence.count())
                unicodeTitle = e.title.encode('utf-8')    
                related_evidence, citation_map, pmid = PubMedQuerier.get_related_evidence(unicodeTitle)
                refs, citedin = getRefsAndCitedin(pmid, citation_map)
                print 'found ' + str(len(refs)) + ' ref, ' + str(len(citedin)) + ' citedin'
                for re in related_evidence:
                    re_objects = Evidence.objects.filter(title=re.title,created_by=collection_id)
                    # here paper_id cites citation_id
                    for re_object in re_objects:
                        if re.pmid in refs:
                            try:
                                Citation.objects.get_or_create(paper_id=e.id, citation_id=re_object.id, collection_id=collection_id)
                            except MultipleObjectsReturned:
                                print e.id
                                print re_object.id
                        if re.pmid in citedin:
                            try:
                                Citation.objects.get_or_create(paper_id=re_object.id, citation_id=e.id, collection_id=collection_id) 
                            except MultipleObjectsReturned:
                                print re_object.id                                
                                print e.id
                counter += 1      
        return HttpResponse(json.dumps({}), status=status.HTTP_200_OK)