@@ -66,6 +66,24 @@ elif ".tsv" in config["Sample_Info"]:
6666else :
6767 raise SystemExit ("\n Sample Info file needs to contain extention '.csv' or '.tsv'.\n " )
6868
69+ # Default params if not included in config
70+ if not "maxNcount" in config :
71+ config ["maxNcount" ] = 1
72+
73+ if not "demultiCores" in config :
74+ demulti_cores = snakemake .utils .available_cpu_count ()
75+ else :
76+ demulti_cores = min (
77+ config ["demultiCores" ], snakemake .utils .available_cpu_count ()
78+ )
79+
80+ if not "skipDemultiplexing" in config :
81+ config ["skipDemultiplexing" ] = False
82+
83+ if not "Alternate_UMI_Method" in config :
84+ config ["Alternate_UMI_Method" ] = False
85+
86+
6987# Sample information
7088sampleInfo = import_sample_info (
7189 config ["Sample_Info" ], config ["Sample_Name_Column" ], delim )
@@ -75,28 +93,19 @@ READ_TYPES=config["Read_Types"]
7593READS = config ["Genomic_Reads" ]
7694REQ_TYPES = READS [:]
7795
78- if config ["UMItags" ]:
96+ if config ["UMItags" ] and not config [ "Alternate_UMI_Method" ] :
7997 REQ_TYPES .append ("I2" )
8098
8199R1_LEAD = choose_sequence_data (config ["R1_Leading_Trim" ], sampleInfo )
82100R1_OVER = choose_sequence_data (config ["R1_Overreading_Trim" ], sampleInfo )
83101R2_LEAD = choose_sequence_data (config ["R2_Leading_Trim" ], sampleInfo )
84- R2_LEAD_ODN = choose_sequence_data (config ["R2_Leading_Trim_ODN" ], sampleInfo )
85102R2_OVER = choose_sequence_data (config ["R2_Overreading_Trim" ], sampleInfo )
86103
87- # Default params if not included in config
88- if not "maxNcount" in config :
89- config ["maxNcount" ] = 1
90-
91- if not "demultiCores" in config :
92- demulti_cores = snakemake .utils .available_cpu_count ()
104+ if config ["Alternate_UMI_Method" ]:
105+ R1_LEAD_ODN = choose_sequence_data (config ["R1_Leading_Trim_ODN" ], sampleInfo )
93106else :
94- demulti_cores = min (
95- config ["demultiCores" ], snakemake .utils .available_cpu_count ()
96- )
107+ R2_LEAD_ODN = choose_sequence_data (config ["R2_Leading_Trim_ODN" ], sampleInfo )
97108
98- if not "skipDemultiplexing" in config :
99- config ["skipDemultiplexing" ] = False
100109
101110## Memory and default params
102111if not "demultiMB" in config :
@@ -160,7 +169,10 @@ rule all:
160169 stats = RUN_DIR + "/reports/runstats." + RUN + ".html"
161170
162171# Architecture Rules
163- include : "rules/arch.rules"
172+ if (config ["Alternate_UMI_Method" ]):
173+ include : "rules/arch.umi_alt_method.rules"
174+ else :
175+ include : "rules/arch.rules"
164176
165177# Processing Rules
166178if (config ["skipDemultiplexing" ]):
@@ -169,11 +181,18 @@ else:
169181 include : "rules/demulti.rules"
170182
171183include : "rules/binning.rules"
172- include : "rules/trim.rules"
184+
185+ if (config ["Alternate_UMI_Method" ]):
186+ include : "rules/trim.umi_alt_method.rules"
187+ else :
188+ include : "rules/trim.rules"
173189
174190if (config ["UMItags" ]):
175- include : "rules/umitag.rules"
176- UMIseqs = sampleInfo ["barcode2" ]
191+ if (config ["Alternate_UMI_Method" ]):
192+ include : "rules/umitag.umi_alt_method.rules"
193+ else :
194+ include : "rules/umitag.rules"
195+ UMIseqs = sampleInfo ["barcode2" ]
177196else :
178197 include : "rules/umitag_stub.rules"
179198
@@ -182,10 +201,16 @@ include: "rules/filt.rules"
182201if (config ["Aligner" ] == "BLAT" or config ["Aligner" ] == "blat" ):
183202 include : "rules/consol.rules"
184203 include : "rules/align.blat.rules"
185- include : "rules/quality.blat.rules"
204+ if (config ["Alternate_UMI_Method" ]):
205+ include : "rules/quality.blat.umi_alt_method.rules"
206+ else :
207+ include : "rules/quality.blat.rules"
186208elif (config ["Aligner" ] == "BWA" or config ["Aligner" ] == "bwa" ):
187209 include : "rules/consol_stub.rules"
188- include : "rules/align.bwa.rules"
210+ if (config ["Alternate_UMI_Method" ]):
211+ include : "rules/align.bwa.umi_alt_method.rules"
212+ else :
213+ include : "rules/align.bwa.rules"
189214 include : "rules/quality.sam.rules"
190215else :
191216 raise SystemExit (
0 commit comments