def main():
    super_concat = False
    options, args = interface()
    xml = ElementTree().parse(options.input,
                              parser=XMLParser(target=MyTreeBuilder()))
    # delete the older subs. models from the xml file
    for node in [
            'HKYModel', 'gtrModel', 'siteModel', 'patterns', 'treeLikelihood'
    ]:
        xml = delete_node(xml, node, 1)
    # delete the kappa and frequency parameters in 'operators'
    delete = [
        'kappa', 'frequencies', 'alpha', 'pInv', 'ac', 'ag', 'at', 'cg', 'gt'
    ]
    xml = delete_children_from_node(xml, xml.find('operators'), delete)
    xml = delete_children_from_node(
        xml,
        xml.find('mcmc').find('posterior').find('prior'), delete)
    # there are 2 log tags, disambiguated w/ id params.  delete elements from
    # the one we want (fileLog)
    xml = delete_children_from_node(xml, get_file_log_section(xml), delete)

    # jettison some comments
    xml = comment_remover(xml, [
        'The general time reversible', 'HKY substitution model', 'site model',
        'The unique patterns from 1 to end', 'npatterns='
    ])

    # load our substitution model information
    substitution_models = cPickle.load(open(options.subs))
    snippets = ElementTree().parse(options.params,
                                   parser=XMLParser(target=MyTreeBuilder()))

    # insert patterns on a per locus basis
    insert_position = get_position(xml, 'alignment')
    xml = insert_patterns_for_locus(xml, substitution_models, insert_position,
                                    snippets)

    # insert substitution models on a per locus basis
    insert_position = get_position(xml, 'strictClockBranchRates')
    xml, insert_position = insert_models_for_locus(xml, substitution_models,
                                                   insert_position, snippets)

    # insert site models on a per locus basis
    xml, insert_position = insert_site_models_for_locus(
        xml, substitution_models, insert_position, snippets)

    # insert tree likelihoods on a per locus basis
    xml, insert_position = insert_tree_likelihoods_for_locus(
        xml, substitution_models, insert_position, snippets)

    # insert operators
    xml = insert_operators_for_locus(xml, substitution_models, snippets)
    write(xml, options.output)
    pdb.set_trace()
    """model_names, site_names = get_xml_model_names(set(sub_models_from_modeltest.values()))
コード例 #2
0
def open_data_file(path):
    with open(path, 'rb') as encoding_detect_file:
        file_text = encoding_detect_file.read()
        encoding = chardet.detect(file_text)['encoding']
    parser = XMLParser(encoding=encoding)
    tree = parse(path, parser=parser)
    root = tree.getroot()
    return root
コード例 #3
0
ファイル: darcs.py プロジェクト: ezc/mercurial
 def xml(self, cmd, **kwargs):
     # NOTE: darcs is currently encoding agnostic and will print
     # patch metadata byte-for-byte, even in the XML changelog.
     etree = ElementTree()
     # While we are decoding the XML as latin-1 to be as liberal as
     # possible, etree will still raise an exception if any
     # non-printable characters are in the XML changelog.
     parser = XMLParser(encoding='latin-1')
     fp = self._run(cmd, **kwargs)
     etree.parse(fp, parser=parser)
     self.checkexit(fp.close())
     return etree.getroot()
コード例 #4
0
 def open(self):
     register_namespace("mrng", "http://mremoteng.org")
     xmlp = XMLParser(encoding="utf-8")
     with open(self.filePath, 'r') as xml_file:
         tree = ET.parse(xml_file, parser=xmlp)
         self.root = tree.getroot()
コード例 #5
0
ファイル: xmpplify.py プロジェクト: Tallefer/jabrss
 def connect(self):
     self.__parser = XMLParser(target=XmppHandler(self))
     self.send((
         '<?xml version=\'1.0\'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="%s" version="1.0">'
         % (_escape_attrib(self.__jid.domain()), )).encode(self.__encoding))
     self.__stream_open = True