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
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)
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)
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)
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)
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)
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)