# Caminhos para os arquivos de entrada e bases de dados
query="/caminho/para_maker_run/y6065_pass2.maker.output/y6065_pass2.all.maker.transcripts.fasta"
sprot="/caminho/para_database/uniprot_sprot.fasta.dmnd"
trembl="/caminho/para_database/uniprot_trembl.fasta.dmnd"
nr="/caminho/para_database/nr.dmnd"
sprot_trembl="/caminho/para_database/uniprot_sprot_trembl.fasta" #este arquivo foi gerado com o comando $cat uniprot_sprot.fasta uniprot_trembl.fasta > uniprot_sprot_trembl.fasta
# Busca Diamond/Blastx contra Sprot
echo "Diamond/Blastx vs Sprot"
diamond blastx -q "$query" -p 64 -d "$sprot" -k 1 -e 1e-6 --sensitive --query-cover 0.5 --subject-cover 0.5 -o blastx_y6065_vs_sprot.tab -f 6 >> log.txt 2>> err.txt
# Filtrar hits encontrados e buscar sequências que não deram match
awk '{print $1}' blastx_y6065_vs_sprot.tab | uniq > uniprot_hits.txt
seqkit grep -v -f uniprot_hits.txt "$query" > uniprot_nohits.fasta
# Busca Diamond/Blastx contra Trembl
echo "Diamond/Blastx vs Trembl"
diamond blastx -q uniprot_nohits.fasta -p 64 -d "$trembl" -k 1 -e 1e-6 --sensitive --query-cover 0.5 --subject-cover 0.5 -o blastx_y6065_vs_trembl.tab -f 6 >> log.txt 2>> err.txt
# Combinar resultados de Sprot e Trembl, e buscar sequências que não deram match
cat blastx_y6065_vs_sprot.tab blastx_y6065_vs_trembl.tab > blastx_y6065_vs_sprot_trembl.tab
awk '{print $1}' blastx_y6065_vs_sprot_trembl.tab | uniq > sprot_trembl_hits.txt
seqkit grep -v -f sprot_trembl_hits.txt "$query" > uniprot_trembl_nohits.fasta
# Busca Diamond/Blastx contra NR
echo "Diamond/Blastx vs NR"
diamond blastx -q uniprot_trembl_nohits.fasta -p 64 -d "$nr" -k 1 -e 1e-6 --sensitive --query-cover 0.5 --subject-cover 0.5 -o blastx_y6065_vs_nr.tab -f 6 >> log.txt 2>> err.txt
echo "Anotando as proteínas"
maker_functional_fasta "$sprot_trembl" blastx_y6065_vs_sprot_trembl.tab ../y6065_pass2.all.maker.proteins.fasta > y6065_proteins_annotated.fasta
maker_functional_fasta "$sprot_trembl" blastx_y6065_vs_sprot_trembl.tab ../y6065_pass2.all.maker.transcripts.fasta > y6065_cds_annotated.fasta
maker_functional_gff "$sprot_trembl" blastx_y6065_vs_sprot_trembl.tab ../y6065_pass2.all.gff > y6065_annotated.gff
# Preparação para InterProScan
mkdir -p iprscan_run && cd iprscan_run
perl ~/bin/fasta-splitter.pl --n-parts 5 ../y6065_proteins_annotated.fasta
echo "Rodando o Interproscan"
echo "/opt/apps/interproscan-5.63-95.0/interproscan.sh -i $i -iprlookup -goterms -pa --cpu 20 -f tsv"
done > interpro_jobs_to_split.txt
split -l 1 interpro_jobs_to_split.txt batch.sh_
for script in batch.sh_*; do
bash "$script" >> ../log.txt 2>> ../err.txt &
# Atualizar o GFF com resultados do InterProScan
echo "Atualizando o GFF com o resultado do interproscan"
cat *.tsv > y6065_iprscan_output.tsv
ipr_update_gff y6065_annotated.gff y6065_iprscan_output.tsv > y6065_final_annotation.gff