Skip to content

Commit f33d2e8

Browse files
committed
Avoid pseudonormal for zero normal cells
1 parent 3b832fd commit f33d2e8

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

src/chisel/bin/chisel_pseudonormal.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def parse_args():
3333
parser.add_argument("--tmpdir", required=False, default='_TMP', type=str, help="Temporary directory in running directory (default: _TMP)")
3434
parser.add_argument("-n","--normal", required=False, type=str, default="pseudonormal.bam", help="Name of the generated pseudo matched-normal BAM file (default: pseudonormal.bam)")
3535
parser.add_argument("--cellprefix", type=str, required=False, default='CB:Z:', help="Prefix of cell barcode field in SAM format (default: CB:Z:)")
36-
parser.add_argument("--cellsuffix", type=str, required=False, default=None, help="Suffix of cell barcode field in SAM format (default: none)")
36+
parser.add_argument("--cellsuffix", type=str, required=False, default='', help="Suffix of cell barcode field in SAM format (default: none)")
3737
args = parser.parse_args()
3838

3939
if not os.path.isdir(args.rundir):
@@ -106,6 +106,7 @@ def main():
106106
log('Counting reads on barcoded cells')
107107
counts = counting_cells(counts, args['tumor'], bins, args['samtools'], args['jobs'], args['cellprefix'], args['cellsuffix'])
108108
cells = set(e for c in counts for b in counts[c] for e in counts[c][b])
109+
log('Number of identified cells: {}'.format(len(cells)), level='INFO')
109110

110111
log('Computing total numbers of sequenced reads')
111112
total = reduce(inupdate, (Counter(counts[c][b]) for c in counts for b in counts[c]))
@@ -121,17 +122,19 @@ def main():
121122
with open(dlist, 'w') as o:
122123
o.write('\n'.join(diploid) + '\n')
123124
log('Number of identified diploid cells: {}'.format(len(diploid)), level='INFO')
124-
cov = (float(sum(total[e] for e in diploid)) * 100.0) / float(sum(b[1] - b[0] for c in counts for b in counts[c]))
125-
log('Approximate sequencing coverage of pseudo matched-normal sample: {}'.format(cov), level='INFO')
126125

127-
log('Extracting sequencing reads from selected diploid cells')
128-
extracting_diploid(args['tumor'], args['samtools'], chrs, args['tmpdir'], dlist, args['jobs'])
126+
if len(diploid) > 0:
127+
cov = (float(sum(total[e] for e in diploid)) * 100.0) / float(sum(b[1] - b[0] for c in counts for b in counts[c]))
128+
log('Approximate sequencing coverage of pseudo matched-normal sample: {}'.format(cov), level='INFO')
129129

130-
log('Merging and extracted sequencing reads and indexing the output pseduo matched-normal sample')
131-
merging_diploid(chrs, args['tmpdir'], args['samtools'], os.path.join(args['rundir'], args['normal']))
130+
log('Extracting sequencing reads from selected diploid cells')
131+
extracting_diploid(args['tumor'], args['samtools'], chrs, args['tmpdir'], dlist, args['jobs'])
132132

133-
log('Removing temporary files')
134-
shutil.rmtree(args['tmpdir'])
133+
log('Merging and extracted sequencing reads and indexing the output pseduo matched-normal sample')
134+
merging_diploid(chrs, args['tmpdir'], args['samtools'], os.path.join(args['rundir'], args['normal']))
135+
136+
log('Removing temporary files')
137+
shutil.rmtree(args['tmpdir'])
135138

136139
log('KTHXBYE')
137140

0 commit comments

Comments
 (0)