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