Exemple #1
0
def list_command(args) :
    log = get_log()
    e = EnsemblDownloader()

    suppression_defaults = {
            'ensembl'   : 70, # errors with 69 and older (missing columns)
            'metazoa'   : 17,
            'protists'  : 17,
            'plants'    : 17,
            'bacteria'  : 17,
            'fungi'     : 17,
        }

    if not args.suppress :
        args.suppress = suppression_defaults[args.database]

    log.info("listing species in %s database" % args.database)
    log.info("suppressing releases prior to %d" % args.suppress)

    try :
        pretty_print_table(
            ('Species', 'Release'), 
            e.get_all_species(db=args.database, 
                              suppress=args.suppress))

    except EnsemblDownloadError, ede :
        log.fatal(ede.message)
        exit(1)
Exemple #2
0
    def _initialise_db(self, species, release, database_name, nucleotide) :
        e = EnsemblDownloader()
        self.log.info("downloading %s/%d" % (species, release))
        
        try :
            self.data = ensembl_to_glutton(e.download(species, release, database_name, nucleotide))

        except EnsemblDownloadError, ede :
            self.log.fatal(ede.message)
            exit(1)
Exemple #3
0
# data is assumed to be a list of tuples
def pretty_print_table(headings, data) :
    spacer = 4
    num_columns = len(headings)

    assert _sanity_check_data(data, num_columns)
    headings = [ h.capitalize() for h in headings ]

    # generate format string using column widths
    fmt = ""
    for i in range(num_columns) :
        fmt += ("%%-%ds" % (max([len(headings[i])] + [ _safe_len(d[i]) for d in data ]) + spacer))

    # print the actual table
    s = fmt % tuple(headings)
    print ""
    print s
    print '-'*len(s)

    for d in data :
        print fmt % tuple(d)

    print ""

if __name__ == '__main__' :
    from glutton.ensembl_downloader import EnsemblDownloader
    e = EnsemblDownloader()
    pretty_print_table(['species', 'release'], e.get_all_species('metazoa'))