################################################################################ ## ## Copyright (c) 2007-2011 Illumina, Inc. ## ## This software is covered by the "Illumina Genome Analyzer Software ## License Agreement" and the "Illumina Source Code License Agreement", ## and certain third party copyright/licenses, and any user of this ## source file is bound by the terms therein (see accompanying files ## Illumina_Genome_Analyzer_Software_License_Agreement.pdf and ## Illumina_Source_Code_License_Agreement.pdf and third party ## copyright/license notices). ## ## This file is part of the Consensus Assessment of Sequence And VAriation ## (CASAVA) software package. ## ## file ElandExtendedAux1.mk ## ## brief Partial makefile to build the eland extended files for a set of tiles. ## ## This partial makefile encapsulates the mechanisms to split each lane into a ## number of subsets of tiles before processing by ELAND. The size of the sets ## is defined as a number of tiles, controlled by ELAND_FASTQ_FILES_PER_PROCESS ## (customisable on the make command line). ## ## The processing is recursive. The end condition is the emptyness of the ## current list of tiles (the variable currentTileList). ## ## author Come Raczy ## ################################################################################ ifeq (,$(currentSetList)) $(error $(lane): empty set list) endif currentSetName := $(word 1, $(currentSetList)) currentSet := $($(dataset)_ELAND_SET_$(currentSetName)) ifeq (1,$(words $(currentSetList))) currentSetList := else currentSetList := $(wordlist 2, $(words $(currentSetList)), $(currentSetList)) endif r$(read)_eland_extended := $(r$(read)_eland_extended) $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED) .SECONDARY: $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED) $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED): dataset := $(dataset) $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED): currentSet := $(currentSet) $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED): sample := $(sample) $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED): barcode := $(barcode) $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED): lane := $(lane) $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED): read := $(read) $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED): $(dataset)_ELAND_GENOME_SQUASHED_R$(read) := $($(dataset)_ELAND_GENOME_SQUASHED_R$(read)) $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED): $($(dataset)_ELAND_GENOME_SQUASHED_R$(read)) \ $(foreach fastq, $(currentSet), $(EXPT_DIR)/$($(dataset)_SOURCE_PREFIX)_R$(read)_$(fastq).fastq.gz) \ $($(dataset)_TEMP_DIR)/.sentinel $(CMDPREFIX) $(ELAND_EXEC) \ --oligo-length=$($(dataset)_ELAND_SEED_LENGTH$(read)) \ --data-format "fastq" \ --lane "$(lane)" \ --read "$(read)" \ --qseq-mask "$($(dataset)_USE_BASES$(read))" \ --cluster-sets "$(currentSet)" \ --sample "$(sample)" \ --barcode "$(barcode)" \ --base-calls-dir "$(EXPT_DIR)/$($(dataset)_SOURCE)" \ --genome-directory "$(dir $<)" \ --output-file "$@.tmp" \ --tmp-file-prefix "$@" \ --multi$(if $($(dataset)_ELAND_MAX_MATCHES),$($(dataset)_ELAND_MAX_MATCHES:%==%)) \ $($(dataset)_SINGLESEED) $($(dataset)_UNGAPPED) $($(dataset)_INCREASED_SENSITIVITY) \ $(if $($(dataset)_ELAND_REPEAT), $($(dataset)_ELAND_REPEAT:%=--repeat-file=%)) \ $($(dataset)_ELAND_PARAMS) 1>&2 \ && $(MV) $@.tmp $@ # Proxy rule. Required for all Temp/ based artifacts that are dependencies of pattern rules # Otherwise pattern rules get broken when their direct dependencies are listed as .SECONDARY with qmake $($(dataset)_DESTINATION_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED).finished: \ $($(dataset)_DESTINATION)/.sentinel \ $($(dataset)_TEMP_PREFIX)_R$(read)_$(currentSetName)$(ELAND_RESULT_EXTENDED) $(TOUCH) $@