compara-deep-learning/process_negative.py

63 lines
2.2 KiB
Python

import pandas as pd
import numpy as np
import sys
from neighbor_genes import read_genome_maps
from process_data import create_data_homology_ls
from threads import Procerssrunner
from read_get_gene_seq import read_gene_sequences
from access_data_rest import update_rest, update_rest_protein
from prepare_synteny_matrix import read_data_synteny, write_fasta
from save_data import write_dict_json
def read_database_txt(filename):
df = pd.read_csv(filename, sep="\t", header=None)
df = df.drop(0, axis=1)
df.columns = ["gene_stable_id", "species", "homology_gene_stable_id",
"homology_species", "wga", "goc", "homology_type"]
return df
def main():
arg = sys.argv
a, d, ld, ldg, cmap, cimap = read_genome_maps()
print("Genome Maps Loaded.")
df = read_database_txt(arg[-2])
nop = int(arg[-1])
print("Data Read.")
a_h = []
d_h = []
a_h.append(df)
d_h.append(arg[-2].split(".")[0])
n = 3
lsy = create_data_homology_ls(a_h, d_h, n, a, d, ld, ldg, cmap, cimap, 0)
write_dict_json("neighbor_genes_negative", "processed", lsy)
print("Neighbor Genes Found and Saved Successfully:)")
gene_sequences = read_gene_sequences(
a_h, lsy, "geneseq", "gene_seq_negative")
gene_sequences = update_rest(gene_sequences, "gene_seq_negative")
ndir = "processed/synteny_matrices/"
nf1 = "synteny_matrices_global"
nf2 = "synteny_matrices_local"
nf3 = "indexes"
for i in range(len(a_h)):
df = a_h[i]
part = len(df)//nop
pr = Procerssrunner()
pr.start_processes(nop, df, gene_sequences, lsy, part, n, d_h[i])
smg, sml, indexes = read_data_synteny(nop, d_h[i])
print(len(indexes))
np.save(ndir+str(d_h[i])+"_"+nf1, smg)
np.save(ndir+str(d_h[i])+"_"+nf2, sml)
np.save(ndir+str(d_h[i])+"_"+nf3, indexes)
a_h[i] = df.loc[indexes]
print("Synteny Matrices Created Successfully :)")
protein_sequences = read_gene_sequences(
a_h, lsy, "pro_seq", "pro_seq_negative")
protein_sequences = update_rest_protein(
protein_sequences, "pro_seq_negative")
write_fasta(protein_sequences, "pro_seq_negative")
if __name__ == "__main__":
main()