def setFrequencies(model, mali, prefix=""): """set frequencies in a model according to those observed in data. prefix: prefix for rate parameters. Frequencies are labelled: pa0, pc0, ..., pa1, pc1, ..., pa2, pc2, ... """ try: frequencies = Codons.getFrequenciesPerCodonPosition( [x.mString for x in mali.values()]) except XGram.Exceptions.UsageError: return ## build a dummy grammar to insert frequencies dummy_grammar = XGram.Model.Grammar() for x in range(0, 3): params = [] for a in ('A', 'C', 'G', 'T'): params.append( ("%sp%s%i" % (prefix, a.lower(), x), frequencies[x][a])) dummy_grammar.addVariable(params) model.mGrammar.copyParameters(dummy_grammar, ignore_missing=True)
def setFrequencies(model, mali, prefix=""): """set frequencies in a model according to those observed in data. prefix: prefix for rate parameters. Frequencies are labelled: pa0, pc0, ..., pa1, pc1, ..., pa2, pc2, ... """ try: frequencies = Codons.getFrequenciesPerCodonPosition( [x.mString for x in list(mali.values())]) except XGram.Exceptions.UsageError: return # build a dummy grammar to insert frequencies dummy_grammar = XGram.Model.Grammar() for x in range(0, 3): params = [] for a in ('A', 'C', 'G', 'T'): params.append( ("%sp%s%i" % (prefix, a.lower(), x), frequencies[x][a])) dummy_grammar.addVariable(params) model.mGrammar.copyParameters(dummy_grammar, ignore_missing=True)
def setFrequencies( model, data): """set frequencies in a model according to those observed in data. """ sequences = getSequencesFromStk( data ) frequencies = Codons.getFrequenciesPerCodonPosition( sequences.values() ) ## build a dummy grammar to insert frequencies dummy_grammar = XGram.Model.Grammar() for x in range(0,3): params = [] for a in ('A', 'C', 'G', 'T'): params.append( ("P%i%s" % (x, a), frequencies[x][a]) ) dummy_grammar.addVariable( params ) model.mGrammar.copyParameters( dummy_grammar, ignore_missing = True)
explicit_extension=True, fix_kappa=options.kappa == None, fix_omega=options.omega == None) ## set codon usage frequencies if options.insert_frequencies: mali = Mali.Mali() mali.readFromFile(open(options.insert_frequencies, "r"), format=options.input_format) if mali.getLength() == 0: raise "refusing to process empty alignment." frequencies = Codons.getFrequenciesPerCodonPosition( map(lambda x: x.mString, mali.values())) # build a dummy grammar to insert frequencies dummy_grammar = XGram.Model.Grammar() for x in range(0, 3): params = [] for a in ('A', 'C', 'G', 'T'): params.append( ("p%s%i" % (a.lower(), x), frequencies[x][a])) dummy_grammar.addVariable(params) input_model.mGrammar.copyParameters(dummy_grammar, ignore_missing=True) ## count the number of synonymous and non-synonymous sites if options.omega or options.kappa:
fix_kappa = options.kappa == None, fix_omega = options.omega == None ) ## set codon usage frequencies if options.insert_frequencies: mali = Mali.Mali() mali.readFromFile( open(options.insert_frequencies, "r"), format = options.input_format ) if mali.getLength() == 0: raise "refusing to process empty alignment." frequencies = Codons.getFrequenciesPerCodonPosition( map( lambda x: x.mString, mali.values() )) # build a dummy grammar to insert frequencies dummy_grammar = XGram.Model.Grammar() for x in range(0,3): params = [] for a in ('A', 'C', 'G', 'T'): params.append( ("p%s%i" % (a.lower(), x), frequencies[x][a]) ) dummy_grammar.addVariable( params ) input_model.mGrammar.copyParameters( dummy_grammar, ignore_missing = True) ## count the number of synonymous and non-synonymous sites if options.omega or options.kappa: n, s = countSites( input_model )