linuxda hata veriyor

Bu konuyu okuyanlar

azlilili

Öğrenci
merhaba, linux kullanmakta ve aslında bu alanda yeniyim, biyoinformatik master yapmaya başladım. Coverage hesaplamak için bağlandığım bir serverda sh dosyası oluşturdum ve içine şunları yazdım.
"#!/bin/bash
filename=$1
reference=/mnt/xxx/share/ref/genomes/hsa/hs37d5.fa
samtools view ${filename} -F 4 -q 30 -b > ./${filename}.f.bam
genomeCoverageBed -ibam ${filename}.f.bam -g ${reference} > ${filename}.cov
coverage=$(grep genome ${filename}.cov | awk '{NUM+=$2*$3; DEN+=$3} END {print NUM/DEN}')
echo -e "${filename},${coverage}" >> coverages.txt"
burada filenames olan kısımda yine server içindeki başka bir dosyanın içinden bam dosyasını belirterek yazıp çalıştırmaya çalıştığımda şunlarla karşılaşıyorum.
$ sh ./coverage.sh /mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam
./coverage.sh: 7: cannot create .//mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam.f.bam: Directory nonexistent
./coverage.sh: 8: cannot create /mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam.cov: Permission denied
grep: /mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam.cov: No such file or directory
awk: cmd. line:1: fatal: division by zero attempted
sorunun ne olduğunu anlayamadım yardımcı olabilirseniz sevinirim.
Bu arada yukarıda serverda oluşturduğum sh dosyası coverage.sh, sh ./dan sonra onu yazıyorum
 

enesozdemirim

Öğrenci
merhaba, linux kullanmakta ve aslında bu alanda yeniyim, biyoinformatik master yapmaya başladım. Coverage hesaplamak için bağlandığım bir serverda sh dosyası oluşturdum ve içine şunları yazdım.
"#!/bin/bash
filename=$1
reference=/mnt/xxx/share/ref/genomes/hsa/hs37d5.fa
samtools view ${filename} -F 4 -q 30 -b > ./${filename}.f.bam
genomeCoverageBed -ibam ${filename}.f.bam -g ${reference} > ${filename}.cov
coverage=$(grep genome ${filename}.cov | awk '{NUM+=$2*$3; DEN+=$3} END {print NUM/DEN}')
echo -e "${filename},${coverage}" >> coverages.txt"
burada filenames olan kısımda yine server içindeki başka bir dosyanın içinden bam dosyasını belirterek yazıp çalıştırmaya çalıştığımda şunlarla karşılaşıyorum.
$ sh ./coverage.sh /mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam
./coverage.sh: 7: cannot create .//mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam.f.bam: Directory nonexistent
./coverage.sh: 8: cannot create /mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam.cov: Permission denied
grep: /mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam.cov: No such file or directory
awk: cmd. line:1: fatal: division by zero attempted
sorunun ne olduğunu anlayamadım yardımcı olabilirseniz sevinirim.
Bu arada yukarıda serverda oluşturduğum sh dosyası coverage.sh, sh ./dan sonra onu yazıyorum
a aaaa evet bendede verdi
 

darkstar

Profesör
Bash programlama bildiğimi iddia edemem ama biraz aşinalığım var.
NUM ve DEN değerlerinin "0" dan büyük olduğunu awk da tanımlamalısınız.
Özellikle DEN değeri 0 olamaz.

Kod:
awk '{NUM+=$2*$3; DEN+=$3}
     END {  if (DEN > 0){
                print NUM/DEN
            }
         }'
 

OzgunPr

Öğrenci
reference=/mnt/xxx/share/ref/genomes/hsa/hs37d5.fa

xxx kısmı doğru mu? xxx hedefi nedir, bunun yerine yazmanız gereken bir hedefi nitelemek için kullanılmış olmasın? Betiği bir yerden kopyalayıp kullanıyorsanız, bunun amacını tespit edin. Bunun yerine NEOGENE2 yazmanız gerekip gerekmediğinden emin olun.

samtools view ${filename} -F 4 -q 30 -b > ./${filename}.f.bam

./${filename}.f.bam yerine ${filename}.f.bam yazmayı deneyin, bu satırın karşılığı olarak aşağıdaki şekilde dizin bulunamadı uyarısı alıyorsunuz. ./ kısmı hatalı olduğu için, hedefte oluşturulmaya çalışılan dizinin başına da ./ ekleniyor. Dolayısı ile hatalı bir hedefe dosya ve dizin oluşturamama hatası almanız normal.
./coverage.sh: 7: cannot create .//mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam.f.bam: Directory nonexistent

Devamındaki diğer sorunlar ya da hata mesajları da büyük ihtimalle bununla bağlantılı.

./coverage.sh: 8: cannot create /mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam.cov: Permission denied
grep: /mnt/NEOGENE2/share/compevo_rawdata/hsa/mergedbams/Ash129_2019.merged.hs37d5.fa.cons.90perc.bam.cov: No such file or directory

Çıktıları okumak önemli.
 

azlilili

Öğrenci
xxx kısmı doğru mu? xxx hedefi nedir, bunun yerine yazmanız gereken bir hedefi nitelemek için kullanılmış olmasın? Betiği bir yerden kopyalayıp kullanıyorsanız, bunun amacını tespit edin. Bunun yerine NEOGENE2 yazmanız gerekip gerekmediğinden emin olun.



./${filename}.f.bam yerine ${filename}.f.bam yazmayı deneyin, bu satırın karşılığı olarak aşağıdaki şekilde dizin bulunamadı uyarısı alıyorsunuz. ./ kısmı hatalı olduğu için, hedefte oluşturulmaya çalışılan dizinin başına da ./ ekleniyor. Dolayısı ile hatalı bir hedefe dosya ve dizin oluşturamama hatası almanız normal.


Devamındaki diğer sorunlar ya da hata mesajları da büyük ihtimalle bununla bağlantılı.



Çıktıları okumak önemli.
teşekkür ederim
 

SDN Son Haberler

Son mesajlar

Üst