Ignore row with only NaN in plotHeatmap – deepTools

If there are NaN in the output from computeMatrix, the generated heatmap is not sorted and a warning message stating Mean of empty slice will show up.

To overcome this, those null values need to be replaced using 0 in the computeMatrix step by --missingDataAsZero tag.

computeMatrix scale-regions -S xxx.bw -R xxx.bed --missingDataAsZero -m xxx -b xxx -a xxx --numberOfProcessors xx -o xxx.gz

plotHeatmap -m xxx.gz -out xxx.png

Source:
https://groups.google.com/g/deeptools/c/B55e0kT_0Ec?pli=1
https://github.com/deeptools/deepTools/issues/490

Python return os.system and subprocess output as a string

When we want to use Unix command in python we can directly use os.system() to realize it. However, if we only want to return the output as a string, for example, return ls file names into a string, we need to use subprocess.check_out instead.

To note that, the output from subprocess.check_out() is a bytes object instead of a string, thus we need to further decode to transform into a string.

fileList = subprocess.check_output('ls someFolder/*', shell=True).decode('utf-8').strip().split('\n')

Source:
https://stackoverflow.com/questions/606191/convert-bytes-to-a-string