Учебный сайт Алены Корягиной

В рамках курса биоинформатики мы обучались базовым навыкам програмирования на языке Python. И одним из результатов моей работы является скрипт, который читает в формате .fasta файл с протеомом организма и высчитывает частоты встречаемости аминокислот (%) в данном протеоме. На вход скрипт получает два аргумента: имя исходного файла с протеомом организма и имя нового файла, куда будут записываться выходные данные. При желании вы можете скачать этот скрипт и загрузить образец файла с протеомом. Далее я прилагаю текст данного скрипта:
### Class Protein
class Protein:               
                              
    id_RefSeq = ""            
    description = ""          
    sequence = ""             
                              
    def __init__ (self,i,d,s):      
        self.id_RefSeq = i
        self.description = d
        self.sequence = s

### Function for creation dictionary in which the key is amino acids and value is number of this ads in proteome                    
    def dic_fasta(self, pro_count):
        for x in self.sequence:
            if x in pro_count:
                pro_count[x] = pro_count[x] + 1    
            else:
                pro_count[x] = 1
                     

### Import of module for taking attributes from command line
import sys 
                                                     

### Control of number of attributes
if len(sys.argv) != 3:                                          
    print "Script should receive 2 arguments:"                  
    print "First - name of the basic *.faa file with proteome of organism."                      
    print "Second - name of the new file, where information will be saved."                       
    sys.exit()                                                  

### The entered attributes are:                                                                
b_filename = sys.argv[1]                                        
n_filename = sys.argv[2] 
                                       
### Opening two files: basic file with genom and new file for saving information                                                              
basic_file = open(b_filename)
new_file = open(n_filename , "w")
new_file.write("Ads\t%\n")

### Finding individual proteins in file 
list1 = list(basic_file)
f = "" # f = hole file in one string
for i in range(len(list1)):
    f = f + list1[i]
list2 = f.split(">")
list2.remove("")

### Finding properties of protein
proteins = []
for z in list2:
    
    list3 = z.split("\n")                                                          
    sequence = ""                                                                          
    n = 0                                                              
    for string in list3:                                                      
        if len(string.strip()) == 0:                                                
            continue

        if n == 0:
            id_1 = string.split(None,1)[0]
            if len(string.split(None,1)) > 1 :
                desc = string.split(None,1)[1].strip()
            else:
                desc = ""
            n = n + 1
            continue
        sequence = sequence + string.translate(None, "\n\t ")
    my_protein = Protein(id_1, desc, sequence)
### List of proteins 
    proteins.append (my_protein)


### Call function "dic_fasta"
pro_count = {}
for e in range(len(proteins)):
    proteins[e].dic_fasta(pro_count)

### The frequency of occurrence (%) of amino acids
z = 0
for p_key in pro_count.keys():
    z = z + pro_count[p_key]

for p_key in pro_count.keys():
    zz = pro_count[p_key]
    per_cent = (float(zz) / z) * 100
    line = "%s\t%.2f\n" %(p_key, per_cent)
    new_file.write(line)

### Close file
basic_file.close()                                                    
new_file.close()

print "Information about the frequency of occurrence of amino acids in proteome was saved in %s file" % n_filename    

           
© Alyona Koryagina aakor@fbb.msu.ru

Дата последнего изменения: 27.12.2013