compara-deep-learning/pfam_folder_pred.py

66 lines
2.1 KiB
Python

import pandas as pd
import sys
import progressbar
import os
from neighbor_genes import read_genome_maps
from process_data import create_data_homology_ls
from read_get_gene_seq import read_gene_sequences
from access_data_rest import update_rest_protein
from prepare_synteny_matrix import write_fasta
def read_database(fname, dirname):
df = pd.read_csv(dirname+"/"+fname, sep="\t", header=None)
label_dict = dict(ortholog_one2one=1,
other_paralog=0,
non_homolog=2,
ortholog_one2many=1,
ortholog_many2many=1,
within_species_paralog=0,
gene_split=4)
label = []
for _, row in df.iterrows():
label.append(label_dict[row[7]])
df = df.assign(label=label)
df = df.drop(7, axis=1)
df = df.drop(0, axis=1)
df.columns = ["gene_stable_id", "species", "homology_gene_stable_id",
"homology_species", "goc", "wga", "label"]
return df
def read_prediction_file_folder(dir_name):
lf = os.listdir(dir_name)
a_h = []
d_h = []
for x in progressbar.progressbar(lf):
df = read_database(x, dir_name)
a_h.append(df)
d_h.append(x.split(".")[0])
return a_h, d_h
def create_synteny_features(a_h, d_h, n, a, d, ld, ldg, cmap, cimap, name):
lsy = create_data_homology_ls(a_h, d_h, n, a, d, ld, ldg, cmap, cimap, 0)
protein_sequences = read_gene_sequences(
a_h, lsy, "pro_seq", "prediction_"+name)
protein_sequences = update_rest_protein(
protein_sequences, "prediction_"+name)
write_fasta(protein_sequences, "prediction_"+name)
print("Protein Sequences Loaded")
def main():
arg = sys.argv
dirname = arg[-1]
a_h, d_h = read_prediction_file_folder(dirname)
n = 3
a, d, ld, ldg, cmap, cimap = read_genome_maps() # read the genome maps
print("Genome Maps Loaded.")
create_synteny_features(a_h, d_h, n, a, d, ld, ldg, cmap, cimap, dirname)
if __name__ == "__main__":
main()