Skip to content
Snippets Groups Projects
Commit bd9215fa authored by BIOPZ-Katsantoni Maria's avatar BIOPZ-Katsantoni Maria
Browse files

Fixed polya-trimming rule

In labkey_to_snakemake.py fixed the parameters so that there is 3p as well 5p polya
feature for every mate, which can be matched to the -a -g -A and -G options of cutadapt
depending on which is the sense or antisense mate the appropriate variable is populated
and the rest of variables are filled with 'XXXXXXXXXXXX' which leads to no trimming by
cutadapt. The poly-A trimming rules are fixed to contain all -a -g -A -G options.
parent 25191127
No related branches found
No related tags found
1 merge request!50Polya trimming correction
......@@ -228,9 +228,13 @@ def main():
snakemake_table.loc[index, 'soft_clip'] = options.soft_clip
snakemake_table.loc[index, 'pass_mode'] = options.pass_mode
snakemake_table.loc[index, 'libtype'] = options.libtype
if options.trim_polya is True:
snakemake_table.loc[index, 'fq1_polya'] = trim_polya(
fq1_polya_3p, fq1_polya_5p = trim_polya(
row[input_dict.loc['mate1_direction', 'labkey']])
snakemake_table.loc[index, 'fq1_polya_3p'] = fq1_polya_3p
snakemake_table.loc[index, 'fq1_polya_5p'] = fq1_polya_5p
snakemake_table.loc[index, 'kallisto_directionality'] = \
get_kallisto_directionality(
row[input_dict.loc['mate1_direction', 'labkey']])
......@@ -247,8 +251,10 @@ def main():
input_dict.loc['fq2_5p', 'labkey']]
if options.trim_polya is True:
snakemake_table.loc[index, 'fq2_polya'] = trim_polya(
fq2_polya_3p, fq2_polya_5p = trim_polya(
row[input_dict.loc['mate2_direction', 'labkey']])
snakemake_table.loc[index, 'fq2_polya_3p'] = fq2_polya_3p
snakemake_table.loc[index, 'fq2_polya_5p'] = fq2_polya_5p
snakemake_table.fillna('XXXXXXXXXXXXX', inplace=True)
snakemake_table = snakemake_table.astype(
......@@ -322,14 +328,15 @@ def get_kallisto_directionality(directionality):
def trim_polya(sense):
if sense == 'SENSE':
polya = 'AAAAAAAAAAAAAAAAA'
polya_3p = 'AAAAAAAAAAAAAAAAA'
polya_5p = 'XXXXXXXXXXXXXXXXX'
elif sense == 'ANTISENSE':
polya = 'TTTTTTTTTTTTTTTTT'
elif sense == 'RANDOM':
polya = 'AAAAAAAAAAAAAAAAA'
polya_3p = 'XXXXXXXXXXXXXXXXX'
polya_5p = 'TTTTTTTTTTTTTTTTT'
else:
polya = 'XXXXXXXXXXXXXXXXX'
return polya
polya_3p = 'XXXXXXXXXXXXXXXXX'
polya_5p = 'XXXXXXXXXXXXXXXXX'
return polya_3p, polya_5p
if __name__ == '__main__':
......
......@@ -143,9 +143,13 @@ rule pe_remove_polya_cutadapt:
params:
polya_3_mate1 = lambda wildcards:
samples_table.loc[wildcards.sample, 'fq1_polya'],
samples_table.loc[wildcards.sample, 'fq1_polya_3p'],
polya_5_mate1 = lambda wildcards:
samples_table.loc[wildcards.sample, 'fq1_polya_5p'],
polya_3_mate2 = lambda wildcards:
samples_table.loc[wildcards.sample, 'fq2_polya']
samples_table.loc[wildcards.sample, 'fq2_polya_3p'],
polya_5_mate2 = lambda wildcards:
samples_table.loc[wildcards.sample, 'fq2_polya_5p']
singularity:
"docker://zavolab/cutadapt:1.16-slim"
......@@ -173,7 +177,9 @@ rule pe_remove_polya_cutadapt:
-e 0.1 \
-O 1 \
-a {params.polya_3_mate1} \
-g {params.polya_5_mate1} \
-A {params.polya_3_mate2} \
-G {params.polya_5_mate2} \
-o {output.reads1} \
-p {output.reads2} \
{input.reads1} \
......
......@@ -108,7 +108,9 @@ rule remove_polya_cutadapt:
params:
polya_3 = lambda wildcards:
samples_table.loc[wildcards.sample, "fq1_polya"]
samples_table.loc[wildcards.sample, "fq1_polya_3p"],
polya_5 = lambda wildcards:
samples_table.loc[wildcards.sample, "fq1_polya_5p"]
singularity:
"docker://zavolab/cutadapt:1.16-slim"
......@@ -135,6 +137,7 @@ rule remove_polya_cutadapt:
-O 1 \
-m 10 \
-a {params.polya_3} \
-g {params.polya_5} \
-o {output.reads} \
{input.reads};) \
1> {log.stdout} 2> {log.stderr}"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment