Example #1
0
def run_parser():

    padding = 300
    directory_and_file = entry.get()
    file_name = directory_and_file.split(
        '/')[-2] + '/' + directory_and_file.split('/')[-1]
    file_type = check_file_type(file_name)
    username = entry_name.get()
    dictionary = {}
    nm = ''
    parser_details = ''
    #primer_list = [name.split('.')[0] for name in os.listdir('primers')]
    primer_list = os.listdir('primers')
    primer_applied = False
    if file_type == 'gbk':
        print 'Running parser'
        gbk_reader = GbkParser(file_name, padding, args.trim_flanking)
        dictionary = gbk_reader.run()
        parser_details = gbk_reader.get_version
    elif file_type == 'lrg':
        print 'Running parser'
        lrg_reader = LrgParser(file_name, padding, args.trim_flanking)
        dictionary = lrg_reader.run()
        parser_details = lrg_reader.get_version

    if dictionary['genename'] + '.csv' in primer_list:
        primer_applied = True
        primer_label = primer()
        primer_details = 'Primer Labels: ' + primer_label.get_version
        dictionary = primer_label.run(dictionary, os.getcwd())

    parser_details = '{0} {1} {2}'.format(file_type.upper(), 'Parser:',
                                          parser_details)

    os.chdir("output")
    for transcript in dictionary['transcripts']:
        print 'transcript: %d' % transcript

        input_reader = Reader()
        writer = LatexWriter()
        reader_details = 'Reader: ' + input_reader.get_version
        writer_details = 'Writer: ' + writer.get_version
        xml_gui_details = 'Control: ' + get_version()
        if primer_applied:
            list_of_versions = [parser_details, reader_details, \
                            writer_details, xml_gui_details, primer_details]
        else:
            list_of_versions = [parser_details, reader_details, \
                            writer_details, xml_gui_details]
        lrg_num = file_name.split('.')[0].split('/')[1].replace(
            '_', '\_') + 't' + str(transcript)
        input_list, nm = input_reader.run(dictionary, transcript,
                                          args.write_as_latex,
                                          list_of_versions, args.print_clashes,
                                          file_type, lrg_num, username)
        if file_type == 'gbk':
            filename = dictionary['genename'] + '_' + nm
        else:
            filename = dictionary['genename'] + '_' + file_name.split(
                '.')[0].split('/')[1] + 't' + str(transcript)
        if args.write_as_latex:
            latex_file, pdf_file = writer.run(input_list, filename,
                                              args.write_as_latex)
            call(["pdflatex", "-interaction=batchmode", latex_file])
            clean_up(os.getcwd(), pdf_file)
            move_files(latex_file)
        else:
            latex_file = writer.run(input_list, filename, args.write_as_latex)

        # quick step to allow for non-overlapping writes
        print str(transcript) + ' has been printed'

    print "Process has completed successfully"
    root.quit()