示例#1
0
 def _process_options(self):
     '''Compile all attributes that use information in options'''
     #load primers
     try: 
         self.primers = []
         if self.primer_list:
             for primer in self.primer_list:
                 seq_record = load_sequence(primer['sequence'], 
                                            primer['id'])
                 if not seq_record.id: seq_record.id = random_text(6)
                 self.primers.append(Primer(seq_record, primer['concentration']))
                 primer['sequence'] = str(seq_record.seq)
                 primer['id']       = seq_record.id
     except AttributeError: pass
     #set max_mismatches to be the 20% of the length of the biggest primer
     try:
         if self.max_mismatches is None:
             self.max_mismatches = 1
             for primer in self.primers:
                 if primer is None: continue
                 self.max_mismatches = max(int(0.2*len(primer)), 
                                           self.max_mismatches)
     except AttributeError: pass
     #set job_id
     self.job_id = ''
     for primer in self.primers:
         if not primer: continue
         if self.job_id: self.job_id += '-'
         if primer.id:
             self.job_id += primer.id
     self.job_id += '_%s' % str(hash(self))
     #set tmpdir if provided
     if self.tmp_dir:
         tmpStorage.TMPDIR = self.tmp_dir
示例#2
0
 def format_tmp_db(cls, sequences, nucleotide=True):
     '''Create a temporary local blast database
     @param sequences: SeqRecord object to populate the database with
     @param nucleotide: if the sequences are nucleotide (True) or protein (False)
     @return: database name that includes includes its path'''
     basename = random_text(8)
     dbdir = tempfile.mkdtemp('_blastDB')
     sfile = mktmp_fasta(sequences)
     if run_cline(FormatDBCommandline(input=sfile, 
                                      protein='F' if nucleotide else 'T', 
                                      name=basename),
                  cwd=dbdir): 
         return os.path.join(dbdir, basename)
     else: shutil.rmtree(dbdir, ignore_errors=True)
示例#3
0
 def format_tmp_db(cls, sequences, nucleotide=True):
     '''Create a temporary local blast database
     @param sequences: SeqRecord object to populate the database with
     @param nucleotide: if the sequences are nucleotide (True) or protein (False)
     @return: database name that includes includes its path'''
     basename = random_text(8)
     dbdir = tempfile.mkdtemp('_blastDB')
     sfile = mktmp_fasta(sequences)
     if run_cline(FormatDBCommandline(input=sfile, 
                                      protein='F' if nucleotide else 'T', 
                                      name=basename),
                  cwd=dbdir): 
         return os.path.join(dbdir, basename)
     else: shutil.rmtree(dbdir, ignore_errors=True)
     return None
 def _process_options(self):
     '''Compile all attributes that use information in options'''
     #load primers
     try:
         self.primers = []
         if self.primer_list:
             for primer in self.primer_list:
                 seq_record = load_sequence(primer['sequence'],
                                            primer['id'])
                 if not seq_record.id: seq_record.id = random_text(6)
                 self.primers.append(
                     Primer(seq_record, primer['concentration']))
                 primer['sequence'] = str(seq_record.seq)
                 primer['id'] = seq_record.id
     except AttributeError:
         pass
     #set max_mismatches to be the 20% of the length of the biggest primer
     try:
         if self.max_mismatches is None:
             self.max_mismatches = 1
             for primer in self.primers:
                 if primer is None: continue
                 self.max_mismatches = max(int(0.2 * len(primer)),
                                           self.max_mismatches)
     except AttributeError:
         pass
     #set job_id
     self.job_id = ''
     for primer in self.primers:
         if not primer: continue
         if self.job_id: self.job_id += '-'
         if primer.id:
             self.job_id += primer.id
     self.job_id += '_%s' % str(hash(self))
     #set tmpdir if provided
     if self.tmp_dir:
         tmpStorage.TMPDIR = self.tmp_dir