from typing import Tuple
from typing import List


def parse_dssp_output(dssp_out: str) -> Tuple[List[str], List[str]]:
    """parse dssp output and return a numpy array of secondary structure

    Args:
        dssp_out (str): dssp output

    Returns:
        List[int]: residue numbers
        List[str]: Secondary structure array
    """
    lines = dssp_out.split('\n')
    lines = lines[28: -1]
    judge_misres = lambda line: line[13] == '!'
    resnums = [line[5: 10].strip() for line in lines if not judge_misres(line)]
    ss_array = [line[16] for line in lines if not judge_misres(line)]
    return resnums, ss_array