0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan16 halaman

Pemrosesan DNA dan Bioinformatika

Dokumen ini menyajikan 9 latihan tentang pemrosesan dasar urutan biologi sebagai bagian dari kursus Dasar-dasar Bioinformatika. Latihan-latihan tersebut mencakup program untuk menghitung nukleotida dalam urutan DNA, memeriksa apakah urutan sama dengan komplemennya yang terbalik, menghitung duple CG, menerjemahkan urutan DNA menjadi protein, dan lainnya. Dokumen ini diakhiri dengan usulan proyek untuk mengimplementasikan subkelas untuk merepresentasikan urutan DNA, RNA, dan protein menggunakan kelas dasar.

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan16 halaman

Pemrosesan DNA dan Bioinformatika

Dokumen ini menyajikan 9 latihan tentang pemrosesan dasar urutan biologi sebagai bagian dari kursus Dasar-dasar Bioinformatika. Latihan-latihan tersebut mencakup program untuk menghitung nukleotida dalam urutan DNA, memeriksa apakah urutan sama dengan komplemennya yang terbalik, menghitung duple CG, menerjemahkan urutan DNA menjadi protein, dan lainnya. Dokumen ini diakhiri dengan usulan proyek untuk mengimplementasikan subkelas untuk merepresentasikan urutan DNA, RNA, dan protein menggunakan kelas dasar.

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

UNIVERSITAS ANDINA CUSCO

FAKULTAS TEKNIK DAN ARSITEKTUR


SEKOLAH PROFESIONAL INGENIERI SISTEM

Pemrosesan dasar urutan biologis


Mata Pelajaran: Dasar-Dasar Bioinformatika
Dosen: Mgt. Ing. Harry Yeison Gonzales Condori
Anggota:
• BACA ORCON, WILIANS ANTHONY (Berpartisipasi)
• CASTRO ALENCASTRE, ADRIANA (Berpartisipasi)
• HERMOZA PFUYO, JULIO WILLIAMS (Berpartisipasi)
• HUAMAN GUZMAN, GONZALO RODRIGO (Berpartisipasi)
• MONTALICO CASTRO, FRANK JOSUE (Berpartisipasi)
• UBALDE JANCCO, CRISTIAN (Berpartisipasi)

Cusco–Peru
2021
Pengembangan

1."Tulis program yang membaca urutan DNA, mengubahnya


ubah menjadi huruf besar dan hitung berapa banyak nukleotida yang pur
inas dan pirimidina.

defcont_puri_piri(sec_adn):
jika_validasi_adn(sec_adn):
SEC_ADN
cantidad = {"Purinas":0,"Pirimidinas":0}
forcantinsec_adn
ifcantin['A','G']:
+=1
elifcantin['C','T']:
+=1
lainnya:
kembaliTidakAda
returnprint(sec_adn,cantidad)
lainnya: kembalikan cetak("Urutan DNA tidak valid")

cont_puri_piri("atagagagatatcg")
2."Tulis program yang membaca urutan DNA dan memverifikasi
ue jika sama dengan komplemen inversnya.

defeje2(sec_adn):
ifvalidar_adn(sec_adn):
sec
comp = komplemen_inverso(sec_adn)
forcinsec_adn.upper():
jika ifc == "G":

C
elifc == "C":
G
elifc == "A":
T
elifc=="T":
A
jika komparasi==sec:

Kembali cetak("Urutan ini sama dengan komplemennya")


ke", komponen," = ", detil
lain: kembalikan cetak("Urutan DNA tidak valid")

eje2("atagataactcgcatag")
3."Tulis dan uji fungsi yang, diberikan urutan AD
N, kembalikan jumlah total pasangan "CG" yang terkandung.
defeje3(sec_adn):
ifvalidar_adn(sec_adn):
seqC = sec_adn.upper()
cg_count =0
forsinseqC
CG
cg_count +=0.5
returnprint("Jumlah total pasangan adalah: ",
cg_count)

lainnya: return print("Urutan DNA tidak valid")

eje3("acgt")
4."Tulis dan uji fungsi Python yang, mengingat sebuah urutan
ncia de ADN, kembalikan ukuran protein pertama yang dapat
dikalikan oleh urutan itu dalam salah satu dari yang tiga
marcos bacaan). Fungsi seharusnya mengembalikan - jika tidak ada
Tidak ada protein yang ditemukan.
defproteina(secu_p):
secu_p
frekuensi(sec_aa)
list_f = sorted (frec_aa.items(), key=lambdax: x[1], reverse =T
rue)
untuk (k, v) di list_f:
:

defeje4(sec_adn):
a=sec_adn
ifvalidar_adn(a):
dic = {}
seqC = [Link]()
p = protein(seqC)
errors =0
forbinseqC
jika bin"CG":
jika dic[b] +=1
lainnya: dic[b] = 1
lainnya: kesalahan +=1
kamus kembali
lainnya: kembalikan cetak("-1")

