Ben 60,000 kayıtları ile bu tablo belge var: ÖncedenHata önceden sıralanmış dosyaları (Ubuntu terminall ve Gawkl) kullanılarak "sıralanmamıştır"
head -2 hg38.txt
717 NM_000525 chr11 - 17385248 17388659 17386918 17388091 117385248, 17388659, 0 KCNJ11 cmpl cmpl 0,
987 NM_000242 chr10 - 52765379 52771700 52768136 52771635 452765379,52769246,52770669,52771448, 52768510,52769315,52770786,52771700, 0 MBL2 cmpl cmpl 1,1,1,0,
, ondan çıkarılan, som hatlarını seçilen üçüncü sütun, ve başka chromosomes.txt dosyası
gawk '{print $3}' hg38.txt | sort -u | grep -v "_" | sort -o chromosomes.txt
head -5 chromosomes.txt
chr1
chr10
chr11
chr12
chr13
kaydetmek ve şimdi, "kromozomların" için aynı alan sahip olan kayıt seçmek istiyorum, ama benim sonuca da başka bir alan istiyoruz beri Bunu yapıyorum:
join: -:833: is not sorted: chr10 GLRX3
Onlara nasıl katılabilir?
gawk '{print $3, $13}' hg38.txt | sort | join - chromosomes.txt > final.txt
Ama komutu katılmak konusunda uyarıyor? Ayrıca, katıldıktan sonra, geçici bir dosya oluşturmak yerine, yalnızca ekleyerek daha fazla şey yapabilir misiniz? Örneğin:
gawk '{print $3, $13}' hg38.txt | sort | join - chromosomes.txt | gawk '{print $2}' | uniq -c | gawk 'BEGIN{t=0}{t=t+$1} END{print t/NR}'
Yanıtlarınız için şimdiden teşekkür ederiz!
bu size orijinal dosya kayıtlarını vermeyecek mi? Tanım olarak, chromosomes.txt dosyasındaki tüm kayıtlar hg38.txt dosyasında bulunur. Neyi başarmak istiyorsunuz, belki daha kolay bir alternatif var. – karakfa
Aynı sonucu beklemiyorum. Chromosomes.txt dosyasını oluşturarak, sadece üçüncü alanda _ yazmayan kayıtları kaydettiğimden, üçüncü alana (_) sahip olan satırları kaldırmak için birleşim ile birlikte kullanacağımdan bir şablon oluşturuyorum.). Üzgünüm Açık değilim, ama benim için de karmaşık: S –
böylece sadece üçüncü alanın "_" olduğu kayıtlara filtre uygulamak ister misiniz? sadece 'awk' kullan 3 $! = "_" {print $ 3, $ 13} 'dosya' katılmalarına gerek yok. Çıkışı gerektiği gibi sıralayabilirsiniz. – karakfa