MyUNI'ye hoş geldin!

FASTA Dosyasını Okuma ve İnceleme

DNA dizilerinin FASTA formatını anlama ve farklı yöntemlerle indirme

FASTA formatı, nükleotid ve protein dizilerini saklamak için kullanılan yaygın bir biyoinformatik dosya formatıdır. Bu format, her dizi için bir başlık satırı (> ile başlar) ve ardından gelen dizi bilgisini içerir.

FASTA Dosyasını Python ile Okuma

Biyoinformatik analizlerde en çok kullanılan kütüphanelerden biri olan Biopython, FASTA dosyalarını kolayca işlememize olanak sağlar:

from Bio import SeqIO

# FASTA dosyasını okuma
fasta_file = "dna_sequence.fasta" #Bir önceki bölümde oluşturduğumuz veri
sequences = list(SeqIO.parse(fasta_file, "fasta"))

# İlk 5 diziyi ekrana yazdıralım
for seq in sequences[:5]:
    print(f">{seq.id}")
    print(f"{seq.seq}")
    print()

Kod Açıklaması

  • SeqIO.parse() fonksiyonu:

    • İlk parametre: FASTA dosyasının yolu
    • İkinci parametre: Dosya formatı ("fasta")
    • Bu fonksiyon, bir iterator döndürür ve dosyadaki tüm dizileri okur
  • list() fonksiyonu:

    • Iterator'ı listeye dönüştürür
    • Böylece dizileri indeksleyebilir ve daha kolay işleyebiliriz
  • sequences[:5]:

    • Sadece ilk 5 diziyi seçer (performans için)
    • Büyük genomik veri setleriyle çalışırken bellek yönetimi için önemlidir
  • seq.id:

    • FASTA başlık satırındaki tanımlayıcıyı içerir
    • Genellikle veritabanı erişim numarası, gen adı veya diğer tanımlayıcı bilgileri içerir
  • seq.seq:

    • Asıl DNA/RNA/protein dizisini içerir
    • Biopython'un Seq nesnesi olarak saklanır

FASTA Dosyalarının Yapısı

Tipik bir FASTA dosyası şu şekilde görünür:

>NC_000913.3 Escherichia coli str. K-12 substr. MG1655, complete genome
AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC
TTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAA
...

>NC_002695.2 Escherichia coli O157:H7 str. Sakai, complete genome
GGCGATGTTTTGCTGCACTTCTTCAACCGGCATGGCATCACCAGCAATAGCGCGAATTTCCGGCATCATC
ACCATGCTGGGAACCATAGCGGTAAGTATCGTTCCCACTAATAACCATGTCGATCAGGCGTGACAACGGT
...

Gelişmiş FASTA Analizi Teknikleri

FASTA dosyalarını okuduktan sonra yapabileceğiniz bazı analizler:

Dizi İstatistiklerini Hesaplama

# Örnek bir dizi için istatistikler
seq_record = sequences[0]
seq_length = len(seq_record.seq)
gc_content = 100 * (seq_record.seq.count('G') + seq_record.seq.count('C')) / seq_length

print(f"Dizi ID: {seq_record.id}")
print(f"Dizi Uzunluğu: {seq_length} bp")
print(f"GC İçeriği: {gc_content:.2f}%")

Dizileri Filtreleme

# Belirli bir uzunluktan daha uzun dizileri filtreleme
min_length = 1000
long_sequences = [seq for seq in sequences if len(seq.seq) > min_length]
print(f"{len(long_sequences)} adet {min_length}bp'den uzun dizi bulundu.")

FASTA Dosyasını Tarama ve Motif Arama

# Belirli bir motifi içeren dizileri bulma
motif = "ATGC"
motif_sequences = []

for seq in sequences:
    if motif in str(seq.seq):
        motif_sequences.append(seq.id)

print(f"{motif} motifini içeren {len(motif_sequences)} dizi bulundu:")
for seq_id in motif_sequences[:5]:  # İlk 5 sonucu göster
    print(f"- {seq_id}")

İyi Uygulamalar ve İpuçları

  1. Büyük Dosyalarla Çalışırken:

    • Iterator kullanın (list() dönüşümü yapmadan)
    • Dosyayı parça parça okuyun
    for seq_record in SeqIO.parse(fasta_file, "fasta"):
        # Her seferinde bir dizi işleyin
        process_sequence(seq_record)
    
  2. Dizi Formatını Dönüştürme:

    # FASTA'dan GenBank'a dönüştürme
    from Bio import SeqIO
    SeqIO.convert("input.fasta", "fasta", "output.gb", "genbank")
    
  3. Çoklu FASTA Dosyalarını Birleştirme:

    from Bio import SeqIO
    
    # Birleştirilecek dizileri topla
    combined_sequences = []
    for file in ["file1.fasta", "file2.fasta", "file3.fasta"]:
        sequences = list(SeqIO.parse(file, "fasta"))
        combined_sequences.extend(sequences)
    
    # Yeni bir FASTA dosyasına yaz
    SeqIO.write(combined_sequences, "combined.fasta", "fasta")
    

Yaygın Hatalar ve Çözümleri

  • Dosya Bulunamadı Hatası: Dosya yolunu doğru belirttiğinizden emin olun
  • Bellek Sorunları: Büyük FASTA dosyalarıyla çalışırken iterator kullanın
  • Karakter Kodlama Hataları: FASTA dosyalarının ASCII veya UTF-8 formatında olduğundan emin olun

FASTA dosyalarını okuyup analiz etmek, genetik ve genomik verilerin işlenmesi için temel bir adımdır. Bu yetenekler, gen dizileme, filogenetik analizler, mutasyon tespiti ve daha birçok biyoinformatik uygulaması için gereklidir.