eje4("ATGTACTCATCGTTTCGGAAGAGACAGGTACGTTAATAGTTAATAGCGTACTTCTTTTAAA
ACCTTCTTTTTACGTTTACTCTCGTGTTAAAAATCTGAATTCTTCTAGAGTTCCTGATCTTCTGGTC
TAA")
5."Tulis dan uji sebuah fungsi yang, mengingat sebuah
urutan asam amino, kembalikan nilai logis
yang menunjukkan apakah urutan tersebut dapat menjadi suatu protein atau

tidak
defvalidarAdn(seq_adn):
#mengubah string ke huruf kapital dan menyimpannya dalam variabel
seqm
seqm = seq_adn.upper()
#validacion adalah variabel bertipe int yang mengakumulasi jumlah dari
s nukleotida
validasi = [Link]("A") + [Link]("C") + [Link]("G")
+ [Link]("T")
jumlah validasi dibandingkan dengan ukuran string ini
cial
jika validasi == panjang(seqm):
kembalikanBenar
lainnya:
kembaliSalah
deftranslate_codon(cod):
A
C
D
E
F
G
H
Saya
K
L
M
P
Q
R
S
T
V
W
Y
TAA
ifcodintc:
kembali tc[cod]
lainnya:
kembalikanTidakAda

deftranslate_seq(dna_seq,ini_pos=0):
assertvalidarAdn(dna_seq),"Urutan DNA tidak valid"
seqm = dna_seq.upper()
seq_aa

forposinrange(ini_pos,len(seqm)-2,3):
cod = seqm[pos:pos+3]
seq_aa += terjemahkan_kodon(cod)

returnseq_aa

defprimera_protina(seqAA):

validasiADN(seqAA)
adn = translate_seq(seqAA,0)
inProt =False
endProt =False
prot
pos =0
selama tidak ada akhir Prot dan pos <len(adn):

ifinProt
ifadn[pos] == "_": endProt = True
lainnya: prot += adn[pos]
lainnya:
ifadn[pos]=="M":
Benar
M
pos +=1

ifendProt =="_":
kembali0
lainnya:
kembali-1
Urutan asam amino:
primera_protina("")
iflprot==0: print("Jika ini protein ")
sebaliknya: cetak("Bukan protein")
6."Tulis dan uji fungsi Python yang, diberikan sebuah urutan
ncia DNA, buat peta (kamus) dengan frekuensi d
dan asam amino yang dikodekan (mengasumsikan bahwa terjemahan
se mulai di posisi pertama dari urutan DNA). Los
kodon penghenti harus diabaikan.

defcrea_mapa(sec_adn):
ifvalidar_adn(sec_adn):
frec_trad = {}
pos_i=0
foriintraductor_sec(sec_adn,pos_i):
ifi=='_':
lanjutkan
ifiinfrec_trad
frec_trad[i] +=1
lainnya:
frec_trad[i] =1
returnfrec_trad
lain:embalikan cetak("Sekuen dna tidak valid")

ATGTACTCATCGTTTCGGAAGAGACAGGTACGTTAATAGTTAA
TAGCGTACTTCTTTTAAAACCTTCTTTTTACGTTTACTCTCGTGTTAAAAATCTGA
ATTCTTCTAGAGTTCCTGATCTTCTGGTCTAA
buat_peta(sekuens)
7."Tulis program yang membaca urutan asam amino dan
sebuah urutan DNA dan mencetak daftar semua subsekuensi
ncias dari urutan
ADN yang mengkodekan urutan protein yang diberikan.
defsubseqs(seqDNA,seqAA):

A
C
D
E
F
G
H
Aku
K
L
L
M
P
Q
R
R
S
S
T
V
W
Y
TAA
}
subseqs = []
lastpos = len(seqDNA) - len(seqAA) * 3 + 1
foriinrange(lastpos):# posisi awal
prot
forkinrange(i, i +len(seqAA)*3,3):
codao = seqDNA[k : k+3]
aa = d[codao]
prot += aa
jika prot == seqAA:
[Link](i)
kembali subsekuens
utama
MASUKKAN SEBUAH SEKUENS AMINOASID:
masukkan("MASUKKAN SEBUAH SEKUENS DNA:")
subs = subsekuens(seqDNA, seqAA)
ifsubs
Subsekuens yang mengkodekan urutan asam amino
dianae
forsinsubs
print(seqDNA[s:s+len(seqAA*3)])
lainnya:
Tidak ada subsekuens yang mengkode urutan asam amino
s diana
8."Tulis sebuah fungsi yang, dengan urutan sebagai argumen
mengizinkan mendeteksi apakah ada subsekuensi berulang dengan ukuran k
Argumen kedua dari fungsi) Hasilnya harus berupa di
kamus di mana kuncinya adalah subsekuensi dan nilainya adalah
pada jumlah kali yang terjadi (setidaknya 2) Gunakan fungsi
n dalam sebuah program yang membaca
sekuensi dan k cetak hasilnya.
9. "Tulis dan uji fungsi yang, mengingat sebuah urutan AD
N, kembalikan jumlah total pasangan "CG" yang ada.

