Add files via upload

This commit is contained in:
HarshitGupta11 2019-06-12 13:55:02 +05:30 committed by GitHub
parent d3a0b2a6b8
commit d66638422f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 93 additions and 41 deletions

View file

@ -4,6 +4,7 @@ import edlib as ed
import pandas as pd import pandas as pd
import time import time
import sys import sys
import progressbar
from skbio.alignment import local_pairwise_align_ssw from skbio.alignment import local_pairwise_align_ssw
from skbio import DNA,TabularMSA,RNA from skbio import DNA,TabularMSA,RNA
@ -31,7 +32,7 @@ def create_synteny_matrix_mul(gene_seq,g1,g2,n):
try: try:
temp=gene_seq[gene] temp=gene_seq[gene]
except: except:
print("Updating gene sequences for gene:",gene) #print("Updating gene sequences for gene:",gene)
update(gene_seq,gene) update(gene_seq,gene)
for gene in g2: for gene in g2:
if gene=="NULL_GENE": if gene=="NULL_GENE":
@ -39,7 +40,7 @@ def create_synteny_matrix_mul(gene_seq,g1,g2,n):
try: try:
temp=gene_seq[gene] temp=gene_seq[gene]
except: except:
print("Updating gene sequences for gene:",gene) #print("Updating gene sequences for gene:",gene)
update(gene_seq,gene) update(gene_seq,gene)
#print(n) #print(n)
sm=np.zeros((n,n,2)) sm=np.zeros((n,n,2))
@ -70,7 +71,7 @@ def synteny_matrix(gene_seq,hdf,lsy,n,enable_break):
t=0 t=0
ind=[] ind=[]
start=time.time() start=time.time()
for index,row in hdf.iterrows(): for index,row in progressbar.progressbar(hdf.iterrows()):
g1=str(row["gene_stable_id"]) g1=str(row["gene_stable_id"])
g2=str(row["homology_gene_stable_id"]) g2=str(row["homology_gene_stable_id"])
x=[] x=[]

View file

