def parse_header(header_lines):
    """Return Info object from header information.

    header_lines -- list of lines or anything that behaves like it.

    Parses only the first three header lines with Filename, Organism, and
    Accession number. In general lines that contain a colon will be parsed.
    There's no error checking in here. If it fails to split on ':', the
    information is simply not added to the dictionary. The expected format
    for header lines is "key: value". The citation lane is parsed differently.
    """
    info = {}
    for line in header_lines:
        if line.startswith('Citation'):
            info['Citation'] = line.split()[-1].strip()
        elif ':' in line:
            try:
                field, value = map(str.strip, line.split(':', 1))
                info[field] = value
            except ValueError:
                continue
        else:
            continue
    return info
