#!/usr/bin/make -f
# hssp2 makefile

firstTarget: hssp2

include hssp2.config

# basics
RAWDIR			?= /data/raw/
FASTADIR		?= /data/fasta/
DSSPDIR			?= /data/raw/dssp/

# directories for HSSP2
HSSP2DIR		?= /data/hssp2/
HSSP2FADIR		?= $(HSSP2DIR)fasta/
HSSP2STODIR		?= $(HSSP2DIR)sto/
HSSP2FINALDIR	?= $(HSSP2DIR)final/

# programs
CDHIT			?= cd-hit
PERL			?= perl
MRS_BUILD		?= /usr/local/bin/mrs-build
MKHSSP			?= /home/maarten/projects/mas/mkhssp

# source data
UNIREF			?= $(FASTADIR)/uniref100.fa
DSSP_FILES		?= $(wildcard $(DSSPDIR)*.dssp)
DSSP_IDS		= $(DSSP_FILES:$(DSSPDIR)%.dssp=%)

VPATH			= :$(STOCKDIR):

# The HSSP2 files we need to create

HSSP2IDS		= $(filter-out $(sort $(shell cat $(HSSP2DIR)hssp2.skip)), $(DSSP_IDS))
HSSP2_FILES		= $(HSSP2IDS:%=$(HSSP2FINALDIR)%.hssp.bz2)

# The Stockholm files we need:

FASTA_FILES		= $(wildcard $(HSSP_TMP_DIR)*.fa)
TBL_FILES		= $(FASTA_FILES:%.fa=%.tbl)

hssp2: $(HSSP2_FILES)

$(FASTADIR)dssp.fa: $(DSSP_FILES)
	$(PERL) dssp2fasta.pl $(DSSPDIR) $@ $(STOCKDIR)

$(FASTADIR)dssp-nr-100.fa: $(FASTADIR)dssp.fa
	$(CDHIT) -i $< -o $@ -c 1.0 -T 0 -s 0.9
	$(PERL) split-fasta.pl $@ $(HSSP2FADIR)
	$(MRS_BUILD) -d hssp2ix -fv

$(HSSP2FINALDIR)%.hssp.bz2: $(FASTADIR)dssp-nr-100.fa $(DSSPDIR)%.dssp
	$(MKHSSP) $(@F:.hssp.bz2=) --fastadir=$(FASTADIR) --datadir=$(HSSP2STODIR) \
			--tmpdir=/data/tmp/hssp2/ --threads=1 $@ || \
		echo $(@F:.hssp.bz2=) >> $(HSSP2DIR)hssp2.skip
