compara-deep-learning/read_data.py

73 lines
2.1 KiB
Python
Raw Permalink Normal View History

2019-07-24 03:27:54 -07:00
import os
import pandas as pd
import sys
import progressbar
import traceback
2019-07-24 04:54:02 -07:00
2019-07-24 03:27:54 -07:00
def clear_data(x):
2019-07-24 04:54:02 -07:00
if x is None:
2019-07-24 03:27:54 -07:00
return x
2019-07-24 04:54:02 -07:00
x = x.split()
2019-07-24 03:27:54 -07:00
try:
2019-07-24 04:54:02 -07:00
x = x[1]
except BaseException:
_ = 0
# print(x)
x = x[1:-1]
2019-07-24 03:27:54 -07:00
return x
2019-07-24 04:54:02 -07:00
def read_data_genome(dir_name, a, dict_ind_genome):
lf = os.listdir(dir_name)
if len(lf) == 0:
2019-07-24 03:27:54 -07:00
print("No files in the data directory!!!!!!")
sys.exit(1)
2019-07-24 04:54:02 -07:00
colname = [
"Chr",
"source",
"feature",
"start",
"end",
"score",
"strand",
"frame",
"attribute"]
2019-07-24 03:27:54 -07:00
print("Going to read data:")
for x in progressbar.progressbar(range(len(lf))):
2019-07-24 04:54:02 -07:00
data_gene = pd.read_csv(
dir_name + "/" + lf[x],
compression='gzip',
sep='\t',
comment='#',
header=None,
names=colname)
# print(data_gene.head)
data_gene = data_gene[data_gene["feature"] == "gene"]
tmp = data_gene["attribute"].str.split(";", expand=True)
tmp = tmp.iloc[:, :5]
data_gene[["gene_id", "gene_version", "gene_name",
"gene_source", "gene_biotype"]] = tmp
data_gene = data_gene.drop("attribute", axis=1)
# print(data_gene[0:10])
2019-07-24 03:27:54 -07:00
try:
2019-07-24 04:54:02 -07:00
for y in [
"gene_version",
"gene_name",
"gene_source",
"gene_biotype",
"gene_id"]:
data_gene[y] = data_gene[y].apply(clear_data)
2019-07-24 03:27:54 -07:00
except Exception as e:
traceback.print_exc()
print(e)
continue
2019-07-24 04:54:02 -07:00
# print(data_gene[0:10])
data_gene = data_gene[(data_gene['gene_biotype'] == 'protein_coding') | (
data_gene['gene_source'] == 'protein_coding')]
# print(data_gene[data_gene["gene_id"]=="ENSNGAG00000000407"])
2019-07-24 03:27:54 -07:00
a.append(data_gene)
2019-07-24 04:54:02 -07:00
n = lf[x].split(".")[0]
dict_ind_genome[n] = len(a) - 1
return a, dict_ind_genome