#===================================================================
#==Aparellador======================================================
import os.path
import sys
import subprocess
from subprocess import call
with open(sys.argv[1]) as fh:
path1 = 'Blastinator_data/Fitxerint1/'
text=(fh.read())
text=text.split("\t")
inici=text[0]
llargada=text[1]
inici=inici.split()
llargada=llargada.split()
asd=fh.name
forma1=".cutre"
name_file=fh.name.strip(".pre")
name_file=name_file.split("/")
name_file=name_file[-1]
nom1=path1+name_file+forma1
file1 = open(nom1,'w')
print >> file1, "fastasubseq "+ "Blastinator_data/Fastafetch_output/output_"+name_file+"_ID.txt", inici[0], llargada[0]
#___Aparellador2________________________________________________________________
import os.path
import sys
import subprocess
from subprocess import call
with open(sys.argv[1]) as fh:
path1 = 'Blastinator_data/Fitxerint2/'
text=(fh.read())
subseq=fh.name
query=fh.name
query=query.split("fastasubseq")
query=query[1]
nom_fitxer=query.replace(".cutre.txt","")
query=query.split("_")
query=query[0]
forma1=".gff"
forma2=".fa"
query="Trad_"+query+forma2
nom1=path1+nom_fitxer+forma1
file1 = open(nom1,'w')
print >> file1, "exonerate -m p2g --showtargetgff -q Blastinator_data/Translated_query/"+query+" -t "+fh.name+" --exhaustive "
#___Aparellador3________________________________________________________________
import os.path
import sys
import subprocess
from subprocess import call
with open(sys.argv[1]) as fh:
path1 = 'Blastinator_data/Fitxerint4/'
nom=fh.name
nom=nom.split("Exonerate_output/Exonerate_")
nom=nom[1]
nom=nom.strip(".ggf")
nom1=path1+""+nom+".fa"
nom=nom.split("Exonerate_")
nom="".join(nom)
file1 = open(nom1,'w')
print >> file1,"fastaseqfromGFF.pl Blastinator_data/Fastasubseq_output/fastasubseq"+nom+".cutre.txt "+fh.name
#___Aparellador4________________________________________________________________
import os.path
import sys
import subprocess
from subprocess import call
with open(sys.argv[1]) as fh:
path1 = 'Blastinator_data/Fitxerint6/'
nom=fh.name
nom=nom.split("/")
nom=nom[-1]
nom1=path1+"Tcofee_"+nom
nom=nom.split("_")
nom=nom[0]+".fa"
file1 = open(nom1,'w')
print >> file1, "t_coffee Blastinator_data/Translated_query/Trad_"+nom+" "+fh.name
#___Corrector__________________________________________________________________
import os.path
import sys
import subprocess
from subprocess import call
with open(sys.argv[1]) as fh:
path1 = 'Blastinator_data/Fitxerint5/'
nom=fh.name
ftx=(fh.read())
nom=nom.split("Tradprot_")
nom=nom[1]
a =ftx.replace("*","X")
text=path1+nom
file1=open(text,'w')
print >> file1, a
#___Correctus_________________________________________________________________
import os.path
import sys
import subprocess
from subprocess import call
with open(sys.argv[1]) as fh:
path1 = 'Blastinator_data/Fitxerint3/'
text=(fh.read())
text=text.split(">")
try:
text=">"+text[1]
except Exception as e:
text=">"+text[0]
name=fh.name
name=name.split("/")
name=name[-1]
nom1=path1+name
file1=open(nom1,'w')
print >> file1, text
#___Filtrador________________________________________________
#Descarrega els paquests necessaris per que l'script funcioni
import sys
import subprocess
import os.path
#Cercador dels valors que haura de posar en el fastafetch i el fastasubseq
with open(sys.argv[1]) as fh:
#Divideixo el text en linies i blocs
text=(fh.read())
split_text=text.split("\n")
text_split2=text.split(">")
del text_split2[0]
cont = []
hit_list=[]
sbjct_list=[]
numb3r1=[]
numb3r2=[]
new="_"
tab="\t"
values_fastafetch=[]
valor = 1
ID_list=[]
for line in split_text:
#Busco aquesta paraula a la linia, ja que es troba unicament on esta l'E-value del hit, enregistro aquest com una variable
if "unplaced genomic..." in line:
cont=line.split()
try:
#Guardo els ID de la proteina, que es troben a la amteixa linia que l'E-value, unicament si el seu evalue es inferior a
# 0.001
if float(cont[-1]) <= float(1e-04):
prot_id=cont[0]
hit_list.append(prot_id)
ID_list.append(prot_id)
for lines in text_split2:
if prot_id in lines:
cerca = lines.split("\n")
caspa = lines.split("\n")
for linies in cerca:
#Busco aquesta paraula a la linia, ja que es troba unicament on esta l'E-value de l'alinieament, enre
#gistro aquest com una variable
if "Expect" in linies:
trash = linies.split()
evalue= (trash[7])
evalue=evalue[:-1]
evalue=(evalue)
#Busco la paraula a la linia, el primer element despres d'aquesta sera la poscio d'inici, l'ultim la
#posicio final, les guardo en llistes amb la seva ID corrsponent i l'evalue de l'alineament
if "Sbjct" in linies and float(evalue) <= float(1e-04):
valors = linies.split(" ")
hit_list.append(valors[1])
hit_list.append(valors[-1])
#hit_list.append(evalue)
#Netejo la llista hit_list per que no se'm acumulin valors
values_fastafetch.append(hit_list)
hit_list=[]
else:
pass
except Exception as e:
pass
#Si no hi hagut hits, ho dic xD
if " No hits found " in line:
break
else:
continue
#Nom de la carpeta que estic fent servir sense cap tipus d'extensio
#Redirigeixo una copia de les ID a una carpeta de input pel fasta-fetch
#Redirigeixo els resultats del primer alineament per cada hit (teoricament amb l'evalue
#mes petit a una carpeta que conte ID, Inici, Final, E-value
#Resultats pel fastafetch
name_file=fh.name.split(".")
name_file=name_file[0]
name_file=name_file.split("/")
name_file=name_file[-1]
path1 = 'Blastinator_data/Pre_fastafetch/'
path2= 'Blastinator_data/Coordinates_fastasubseq/'
forma1="_ID.txt"
#print name_file
for ID in ID_list:
nom1= path1+name_file+new+ID+forma1
file1 = open(nom1,'w')
print >> file1, ID
#Resultats pel blastq
# path2 = '/home/u93290/Input_blastq/'
# forma2="_save_ID.txt"
# nom2=path2+name_file+forma2
#file2 = open(nom2,'w')
forma2=".pre"
length=0
final_scaffold=0
with open(sys.argv[2]) as lengths:
scaffolds=(lengths.read())
scaffolds=scaffolds.split("\n")
for values in values_fastafetch:
ID2=values[0]
del values[0]
for numb in values:
numb=int(numb)
start=min(values)
start=int(start)-70000
end=max(values)
end=int(end)+50000
if start < 1:
start = 1
for longituds in scaffolds:
if ID2 in longituds:
lon=longituds.split()
final=int(lon[0])
if end > final:
end=final-1
length=(end-start)
nom2= path2+name_file+new+ID2+forma2
file2 = open(nom2,'w')
print >> file2, start, tab, length, tab, end, tab, ID2
#=======================================================================
#=================================END===================================