예제 #1
0
    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
예제 #2
0
 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)
예제 #3
0
 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
예제 #4
0
 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
예제 #5
0
    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 
예제 #6
0
    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
예제 #7
0
        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)
예제 #8
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
예제 #9
0
  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
예제 #10
0
    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)  
예제 #11
0
파일: misc.py 프로젝트: kpaskov/Lit_Review
 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)
예제 #12
0
 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))
예제 #13
0
 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))
예제 #14
0
 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))
예제 #15
0
 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))