def f(session): feature = get_first(Feature, session, name=name.upper()) if feature is not None and not feature.type == "chromosome": return feature feature = get_first(Feature, session, gene_name=name.upper()) if feature is not None: return feature feature = session.query(Feature).filter(Feature.alias_names.contains(name.upper())).first() if feature is not None: return feature return None
def f(session): from model_old_schema.reference import RefTemp #Move ref to reftemp and test that move was successful. result = move_ref_to_reftemp(pubmed_id, session) self.assertTrue(result) #Test that new ref is valid. reftemp = get_first(RefTemp, pubmed_id=pubmed_id) test_validity(self, reftemp, validate_reftemp, session=session, pubmed_id=pubmed_id)
def f(session): ref = get_first(Reference, session, pubmed_id=pubmed_id) if ref is None: raise RefDoesNotExistException(pubmed_id) reftemp = RefTemp.as_unique(session, pubmed_id=pubmed_id) session.add(reftemp) session.delete(ref) return True
def f(session): reftemp = get_first(RefTemp, session, pubmed_id=pubmed_id) if reftemp is None: raise RefDoesNotExistException(pubmed_id) refbad = RefBad.as_unique(session, pubmed_id=pubmed_id) session.add(refbad) session.delete(reftemp) return True
def f(session): from model_old_schema.reference import Reference ref = get_first(Reference, session, pubmed_id=pmid) message = "RefCurations:<br>" for curation in ref.curations: message = message + str(curation) + ", " message = message + "<br>LitGuides:<br>" for lit_guide in ref.litGuides: message = message + str(lit_guide) + ", " return message
def f(session): reftemp = get_first(RefTemp, session, pubmed_id=pubmed_id) log_it('got_reftemp', 'SUCCESS') if reftemp is None: raise RefDoesNotExistException(pubmed_id) ref = Reference(session, pubmed_id=pubmed_id) log_it('created reference', 'SUCCESS') session.add(ref) session.delete(reftemp) log_it('adjusted session', 'SUCCESS') return True
def f(session): pubmed_id = 23105524 gene_names = ['ACT1', 'CEN1', 'SPO7', 'YAL016C-B', 'YAL009W'] from model_old_schema.reference import Reference move_reftemp_to_ref(pubmed_id, session=session) name_to_feature = self.model.execute(validate_genes(gene_names)) tasks = [Task(TaskType.HIGH_PRIORITY, None, "Comment"), Task(TaskType.DELAY, None, "Comment"), Task(TaskType.HTP_PHENOTYPE_DATA, None, "Comment"), Task(TaskType.OTHER_HTP_DATA, None, "Comment"), Task(TaskType.CLASSICAL_PHENOTYPE_INFORMATION, ['ACT1'], "Comment"), Task(TaskType.GO_INFORMATION, ['ACT1'], "Comment"), Task(TaskType.HEADLINE_INFORMATION, ['YAL009W', 'YAL016C-B'], "Comment"), Task(TaskType.ADDITIONAL_LITERATURE, None, "Comment"), Task(TaskType.REVIEWS, None, "Comment") ] result = associate(pubmed_id, name_to_feature, tasks, session=session) self.assertTrue(result) curations = get_first(Reference, session=session, pubmed_id=pubmed_id).curations lit_guides = get_first(Reference, session=session, pubmed_id=pubmed_id).litGuides self.assertEqual(len(curations), 9) for curation in curations: self.assertTrue(curation.comment is not None) if curation.task == 'Gene Link': self.assertTrue(False, 'The two Tasks with name Gene Link: ADD_TO_DATABASE and REVIEWS have no genes. They should not have curaitons.') self.assertEqual(len(lit_guides), 6) for lit_guide in lit_guides: if curation.task == 'Reviews': self.assertEqual(len(lit_guide.features), 0)
def f(session): word_to_feature = {} features = [] r = get_first(RefTemp, pubmed_id=pubmed_id, session=session) a = str(r.abstract).lower().translate(string.maketrans("", ""), string.punctuation) words = a.split() for word in words: if not word in word_to_feature and not is_number(word): f = get_feature_by_name(word, session) word_to_feature[word] = f if f is not None and not f.type == "chromosome": features.append(f) return features
def f(session): reference = get_first(Reference, session, pubmed_id=pubmed_id) for task in tasks: gene_names = task.gene_names if gene_names is not None and len(gene_names) > 0: #Convert gene_names to features using the name_to_feature table. features = set() for gene_name in task.gene_names: features.add(name_to_feature[gene_name.upper()]) ## Create RefCuration objects and add them to the Reference. for feature in features: if task.ref_curation_name is not None: curation = RefCuration.as_unique(session, reference_id=reference.id, task=task.ref_curation_name, feature_id=feature.id) curation.comment = task.comment reference.curations.append(curation) ## Create a LitGuide object and attach features to it. lit_guide = LitGuide.as_unique(session, topic=task.topic, reference_id=reference.id) for feature in features: if not feature.id in lit_guide.feature_ids: lit_guide.features.append(feature) reference.litGuides.append(lit_guide) else: ## no gene name provided ## if no gene name provided and "Reviews" was checked, ## no need to add any association if task.type != TaskType.REVIEWS: curation = RefCuration.as_unique(session, task=task.ref_curation_name, reference_id=reference.id, feature_id=None) curation.comment = task.comment reference.curations.append(curation) ## Create a LitGuide object. if task.type == TaskType.HTP_PHENOTYPE_DATA or task.type == TaskType.OTHER_HTP_DATA or task.type == TaskType.REVIEWS: lit_guide = LitGuide.as_unique(session, topic=task.topic, reference_id=reference.id) reference.litGuides.append(lit_guide) return True
def f(session): from model_old_schema.reference import Reference ref = get_first(Reference, session, pubmed_id=pmid) curations = ref.curations curation_summary = [] for curation in curations: if curation.feature is None: feature_name = '-' elif curation.feature.gene_name is None: feature_name = curation.feature.name else: feature_name = curation.feature.gene_name if curation.comment is None: comment = '-' else: comment = curation.comment curation_summary.append({'task':curation.task, 'feature':feature_name, 'comment':comment}) litguides = ref.litGuides litguide_summary = [] for litguide in litguides: feature_names = [] for feature in litguide.features: if feature.gene_name is None: feature_names.append(feature.name) else: feature_names.append(feature.gene_name) litguide_summary.append({'topic':litguide.topic, 'features': ', '.join(feature_names)}) ref_summary = {'curations':curation_summary, 'litguides':litguide_summary, 'message':"Reference for pmid = " + pmid + " has been added into the database and associated with the following data:", 'curationlink':'http://pastry.stanford.edu/cgi-bin/curation/litGuideCuration?user='******'&ref=' + pmid, 'sgdlink':'http://pastry.stanford.edu/cgi-bin/reference/reference.pl?dbid=' + ref.dbxref_id} return json.dumps(ref_summary)
def f(session): r = get_first(RefTemp, pubmed_id=pubmed_id, session=session) a = str(r.abstract).lower().translate(string.maketrans("",""), string.punctuation) words = [word.upper() for word in a.split()] return validate_genes(words, session=session)
def test_get_ref(self, pubmed_id=1986222, ref_id=84): from model_old_schema.reference import Reference ref = get_first(Reference, id=ref_id) self.model.execute(test_validity(self, ref, validate_ref, ref_id=ref_id))
def test_get_refbad(self, pubmed_id=16998476): from model_old_schema.reference import RefBad refbad = get_first(RefBad, pubmed_id=pubmed_id) self.model.execute(test_validity(self, refbad, validate_refbad, pubmed_id=pubmed_id))
def test_get_reftemp(self, reftemp_id=81007, pubmed_id=23125886): from model_old_schema.reference import RefTemp reftemp = get_first(RefTemp, id=reftemp_id) self.model.execute(test_validity(self, reftemp, validate_reftemp, reftemp_id=reftemp_id, pubmed_id=pubmed_id))
def test_get_feature(self, feature_id=1971, feature_name='yjl001W'): from model_old_schema.feature import Feature f = get_first(Feature, id=feature_id) self.model.execute(test_validity(self, f, validate_feature, feature_id=feature_id, feature_name=feature_name))