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)
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)
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)