Я студент биоинформатики и новичок в bash и программировании. Я хочу рассчитать покрытие генома. #это мой сценарий, я переключаю реальный параметр на xx, но я уверен, что xxs не проблематичны, другие студенты уже выполняют этот скрипт без ошибок.
filename=$1
reference=/xx
filebase=$(basename $filename .bam)
samtools view ${filename} -F 4 -q 30 -b > ${filebase}.f.bam
genomeCoverageBed -ibam -g ${filebase}.f.bam ${reference} > /mnt/ABC/projects/abc/def/${filebase}.cov
coverage=$(grep genome /mnt/ABC/projects/abc/def/${filebase}.cov | awk '{NUM+=$2*$3; DEN+=$3} END {print NUM/DEN}')
echo -e "${filename},${coverage}" >> coverages.txt
когда я выполняю этот скрипт с помощью sh ./coverage.sh /mnt/XYZ/share/sdf_rawdata/hsa/mergedbams/ghj_merged_200203.hs37d5.cons.90perc.bam
это не работает и дает мне awk: cmd. строка: 1: фатальный: попытка деления на ноль и нераспознанный параметр: /mnt/XYZ/share/sdf_rawdata/hsa/mergedbams/ghj_merged_200203.hs37d5.cons.90perc.bam ошибка, а в файле Covers.txt есть только эта строка - e /mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash128_all.merged.hs37d5.fa.cons.90perc.bam, больше ничего. Спасибо за помощь
DEN
равно нулю. Вы не показали содержимое ошибочной строки в$filebase.cov
, поэтому мы не можем знать 3-е поле и, следовательно, не знаем, как было рассчитаноDEN
- person user1934428   schedule 16.11.2020