-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile.sequenceprocessing
64 lines (53 loc) · 2.13 KB
/
Makefile.sequenceprocessing
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#-*- makefile -*-
#
# File: Makefile.sequenceprocessing
#
# Description: recipies for various sequence processing
#
MAKEDIR = $(dir $(lastword $(MAKEFILE_LIST)))
ifeq ($(findstring Makefile.ngsvars,$(MAKEFILE_LIST)),)
include $(MAKEDIR)Makefile.ngsvars
endif
##################################################
# Cutadapt and resyncmates
##################################################
# cutadapt
ifndef CUTADAPT
CUTADAPT=cutadapt
endif
ifndef CUTADAPT_THREEPRIME
CUTADAPT_THREEPRIME=AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC
endif
ifndef CUTADAPT_FIVEPRIME
CUTADAPT_FIVEPRIME=AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
endif
ifndef CUTADAPT_OPTIONS
CUTADAPT_OPTIONS=
endif
%$(READ1_LABEL).trimmed.fastq.gz: %$(READ1_LABEL).fastq.gz
$(CUTADAPT) $(CUTADAPT_OPTIONS) -a $(CUTADAPT_THREEPRIME) $< -o $(@:.gz=).tmp.gz > $*.cutadapt_metrics && mv $(@:.gz=).tmp.gz $@
%$(READ2_LABEL).trimmed.fastq.gz: %$(READ2_LABEL).fastq.gz
$(CUTADAPT) $(CUTADAPT_OPTIONS) -a $(CUTADAPT_FIVEPRIME) $< -o $(@:.gz=).tmp.gz > $*.cutadapt_metrics && mv $(@:.gz=).tmp.gz $@
# resyncMates
ifndef RESYNCMATES
RESYNCMATES=resyncMates.pl
endif
ifndef RESYNCMATES_OPTIONS
RESYNCMATES_OPTIONS=
endif
# Rule defined for read 1 only - execute if read 2 found
%$(READ1_LABEL).trimmed.sync.fastq.gz: %$(READ1_LABEL).trimmed.fastq.gz %$(READ2_LABEL).trimmed.fastq.gz
$(RESYNCMATES) $(RESYNCMATES_OPTIONS) -i $< -j $*$(READ2_LABEL).trimmed.fastq.gz -o [email protected] -p $*$(READ2_LABEL).trimmed.sync.fastq.gz && mv [email protected] $@
# Needed since %$(READ2_LABEL).trimmed.sync.fastq.gz is a prerequisite for alignment
%$(READ2_LABEL).trimmed.sync.fastq.gz: %$(READ1_LABEL).trimmed.sync.fastq.gz
@echo $@ should be done in rule 1
##############################
# settings
##############################
.PHONY: sequenceprocessing-settings sequenceprocessing-header
print-%:
@echo '$*=$($*)'
sequenceprocessing-header:
@echo -e "\nMakefile.sequenceprocessing options"
@echo "==================================="
sequenceprocessing-settings: sequenceprocessing-header print-CUTADAPT print-CUTADAPT_THREEPRIME print-CUTADAPT_FIVEPRIME print-CUTADAPT_OPTIONS print-RESYNCMATES print-RESYNCMATES_OPTIONS