def __init__(self): Predictor.__init__(self) self.mParser = PredictionParser.PredictionParserExonerate() self.mParser.SetRestrictToStrand("+") self.mExecutable = "exonerate" self.mOptions = "-Q protein -T dna -m p2g --softmasktarget TRUE --forcegtag TRUE --forwardcoordinates FALSE" self.mOutputOptions = '--showalignment FALSE --showvulgar FALSE --showsugar FALSE --showcigar FALSE ' + \ ' --ryo "diy\t%S\t%ql\t%r\t%pi\t%ps\t%V\n" --showtargetgff FALSE --showquerygff FALSE'
def Run(self, peptide_sequence, genomic_sequence): self.CreateTemporaryFiles() outfile = open(self.mFilenameTempPeptide, "w") outfile.write(">%s\n%s\n" % ("peptide", peptide_sequence)) outfile.close() outfile = open(self.mFilenameTempGenome, "w") outfile.write(">%s\n%s\n" % ("genome", genomic_sequence)) outfile.close() statement = string.join( map(str, ( self.mExecutable, self.mDefaultOptions, self.mOptions, self.mOutputOptions, "--query", self.mFilenameTempPeptide, "--target", self.mFilenameTempGenome, )), " ") if self.mLogLevel >= 3: print "# statement: %s" % statement s = subprocess.Popen(statement, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=self.mTempDirectory, close_fds=True) (out, err) = s.communicate() if s.returncode != 0: raise ExonerateError, "Error in calculating Exonerate\n%s" % err self.mStdout.write(out) self.mStderr.write(err) self.DeleteTemporaryFiles() parser = PredictionParser.PredictionParserExonerate() if self.mDoParse: return parser.Parse(out, peptide_sequence, genomic_sequence)
# read peptide sequences if param_filename_peptides: peptide_sequences = Genomics.ReadPeptideSequences( open(param_filename_peptides, "r")) else: peptide_sequences = {} # print HEADER if param_loglevel >= 2: print SHORT_HEADER_SUMMARY # aligned entries from exonerate entries = [] parser = PredictionParser.PredictionParserExonerate() if param_format == "exonerate": for line in sys.stdin: if line[0] == "#": continue if line[:3] != "diy": continue data = string.split(line[:-1], "\t") query_token = data[1] # parser has to go inside, because GetBestMatch returns reference # copy