示例#1
0
def main(args):
    parser = OptionParser('usage: %prog [options]')
    optionsAvailable = (
        ('-i', '--input', 'Sequence_File_ID', 'int',
         'Sequence_File_ID from MegaChip.Sequence_File table.'),
        ('-a', '--alignment', 'Alignment_Protocol_ID', 'int',
         ('Alignment_Protocol_ID from MegaChip.Alignment_Protocol '
          'table.')),
        ('-t', '--taxonomy', 'Taxonomy_ID', 'int',
         'Taxonomy_ID from MegaChipDB.Taxonomy table.'),
        ('-e','--expect','Alignment_Score_Limit','float',
         'Score cutoff for alignment.'),
        ('-f', '--filter', 'Blast_Filter_Protocol_ID', 'int',
         ('Blast_Filter_Protocol_ID from MegaChipDB.'
          'Blast_Filter_Protocol table. If None no filter will be '
          'used.')),
        ('-l', '--likeTHD', 'templateTHD_ID','int',
         'use exsiting THD as template for unspecified values'),
        )

    ids =[ x[2] for x in optionsAvailable if x[2] != 'templateTHD_ID' ]

    for opt in optionsAvailable:
        if opt[3] is None:
            otype = 'string'
        else:
            otype = opt[3]
        parser.add_option(opt[0], opt[1], dest=opt[2], type=otype,
                          help=opt[4])
    (options, args) = parser.parse_args(args)


    defined = lambda x: getattr(options, x) is not None

    if options.templateTHD_ID != None:
        templateTHD=THD(options.templateTHD_ID)
        for opt in ids: 
            if not defined(opt):
                setattr(options,opt,getattr(templateTHD,opt))
        
    if not all(map(defined, ids)):
        print >> sys.stderr, ('Usage error: all arguments are required, '
                              'or derived from template THD')
        print >> sys.stderr, parser.format_help()
        sys.exit(1)

    thdc = THDCreator(options.Sequence_File_ID,
                      options.Alignment_Protocol_ID,
                      options.Alignment_Score_Limit,
                      options.Taxonomy_ID,
                      options.Blast_Filter_Protocol_ID)
    thdc.run()