defeje9(sec_adn):
ifvalidar_adn(sec_adn):
seqC = sec_adn.upper()
cg_count =0
forsinseqC:
CG
cg_count +=0.5
returnprint("Jumlah total pasangan adalah: ",
cg_count)

else:returnprint("Urutan DNA tidak valid")

eje9("acgt")
Proyek 1
Mengambil sebagai dasar kelas MySeq yang dikembangkan di kelas, implementasikan subkelas untuk yang tiga
tipos distintos de secuencias biológicas: ADN, ARN y proteínas. En cada uno defina un
konstruktor yang tepat. Definisikan ulang metode kelas induk, dalam kasus dimana Anda merasa bahwa
ini diperlukan atau berguna. Sesuaikan jenis keluaran di setiap metode sesuai kebutuhan.

classMySeq:
Kelas untuk urutan biologis.
def__init__(self,seq,seq_type="DNA"):
[Link] = [Link]
self.seq_type
def__len__(self):
returnlen ([Link])
def__getitem__(self,n):
[Link][n]
def__getslice__(self,i,j):
[Link][i:j]
def__str__(self):
kembalikan [Link]
defget_seq_biotype(self):
returnself.seq_type
defshow_info_seq(self):
cetak ("Urutan: "+[Link] +" biotipe: "+self.seq_type)
defalphabet(self):
jika(self.seq_type=="DNA"):
kembali "ACGT"
elif(self.seq_type=="RNA"):
kembali"ACGU"
elif(self.seq_type=="PROTEIN"):
KEMBALI"ACDEFGHIKLMNPQRSTVWY"
lainnya: kembalikanTidakAda

defvalidasi(self):
alp =[Link]()
res =True
i=0
sementara i <len([Link])dan res:
jika [Link][i] tidak ada dalam alp: res = Salah

lainnya: i +=1
kembalikan
deftranskripsi(self):
jika(self.seq_type == "DNA"):
returnMySeq([Link]("T","U"),"RNA")
lainnya:
kembalikanTidakAda

defreverse_comp(self):
jika(self.seq_type !="DNA"):returnNone
comp
[Link]:
jika(c == "A"): comp = "T" + comp
elif(c =="T"): comp ="A" + comp
elif(c =="G"): comp ="C" + comp
elif(c=="C"): comp ="G"+ comp
returnMySeq(comp,"DNA")
deftranslate(self,iniPos=0):
jika(self.seq_type !="DNA"):kembaliNone
seq_aa
untukposindrange (iniPos,len([Link])-2,3):
cod =[Link][pos:pos+3]
seq_aa += terjemahkan_kodon(cod)
kembalikanMySeq(seq_aa,"PROTEIN")

kelasADN(MySeq):
lewat

classARN(MySeq):
lewat

kelasProteina(MySeq):
lewat

ADN("ATGTGATAAGAATAGAATGCTGAATAAATAGAATGACAT")
cetak(transkripsi(adn1))
Proyek 2

Paket random mencakup serangkaian fungsi yang memungkinkan untuk menghasilkan angka acak.
Menggunakan beberapa fungsi tersebut, bangun modul yang menerapkan generasi
urutan DNA acak dan analisis mutasi pada urutan ini. Dapat mencakup
fungsi untuk menghasilkan urutan acak dengan ukuran tertentu, untuk mensimulasikan
kemunculan sejumlah mutasi tertentu dalam urutan DNA di posisi
acak (termasuk penyisipan, penghapusan, dan penggantian) dan fungsi untuk mempelajari dampak
mutasi pada protein yang dikodekan oleh urutan tersebut.

importrandom

defgenADN():

DNA=['A','C','G','T']

tamaADN=len(DNA)
cetak(tamaADN)
fornuminrange(2):
ADN=[Link](DNA,k=10)
cetak("Primer ADN: ", ADN)
Apakah Anda ingin memasukkan mutasi?:
1
masukkan jumlah mutasi:
untuk dalam rentang(mutasi):
Masukkan nukleotida:
[Link](nukleotida)
print("ADN baru adalah:", ADN)
elifmutati=="0":
Apakah Anda ingin menghapus suatu senyawa?:
ifboolremo=="1":
masukkan jumlah yang akan dihapus:
untuk dalam rentang(remover):
Masukkan nukleotida:
[Link](nucleoremove)
cetak("ADN baru adalah:", ADN)
elifboolremo=="0":
Apakah Anda ingin mengganti suatu senyawa?
ifreplacesADN=="1":
masukkan jumlah yang akan dihapus:
"))
untuk dalam rentang (reemplace):
masukkan senyawa pengganti:
")
masukkan nukleotida:
forn,iinenumerate(ADN):

ifi==valorre:
nukleoreplace
lainnya:
Cetak("Nilai tidak ditemukan")
print("ADN baru adalah:", ADN)
elifreplacesADN=="0":

cetak("DNA adalah: ", DNA)


cetak(genADN())

Anda mungkin juga menyukai