def get_gene_data(gene_name):
    '''
    extract expressed tissues list given by the gene name
    :param gene_name:
    :return:
    '''
    argvs = get_cli_args()
    temp_host_name = argvs.HOST
    temp_gene_name = argvs.GENE
    if temp_host_name is None:
        host_name = "Homo_sapiens"
        gene_name = "TGM1"
    else:
        host_name = modify_host_name(temp_host_name)
        gene_name = temp_gene_name
    file = "/".join((config.get_unigene_directory(), \
                     host_name, gene_name + "." + config.get_uigene_extension()))
    if my_io.is_valid_gene_file_name(file):
        # using f-strings
        message = f"\nFound Gene {gene_name} for {host_name}"
    else:
        print(f"Not found\n\
Gene {gene_name} does not exist for {host_name}. exiting now...")
        sys.exit()
    fh_in = my_io.get_fh(file, "r")
    for line in fh_in:
        match = re.search(r'^EXPRESS\s+(\D+)', line)
        if match:
            tissue_string = match.group(1)
            temp_tissue_list = list(tissue_string.split(sep='|'))
            tissue_list = sorted([tissue.strip() for tissue in temp_tissue_list])
            return message, tissue_list
示例#2
0
def get_gene_data(gene_file):
    """
    Get Epressed gene names from host file.
    :param gene_file: Absolute path to gene file of host
    :return: Sorted list of expresssed genes in host
    """
    fh_in = my_io.get_fh(gene_file, "r")

    tissue_strig = []

    for line in fh_in:
        if re.search("EXPRESS", line):
            line = line.replace("\n", "")
            line = re.sub('[A-Z]', "", line)
            tissue_strig = line.split("|")
            tissue_strig = [x.strip(' ') for x in tissue_strig]

    my_io.get_fh(fh_in, "close")

    return sorted(tissue_strig)
示例#3
0
def test_get_fh_4_OSError():
    _create_test_file(FILE_2_TEST)
    with pytest.raises(OSError):
        my_io.get_fh("does_not_exist.txt", "r")
    os.remove(FILE_2_TEST)
示例#4
0
def test_get_fh_4_TypeError():
    _create_test_file(FILE_2_TEST)
    with pytest.raises(TypeError):
        my_io.get_fh([], "r")
    os.remove(FILE_2_TEST)
示例#5
0
def test_get_fh_4_ValueError():
    _create_test_file(FILE_2_TEST)
    with pytest.raises(ValueError):
        my_io.get_fh("test.txt", "rrr")
        os.remove(FILE_2_TEST)
示例#6
0
def test_existing_get_fh_4_writing():
    test = my_io.get_fh(FILE_2_TEST, "w")
    assert hasattr(test, "write") == True, "Not able to open for writing"
    test.close()
    os.remove(FILE_2_TEST)
示例#7
0
def test_existing_get_fh_4_reading():
    _create_test_file(FILE_2_TEST)
    test = my_io.get_fh(FILE_2_TEST, "r")
    assert hasattr(test, "readline") == True, "Not able to open for reading"
    test.close()
    os.remove(FILE_2_TEST)