annotate median_size.py @ 0:4e629e82c5b1 draft default tip

planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
author estrain
date Fri, 13 Mar 2026 12:51:10 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
1 #!/usr/bin/env
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
2
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
3 ## Errol Strain (estrain@gmail.com)
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
4 ## calculate median insert size from sam file
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
5
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
6 import numpy as np
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
7
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
8 def get_data(infile):
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
9 lengths = []
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
10 for line in infile:
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
11 if line.startswith('@'):
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
12 pass
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
13 else:
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
14 line = line.rsplit()
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
15 length = int(line[8])
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
16 if length > 0:
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
17 lengths.append(length)
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
18 else:
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
19 pass
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
20 return lengths
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
21
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
22 if __name__ == "__main__":
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
23 import sys
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
24 lengths = get_data(sys.stdin)
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
25 md = int(np.median(lengths))
4e629e82c5b1 planemo upload commit a820b38dea9a409c11e220ba904da232fdbc4c05
estrain
parents:
diff changeset
26 print(md)