-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path1.genes_annotation.py
88 lines (73 loc) · 3.5 KB
/
1.genes_annotation.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
from Bio import SeqIO
from Bio import SeqFeature
genes=["ABCB11","COG7","EMCN","ITIH5L"] # ITIH6 é sinónimo do ITIH5l
for gene in genes: # filtragem de informação do ficheiro de mRNA
record=SeqIO.read(f"genes_information\{gene}_mRNA.gb",'genbank')
name=record.name
seq=record.seq
tamanho=len(record.seq)
des=record.description
organismo=record.annotations['source']
tipo_molecula=record.annotations["molecule_type"]
features=record.features
comentarios=record.annotations["comment"]
feat_gene = []
for I,feature in enumerate(features):
if feature.type=='CDS':
gene=(feature.qualifiers['gene'])
notas=(feature.qualifiers['note'][0].split(";"))
produto=feature.qualifiers['product']
with open(f"{gene[0]}.txt","w") as f:
f.writelines(f"Gene: {gene[0]}\nFonte do gene: {organismo}\n\n***INFORMACAO RELATIVA AO mRNA***\n\nTipo de molecula: {tipo_molecula}\nAccession number mRNA: {name}\n")
f.writelines(f'\nTamanho do mRNA: {tamanho} bp\nDescricao do gene: {des}\nNumero de features: {len(features)}\n\nNotas:\n')
for nota in notas:
f.writelines(f"- {nota.strip()}\n")
f.writelines(f"\nProduto resultante: {produto[0]}\n")
f.writelines(f"\nComentarios:{comentarios}\n")
if feature.type=='exon':
feat_gene.append(I)
f=open (f"{gene[0]}.txt","a")
f.writelines(f"\nNumero de exoes: {len(feat_gene)}\n\n")
for I,indice in enumerate(feat_gene):
localizacao=features[indice].location
f.writelines(f"Exao {I+1}: {localizacao}\n") # formato do output [nucleotido inicial:nucleotido final] (strand)
f.writelines(f'\nSequencia mRNA:\n')
for I in range(0,len(seq),100):
seq_=seq[I:I+100]
f.writelines(f"{seq_}\n")
f.close()
genes=["ABCB11","COG7","EMCN","ITIH6"]
for gene in genes: #filtragem informação proteína
f=open(f'{gene}.txt','a')
if gene=="ITIH6":
gene="ITIH5L"
f.writelines('\n***INFORMACAO RELATIVA A PROTEINA***\n\n')
record_prot=SeqIO.read(f"genes_information\{gene}_protein.gb",'genbank')
id=record_prot.name
seq=record_prot.seq
tamanho=len(record_prot.seq)
des=record_prot.description
tipo_molecula=record_prot.annotations["molecule_type"]
features=record_prot.features
f.writelines(f'Tipo de molecula: {tipo_molecula}\nAccession number proteina: {id}\nTamanho proteina: {len(seq)} aa\n')
f.writelines(f'Descricao da proteina: {des}\n')
feat_site=[]
for I,feature in enumerate(features):
if feature.type=='Protein':
peso_molecualr=feature.qualifiers["calculated_mol_wt"][0]
f.writelines(f'Peso molecular: {peso_molecualr} Dalton\nNumero de features da proteina: {len(features)}\n')
if feature.type=='Site':
feat_site.append(I)
if len(feat_site)!=0:
f.writelines('\nLocais de interesse da proteina:\n\n')
for indice in feat_site:
feature=features[indice]
localizacao=feature.location
notas_site=feature.qualifiers["note"]
site_type=feature.qualifiers['site_type']
f.writelines(f'Site {indice+1}:\n \t-Localizacao: {localizacao}\n\t-Notas: {notas_site[0]}\n\t-Tipo: {site_type[0]}\n')
f.writelines(f'\nSequencia proteina:\n')
for I in range(0,len(seq),100):
seq_=seq[I:I+100]
f.writelines(f"{seq_}\n")
f.close()