@ -8,50 +8,47 @@ from read_data import read_data_homology
from read_get_gene_seq import read_gene_sequences from read_get_gene_seq import read_gene_sequences
from create_synteny_matrix import synteny_matrix from create_synteny_matrix import synteny_matrix
if not os.path.exists("processed/synteny_matrcies"): if not os.path.isdir("processed/synteny_matrices"):
os.mkdir("processed/synteny_matrices") os.mkdir("processed/synteny_matrices")
arg=sys.argv arg=sys.argv
arg=arg[1:] arg=arg[1:]
enable_break=0 nos=int(arg[0])
if arg[-1]=="-test":
enable_break=1
lsy={} lsy={}
a_h,d_h=read_data_homology("data_homology") a_h,d_h=read_data_homology("data_homology")
print(d_h)
d_h=list(d_h.keys())
print("Homology Data Read") print("Homology Data Read")
for i in range(len(a_h)):
df=a_h[i]
random_indexes=np.random.permutation(len(df))
random_indexes=random_indexes[:nos]
df=df.loc[random_indexes]
assert(len(df)==nos)
a_h[i]=df
with open("processed/neighbor_genes.json","r") as file: with open("processed/neighbor_genes.json","r") as file:
lsy=dict(json.load(file)) lsy=dict(json.load(file))
print(len(lsy)) print(len(lsy))
print("Neighbor Genes Loaded") print("Neighbor Genes Loaded")
if enable_break==1:
gene_sequences=read_gene_sequences(a_h,lsy,"geneseq","gene_sequences")
else: gene_sequences=read_gene_sequences(a_h,lsy,"geneseq","gene_sequences")
gene_sequences=read_gene_sequences(a_h,lsy,"geneseq","gene_sequences")
print("Gene Sequences Loaded") print("Gene Sequences Loaded")
if enable_break==1:
save_after=10
else:
save_after=500000
n=3 n=3
c=0
j=0
ndir="processed/synteny_matrices/" ndir="processed/synteny_matrices/"
nf1="synteny_matrices_global" nf1="synteny_matrices_global"
nf2="synteny_matrices_local" nf2="synteny_matrices_local"
nf3="indexes" nf3="indexes"
for df in a_h: for i in range(len(a_h)):
j+=1 df=a_h[i]
for i in progressbar.progressbar(range(0,len(df)//save_after)): synteny_matrices_global,synteny_matrices_local,indexes=synteny_matrix(gene_sequences,df,lsy,n,0)
synteny_matrices_global,synteny_matrices_local,indexes=synteny_matrix(gene_sequences,df[i*save_after:(i+1)*save_after],lsy,n,enable_break) np.save(ndir+str(d_h[i])+"_"+nf1,synteny_matrices_global)
np.save(ndir+nf1+"_"+str(j)+str(c+1),synteny_matrices_global) np.save(ndir+str(d_h[i])+"_"+nf2,synteny_matrices_local)
np.save(ndir+nf2+"_"+str(j)+str(c+1),synteny_matrices_local) np.save(ndir+str(d_h[i])+"_"+nf3,indexes)
np.save(ndir+nf3+"_"+str(j)+str(c+1),indexes)
c+=1
if enable_break==1:
break
print("Synteny Matrices Created Successfully :)") print("Synteny Matrices Created Successfully :)")

View file

@ -2,6 +2,7 @@ import pandas
import gc import gc
import numpy as np import numpy as np
import json import json
import os
import progressbar import progressbar
from save_data import save_data_json from save_data import save_data_json
from save_data import write_dict_json from save_data import write_dict_json
@ -92,9 +93,10 @@ def get_nearest_neighbors(g,gs,n,a,d,ld,ldg):
return ne,nr return ne,nr
def create_data_homology_ls(a_h,d_h,n,a,d,ld,ldg,save_after,enable_break): def create_data_homology_ls(a_h,d_h,n,a,d,ld,ldg,save_after,enable_break,update):
lsy={} #dictionary which stores +/- n genes of the given gene by id. Each key is a gene id which corresponds to the one in center. lsy={} #dictionary which stores +/- n genes of the given gene by id. Each key is a gene id which corresponds to the one in center.
t=0 t=0
if os.path.exists("processed/neighbor_genes.json"):
with open("processed/neighbor_genes.json","r") as file: with open("processed/neighbor_genes.json","r") as file:
lsy=dict(json.load(file)) lsy=dict(json.load(file))
print("Existing neighbor genes read!!") print("Existing neighbor genes read!!")
@ -131,13 +133,14 @@ def create_data_homology_ls(a_h,d_h,n,a,d,ld,ldg,save_after,enable_break):
except: except:
continue continue
t+=1 t+=1
if t>=save_after: if t>=save_after and update==0:
t=0 t=0
c+=1 c+=1
write_dict_json(name+str(c),"processed",lsytemp) write_dict_json(name+str(c),"processed",lsytemp)
lsytemp={} lsytemp={}
if enable_break==1: if enable_break==1:
break break
if not update:
c+=1 c+=1
write_dict_json(name+str(c),"processed",lsytemp) write_dict_json(name+str(c),"processed",lsytemp)
write_dict_json(name,"processed",lsy) write_dict_json(name,"processed",lsy)

View file

@ -1,8 +1,10 @@
import json import json
from Bio import SeqIO from Bio import SeqIO
import numpy as np
import pandas as pd import pandas as pd
import os import os
import gzip import gzip
import progressbar
def read_from_multiple_lsy(lsyfl): def read_from_multiple_lsy(lsyfl):
lsy={} lsy={}
@ -56,7 +58,7 @@ def read_gene_seq(dirname,s,genes_by_species):
if f.split(".")[0] in s:#check whether the species is present in the species to read list. Will skip those species which are not present in the dataframe if f.split(".")[0] in s:#check whether the species is present in the species to read list. Will skip those species which are not present in the dataframe
ftr.append(f) ftr.append(f)
data={} data={}
for f in ftr: for f in progressbar.progressbar(ftr):
species=f.split(".")[0].lower() species=f.split(".")[0].lower()
with gzip.open(dirname+"/"+f,"rt") as file: with gzip.open(dirname+"/"+f,"rt") as file:
record=SeqIO.parse(file,"fasta") record=SeqIO.parse(file,"fasta")
@ -74,12 +76,14 @@ def read_gene_sequences(hdf,lsy,data_dir,fname):
Thus we don't have to read the same file multiple times.""" Thus we don't have to read the same file multiple times."""
grouped_genes={} grouped_genes={}
gene_by_species_dict={} gene_by_species_dict={}
for df in hdf: for df in progressbar.progressbar(hdf):
grouped_genes=group_seq_by_species(df,grouped_genes) grouped_genes=group_seq_by_species(df,grouped_genes)
for i in df.homology_species.unique(): for i in df.homology_species.unique():
if i not in gene_by_species_dict:
gene_by_species_dict[i]=[] gene_by_species_dict[i]=[]
for x in lsy: for i in df.species.unique():
gene_by_species_dict[i]=[]
for x in progressbar.progressbar(lsy):
try: try:
species=grouped_genes[x]#get the species species=grouped_genes[x]#get the species
except: except:

47
update_neighbor_genes.py Normal file
View file

@ -0,0 +1,47 @@
import sys
import numpy as np
import pandas as pd
import json
import os
import gc
from get_data import get_data_homology,get_data_genome
from process_data import create_data_homology_ls
if not os.path.exists("processed"):
os.mkdir("processed")
arg=sys.argv
arg=arg[1:]
enable_break=0
if arg[-1]=="-test":
enable_break=1
arg=arg[:-1]
if len(arg)!=5:
print("No. of arguments more or less. Please check")
sys.exit(1)
dir_g="data"
ld,ldg,a,d=get_data_genome(arg,dir_g)
dir_hom="data_homology"
a_h,d_h=get_data_homology(arg,dir_hom)
if arg[-1]=="-d":
sys.exit(1)
print("Data Read")
n=3 #no. of numbers neighbors
save_after=0 #to save data after n steps
lsy=create_data_homology_ls(a_h,d_h,n,a,d,ld,ldg,save_after,enable_break,1)
print(len(lsy))
print("Neighbor Genes Updated Successfully")