And thus 99% of bioinformatics pipelines are shell at their heart... You need 10 packages, written in 4 different programming languages, and the common interfaces are files and pipes.
And for that matter, this could use a named pipe rather than a file (assuming `odgi depth` only uses streaming access):
odgi depth -i chr8.pan.og -r chm13#chr8 | \
bedtools makewindows -b /dev/stdin -w 5000 > chm13.chr8.w5kbps.bed
odgi depth -i chr8.pan.og -b chm13.chr8.w5kbps.bed --threads 2 | \
bedtools sort > chr8.pan.depth.w5kbps.bed
And Bash process substitution allows writing it all without an explicitly named pipe, though it may look a bit ugly: odgi depth -i chr8.pan.og -b --threads 2 <( \
odgi depth -i chr8.pan.og -r chm13#chr8 | \
bedtools makewindows -b /dev/stdin -w 5000
) | \
bedtools sort > chr8.pan.depth.w5kbps.bed
Which is why bioinformaticians get bad reputations with software engineers. (I still have a fair amount of misplaced pride for adding a shebang to a Makefile once to make a pipeline into a command several decades ago...)https://adamdrake.com/command-line-tools-can-be-235x-faster-...
Nothing strange. Shell is the most natural dynamic language. It's a shame we don't have better shells.