2009-11-24 17 views
7

ben merak oldu. Ayrıca bir R BI iletkenlik çözümü veya bir BioPerl modülü yapardı, ama hiçbir şey bulamadım.MultiFASTA dosya işleme

Yardımcı olabilir misiniz? Çok teşekkürler :-)

cevap

7

Kabartma araçlarından bazıları, size yardımcı olabilecek küçük araçlar koleksiyonudur.

Fasta girişlerinin sayısını saymak için, ben kullanın: grep -c '^>' mySequences.fasta. Her ne kadar, grep '^>' mySequences.fasta | sort | uniq | wc -l

2

Ayrıca Kent Source Tree bir araçtır faSize, ilginizi çekebilir:

girişlerinin emin hiçbiri bunu yaptığıma aynı sayı elde olmadığını kontrol yinelenen vardır yapmak için Bu sadece grep kullanarak biraz daha fazla çaba (eğer Dload ve derleme gerekir) gerektirir ... burada bazı örnek çıktısı:

[email protected] ~/data $ time faSize myfile.fna 
215400419 bases (104761 N's 215295658 real 215295658 upper 0 lower) in 731620 sequences in 1 files 
Total size: mean 294.4 sd 138.5 min 30 (F5854LK02GG895) max 1623 (F5854LK01AHBEH) median 307 
N count: mean 0.1 sd 0.4 
U count: mean 294.3 sd 138.5 
L count: mean 0.0 sd 0.0 
%0.00 masked total, %0.00 masked real 

real 0m3.710s 
user 0m3.541s 
sys  0m0.164s 
0

Bu unutulmamalıdır (bu tökezletici herkes için, sadece yaptığım gibi) bu Bu görevler için özel olarak tasarlanmış sağlam bir python kütüphanesi vardır. ed Biopython. Birkaç kod satırında, yukarıdaki tüm soruların cevaplarına hızlıca erişebilirsiniz. Burada çoğunlukla bağlantıdan uyarlanmış bazı çok temel örnekler var. Ayrıca eğitimde kazan plakası GC% grafikleri ve dizi uzunluğu grafikleri vardır.

In [1]: from Bio import SeqIO 

In [2]: allSeqs = [seq_record for seq_record in SeqIO.parse('/home/kevin/stack/ls_orchid.fasta', """fasta""")] 

In [3]: allSeqs[0] 
Out[3]: SeqRecord(seq=Seq('CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGG...CGC', SingleLetterAlphabet()), id='gi|2765658|emb|Z78533.1|CIZ78533', name='gi|2765658|emb|Z78533.1|CIZ78533', description='gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene and ITS1 and ITS2 DNA', dbxrefs=[]) 

In [4]: len(allSeqs) #number of unique sequences in the file 
Out[4]: 94 

In [5]: len(allSeqs[0].seq) # call len() on each SeqRecord.seq object 
Out[5]: 740 

In [6]: A_count = allSeqs[0].seq.count('A') 
     C_count = allSeqs[0].seq.count('C') 
     G_count = allSeqs[0].seq.count('G') 
     T_count = allSeqs[0].seq.count('T') 

     ​print A_count # number of A's 

     144 

In [7]: allSeqs[0].seq.count("AUG") # or count how many start codons 
Out[7]: 0 

In [8]: allSeqs[0].seq.translate() # translate DNA -> Amino Acid 
Out[8]: Seq('RNKVSVGEPAEGSLMRPWNKRSSESGGPVYSAHRGHCSRGDPDLLLGRLGSVHG...*VY', HasStopCodon(ExtendedIUPACProtein(), '*'))