From 567b4a92ab3f8f1afa30d39550cfa3c11dfb2767 Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Tue, 16 May 2023 16:30:09 +0200 Subject: [PATCH 1/4] Fix python path --- MipsTrimDedup/MipsTrimDedup.nf | 2 +- Utils/CreateHSmetricsSummary.nf | 2 +- Utils/GetStatsFromFlagstat.nf | 2 +- Utils/Kinship.nf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/MipsTrimDedup/MipsTrimDedup.nf b/MipsTrimDedup/MipsTrimDedup.nf index a7f4ddb..5c789b8 100644 --- a/MipsTrimDedup/MipsTrimDedup.nf +++ b/MipsTrimDedup/MipsTrimDedup.nf @@ -18,6 +18,6 @@ process MipsTrimDedup { rg_id = "${sample_id}_MergedTrimmedDedup" """ - python ${params.mips_trim_dedup_path}/mips_trim_dedup.py -d ${params.dxtracks_path}/${params.mips_design_file} -l ${params.mips_uuid_length} -ur ${params.mips_uuid_read} -r1 ${r1_args} -r2 ${r2_args} + python2 ${params.mips_trim_dedup_path}/mips_trim_dedup.py -d ${params.dxtracks_path}/${params.mips_design_file} -l ${params.mips_uuid_length} -ur ${params.mips_uuid_read} -r1 ${r1_args} -r2 ${r2_args} """ } diff --git a/Utils/CreateHSmetricsSummary.nf b/Utils/CreateHSmetricsSummary.nf index ca159fb..8a8934f 100644 --- a/Utils/CreateHSmetricsSummary.nf +++ b/Utils/CreateHSmetricsSummary.nf @@ -12,6 +12,6 @@ process CreateHSmetricsSummary { script: """ - python ${baseDir}/CustomModules/Utils/create_hsmetrics_summary.py ${hsmetrics_files} > HSMetrics_summary.txt + python2 ${baseDir}/CustomModules/Utils/create_hsmetrics_summary.py ${hsmetrics_files} > HSMetrics_summary.txt """ } \ No newline at end of file diff --git a/Utils/GetStatsFromFlagstat.nf b/Utils/GetStatsFromFlagstat.nf index 95bbd37..4b89ba9 100644 --- a/Utils/GetStatsFromFlagstat.nf +++ b/Utils/GetStatsFromFlagstat.nf @@ -12,6 +12,6 @@ process GetStatsFromFlagstat { script: """ - python ${baseDir}/CustomModules/Utils/get_stats_from_flagstat.py ${flagstat_files} > run_stats.txt + python2 ${baseDir}/CustomModules/Utils/get_stats_from_flagstat.py ${flagstat_files} > run_stats.txt """ } \ No newline at end of file diff --git a/Utils/Kinship.nf b/Utils/Kinship.nf index 87cecb0..0cd3f4b 100644 --- a/Utils/Kinship.nf +++ b/Utils/Kinship.nf @@ -17,6 +17,6 @@ process Kinship { ${params.plink_path}/plink --file out --make-bed --noweb ${params.king_path}/king -b plink.bed --kinship cp king.kin0 ${analysis_id}.kinship - python ${baseDir}/CustomModules/Utils/check_kinship.py ${analysis_id}.kinship ${ped_file} > ${analysis_id}.kinship_check.out + python2 ${baseDir}/CustomModules/Utils/check_kinship.py ${analysis_id}.kinship ${ped_file} > ${analysis_id}.kinship_check.out """ } \ No newline at end of file From 4d0f56a2b83552d3dbdbf9d306bd481fa9d622a1 Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Tue, 16 May 2023 20:07:21 +0200 Subject: [PATCH 2/4] fix python --- Utils/ParseChildFromFullTrio.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Utils/ParseChildFromFullTrio.nf b/Utils/ParseChildFromFullTrio.nf index 40b021d..c185319 100644 --- a/Utils/ParseChildFromFullTrio.nf +++ b/Utils/ParseChildFromFullTrio.nf @@ -15,6 +15,6 @@ process ParseChildFromFullTrio { script: def sample_ids = sample_id.join(" ") """ - python ${baseDir}/CustomModules/Utils/parse_child_from_fulltrio.py ${ped_file} ${sample_ids} | tr -d '\n' + python2 ${baseDir}/CustomModules/Utils/parse_child_from_fulltrio.py ${ped_file} ${sample_ids} | tr -d '\n' """ } \ No newline at end of file From e5e7792b0da181f12cfcab5a05d083710f0a1d98 Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Thu, 25 May 2023 20:02:42 +0200 Subject: [PATCH 3/4] Create kinship container --- Kinship/Dockerfile | 10 ++++++++++ {Utils => Kinship}/Kinship.nf | 10 +++++----- {Utils => Kinship}/check_kinship.py | 0 3 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 Kinship/Dockerfile rename {Utils => Kinship}/Kinship.nf (52%) rename {Utils => Kinship}/check_kinship.py (100%) diff --git a/Kinship/Dockerfile b/Kinship/Dockerfile new file mode 100644 index 0000000..c626fb2 --- /dev/null +++ b/Kinship/Dockerfile @@ -0,0 +1,10 @@ +FROM --platform=linux/amd64 continuumio/miniconda3 + +LABEL base_image="continuumio/miniconda3" +LABEL version="1.0.0" +LABEL extra.binaries="vcftools, plink, king" + +RUN conda config --add channels bioconda && \ + conda config --add channels conda-forge && \ + conda install -y vcftools=0.1.14 plink=1.90b4 king=2.2.7 + diff --git a/Utils/Kinship.nf b/Kinship/Kinship.nf similarity index 52% rename from Utils/Kinship.nf rename to Kinship/Kinship.nf index 0cd3f4b..d8d64b1 100644 --- a/Utils/Kinship.nf +++ b/Kinship/Kinship.nf @@ -1,7 +1,7 @@ process Kinship { - // Custom process to run Kinship tools tag {"Kinship ${analysis_id}"} label 'Kinship' + container = 'docker.io/umcugenbioinf/kinship:1.0.0' shell = ['/bin/bash', '-euo', 'pipefail'] input: @@ -13,10 +13,10 @@ process Kinship { script: """ - ${params.vcftools_path}/vcftools --vcf ${vcf_file} --plink - ${params.plink_path}/plink --file out --make-bed --noweb - ${params.king_path}/king -b plink.bed --kinship + vcftools --vcf ${vcf_file} --plink + plink --file out --make-bed --noweb + king -b plink.bed --kinship cp king.kin0 ${analysis_id}.kinship - python2 ${baseDir}/CustomModules/Utils/check_kinship.py ${analysis_id}.kinship ${ped_file} > ${analysis_id}.kinship_check.out + python ${baseDir}/CustomModules/Kinship/check_kinship.py ${analysis_id}.kinship ${ped_file} > ${analysis_id}.kinship_check.out """ } \ No newline at end of file diff --git a/Utils/check_kinship.py b/Kinship/check_kinship.py similarity index 100% rename from Utils/check_kinship.py rename to Kinship/check_kinship.py From d22d0789828671399ef70618f11cb5a7298738bd Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Tue, 6 Jun 2023 16:26:36 +0200 Subject: [PATCH 4/4] Add parse_ped --- Utils/parse_child_from_fulltrio.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/Utils/parse_child_from_fulltrio.py b/Utils/parse_child_from_fulltrio.py index 8df79f0..bc8bb78 100644 --- a/Utils/parse_child_from_fulltrio.py +++ b/Utils/parse_child_from_fulltrio.py @@ -1,6 +1,31 @@ #! /usr/bin/env python import argparse -from check_kinship import parse_ped + + +def parse_ped(ped_file): + samples = {} # 'sample_id': {'family': 'fam_id', 'parents': ['sample_id', 'sample_id']} + + for line in ped_file: + ped_data = line.strip().split() + family, sample, father, mother, sex, phenotype = ped_data + + # Create samples + if sample not in samples: + samples[sample] = {'family': family, 'parents': [], 'children': []} + if father != '0' and father not in samples: + samples[father] = {'family': family, 'parents': [], 'children': []} + if mother != '0' and mother not in samples: + samples[mother] = {'family': family, 'parents': [], 'children': []} + + # Save sample relations + if father != '0': + samples[sample]['parents'].append(father) + samples[father]['children'].append(sample) + if mother != '0': + samples[sample]['parents'].append(mother) + samples[mother]['children'].append(sample) + return samples + if __name__ == "__main__": parser = argparse.ArgumentParser(description='Check kinship output based on ped file.')