11version 1.0
22
3- import "../QC/FPCheckAoU.wdl" as FPCheck
4- import "../QC/CollectPacBioAlignedMetrics.wdl" as AlnMetrics
53import "../Utility/PBUtils.wdl" as PB
64import "../Utility/Utils.wdl"
75import "../Utility/GeneralUtils.wdl"
6+ import "../Utility/BAMutils.wdl" as BU
7+
8+ import "../QC/FPCheckAoU.wdl" as FPCheck
9+ import "../QC/CollectPacBioAlignedMetrics.wdl" as AlnMetrics
810import "../QC/AlignedMetrics.wdl" as GeAlnMetrics
911
1012workflow AlignAndCheckFingerprintCCS {
@@ -17,7 +19,7 @@ workflow AlignAndCheckFingerprintCCS {
1719 File uBAM
1820 File ? uPBI
1921 String bam_sample_name
20- String library
22+ String ? library
2123
2224 Boolean turn_off_fingperprint_check
2325 String fp_store
@@ -41,6 +43,10 @@ workflow AlignAndCheckFingerprintCCS {
4143
4244 Map [String , String ] ref_map = read_map (ref_map_file )
4345
46+ call BU .GetReadGroupInfo as RG {input : bam = uBAM , keys = ['SM' , 'LB' , 'PU' ]}
47+ String LB = select_first ([library , RG .read_group_info ['LB' ]])
48+ String movie_name = RG .read_group_info ['PU' ]
49+
4450 ###################################################################################
4551 if (ceil (size (uBAM , "GB" )) > 50 ) {# shard & align, but practically never true
4652
@@ -113,6 +119,9 @@ workflow AlignAndCheckFingerprintCCS {
113119 name = "alignment.metrics"
114120 }
115121
122+ call BU .SamtoolsFlagStats { input : bam = aBAM , output_format = 'JSON' }
123+ call BU .ParseFlagStatsJson { input : sam_flag_stats_json = SamtoolsFlagStats .flag_stats }
124+
116125 if (!turn_off_fingperprint_check ){
117126 call FPCheck .FPCheckAoU {
118127 input :
@@ -132,11 +141,14 @@ workflow AlignAndCheckFingerprintCCS {
132141 File aligned_bai = aBAI
133142 File aligned_pbi = IndexAlignedReads .pbi
134143
144+ String movie = movie_name
145+
135146 Float wgs_cov = MosDepthWGS .wgs_cov
136147 File coverage_per_chr = MosDepthWGS .summary_txt
137148
138149 File alignment_metrics_tar_gz = saveAlnMetrics .you_got_it
139150 Map [String , Float ] alignment_metrics = CollectPacBioAlignedMetrics .alignment_metrics
151+ Map [String , Float ] sam_flag_stats = ParseFlagStatsJson .qc_pass_reads_SAM_flag_stats
140152
141153 Float ? fp_lod_expected_sample = FPCheckAoU .lod_expected_sample
142154 String ? fp_status = FPCheckAoU .FP_status
0 commit comments