linuxda hata veriyor

Bu konuyu okuyanlar

azlilili

Öğrenci
Katılım
13 Kasım 2020
Mesajlar
3
Reaksiyon puanı
2
Puanları
3
Yaş
26
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
 

kmurat

Müdavim
Katılım
8 Şubat 2014
Mesajlar
8,486
Çözümler
3
Reaksiyon puanı
3,709
Puanları
113
Aramızda Bash bilen varmı? sanmıyorum.
 

enesozdemirim

Öğrenci
Katılım
18 Mayıs 2020
Mesajlar
66
Çözümler
1
Reaksiyon puanı
38
Puanları
18
Yaş
17
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
 

azlilili

Öğrenci
Katılım
13 Kasım 2020
Mesajlar
3
Reaksiyon puanı
2
Puanları
3
Yaş
26
sorabileceğim başka bir başlık/forum bilen var mı?
 

darkstar

Müdavim
Katılım
21 Ağustos 2016
Mesajlar
1,638
Reaksiyon puanı
1,481
Puanları
113
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

Asistan
Katılım
15 Aralık 2019
Mesajlar
180
Çözümler
1
Reaksiyon puanı
211
Puanları
43
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
Katılım
13 Kasım 2020
Mesajlar
3
Reaksiyon puanı
2
Puanları
3
Yaş
26
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
 
Üst