Conversation
nvaulin
left a comment
There was a problem hiding this comment.
Привет!
Отличная работа. README прям то что надо, четко и по делу.
Отдельный лайк за то что внесла исправления из предыдущих ревью!
По поводу случайного леса. Все хорошо, ты делала все правильно. Понятно, не хватает predict, но я бы еще отметил что все таки сам класс надо было бы вынести в скрипт. А ноутбуки чисто для примеров. Можешь открыть diff совего пулл-реквеста на гитхабе и посмотреть как отображается код в ноутбуке. Как минимум - его сильно сложне верьюить:) Ну и хочется чтобы у вас была привычка писать код в скриптах
По текстам все супер, идеи очень хорошие. Только небольшие замечания по оформлению:)
Из-за того что predict это равноценная часть с fit, то плучилось как-то сильно повлияло на оценку.
Баллы: 15/25 (RandomForest) + 10/10 (Тесты) + 14/15 (Репозиторий и оформление кода) = 39
Молодец!
| `bio_files_processor` provides opportunity to manipulate with FASTA files | ||
| ## My first bioinformatics tools | ||
|
|
||
| This repository contains homeworks assignments from the Python course within the "Bioinformatics for Biologists" annual program at the Institute of Bioinformatics (2023-2024). It contains python realizations of a number of training tasks |
There was a problem hiding this comment.
| This repository contains homeworks assignments from the Python course within the "Bioinformatics for Biologists" annual program at the Institute of Bioinformatics (2023-2024). It contains python realizations of a number of training tasks | |
| This repository contains homeworks assignments from the Python course within the "Bioinformatics for Biologists" annual program at the Bioinformatics institute (2023-2024). It contains python realizations of a number of training tasks |
| class OpenFasta: | ||
| def __init__(self, file_path: str): |
There was a problem hiding this comment.
Тут кстати тоже можно было бы добавить докстрингу, этому классу
| @@ -0,0 +1 @@ | |||
| SEQ = " CTTTTTCGTCTGGGCTGCCAACATGGTAGGTGTTTCGTTTCTTGCCTCCTCTTCCTTGCCGGCGGAGACCCCTAAGCTGTATTCCCATTGCCCCTAGTCATCCACTCCCTACCATGGTCGGGGCTTCCAGGCTGCGCATGGCCGCCTGCGGGGCAGGGTGGCCGGCGCGGGCCCGGGGCGGGGCTCCCGGAGCCGTGTGTTAGGCCCGCGGTTCGGATCTCTAGGACACGCGGGCCCCTGCGCTACCGTGGTGAGACCTCACGGCCCTGAGCGGATCGGTACCCTCAGCTTTCCCAAACGCTCCAGAAGTTAGGTCTTTGACCCACAGGCTTACAGGACCATCTCGGCTGGCGGGCATCGCCCCCTGCCCCTAATTCCTTAGGCCTTACCACCAAGCTTTTTCCACACAGCCATCCAGACTGAGGAAGACCCGGAAACTTAGGGGCCACGTGAGCCACGGCCACGGCCGCATAGGTAAGTGCCGGCTTCCCCTCGGGGTGGGCCTTGGGCTCTCTTCGGGTGCTTAGCTAGTCTGGAGATCGGTAGCCTATAAGTGGGTTAGAATAAGACCTTTTTGTGGTCAAGTTGCACAGCTGTTGATTTTTTTCTGACGATCCTCTAGTATTCCAGTTCTAAGGAATTTCACATCAGTGGGGTAATAGGAATTGAGCAGGCACGGTATTGGGTTAGTTGAAGACATGGAGTACTGTGGGAATGCTGTGATGTGGAACCTGAAAAGATGTTTCACCCGGAATCCTAAAGTAATCGCATTGCTGAAAACCGGCATCGGTAGGGTGGGAACAGCGTAAGCGGGACACAGAAGTCTGGGAAACACTCTGCTTTTGTGCGAGGAAGTATTGAGATGCATGAGAAGGCTGTGTGGTGCATGTAGCTTTTTTGTGTGTGTGTGAGACTGATCACTGTCGCCCAGGCTGGAGTGCAGTGGCGAAATCTCGGCTCACTGCAACCCCTGCCTGCCGGGCTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGATATTACAGGTGTGCGCCACGACGCCCGGCTAATTCTTTTTCTATTTTTAGTAGAGTCGGGGGTTTCTCCGTGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCTACCCCCCCTCGTCCTCCTAAAATGCTGGGATTACAGGCATGAGCCATCACACCGGCCCCACGTAGCTTTGTATTCCTGCAGGCAAGCACCGGAAGCACCCCGGCGGCCGCGGTAATGCTGGTGGTCTGCATCACCACCGGATCAACTTCGACAAATAGTAAGTGTCCTTGGACTGCTTTTATTGACACAGCTTGGGAGGTAGGGGCAGAGAGAGGGCTGGCTTAAACAAAAAGTTTAGAAGCAAGCCTTGCCTATTGCTGTTTTTTACCAAGTTAACACTTGGTGTGAACTGAGAACCTGTCATCGAGGCTAGAGTCACGCTTGGGTATCGGCTATTGCCTGAGTGTGCTAGAGTCCTCGAAGAGTAACTGCTGACCTTATTCACTGGCTGTGGGCCTTATGGCACAGTCAGTCACCAGGTTAGAGACATGCTTCACATTCACCTACCCACAAACTAGTGGATGATAAATTTTGGCTATTCAGAAGACGTTTATTATAGGAGTATGTAGATTTTCCATAGAGTGCTGTTATGTGACTTGAATTTTAGTCTCGGCCCTGCCTCTGACATTGTCGGTGGTTTATCCTGGTTCCAGGAAATAAGACTAGCCTTTTCCTCATGATAGTCTTTGGTGGTTTTTAAAACAGTTGTTTAAGTCAACAGATGTATCATATGCCTGACACTGCTCTACACCAGTGAATAATTTACACTCTAATAGGGGGTGGTAACTATAAAGATGATAAACATAGCATCTTAATTGGAGTGTGTATGAAGGTGGTTGTTACCTCTTCCTAGCCACCCAGGCTACTTTGGGAAAGTTGGTATGAAGCATTACCACTTAAAGAGGAACCAGAGCTTCTGCCCAACTGTCAACCTTGACAAATTGTGGACTTTGGTCAGTGAACAGACACGGGTGAATGCTGCTAAAAACAAGACTGGGGCTGCTCCCATCATTGATGTGGTGCGATCGGTAAGTTAATTGGATGTTTTTCTGTACTTCCATACCTTCCCTTACAAAACTCTGGCTTAATCTAATCCACTTATATAATCTGTACTTCCCAGTTACCTACCAGACATTGATATTCTTCCTGTGGTAGAATTATCATAGGTAGTTCCCTATCCGTAGCAGTGCCTACTGTCACTGCCCAGGTTGTATCAGGTTTGCATTTCGTGCTTGAACTATAGCTGGTTTTCACTGAGCACAGCTCTTGGCCCTTCATGTTCTCCAGATAATAGAATCCTAATATGTTCCATTGATACTCAGTGCCATGCATTATCTGAAGAGATTTTCCCCCAAAACAGATGTATTATGTCTGTCCTTGCGGGGGTTCTGGTCCCTGTGTCAGTCTTAACTCTCATGAATATAGAGGTAGTGTTAAGAGGCCAGAACCCTAGGGACGCTTTAAATTCACTTCCCAGCCTATTTAATGTCCATTGAGTAGTTCTGGTGGTCAGGAAGGTGGTTGTCTTCTTTTGCTTAGCAGGGGGTATTTGAGCAGGAGGAGGCTTATGCTTTGCCGAGACTAGAGTCACATCCTGACACAACTCTTGTCCTGGTGTGCTAGAGTACTCGAAGAGAATCTACTGGTCTTGATTCACTGGTGGGGGCAGTCGGTGCCCCCGTTAGTGCCCAGATCAGAAACATACATACCCTGCCTAGGGATTTAGAAAGTGGGTTGGCAGTCTTTCCTCACGCCCATCACGCAGTTGGTACCTACTACAGTGTATTGTAAACTTTTTTCTCTGTTCTTCTAGGGCTACTACAAAGTTCTGGGAAAGGGAAAGCTCCCAAAGCAGCCTGTCATCGTGAAGGCCAAATTCTTCAGCAGAAGAGCTGAGGAGAAGATTAAGAGTGTTGGGGGGGCCTGTGTCCTGGTGGCTTGAAGCCACATGGAGGGAGTTTCATTAAATGCTAACTACTTTTTCCTTGTGGTGTGAGTGTAGGTTCTTCAGTGGCACCTCTACATCCTGTGTGCATTGGGAGCCCAGGTTCTAGTACTTAGGGTATGAAGACATGGGGTCCTCTCCTGACTTCCCTCAAATATATGGTAAACGTAAGACCAACACAGACGTTGGCCAGTTAAACATTTCTGTTTATAAAGTCAGAATAATACCTGTTGATCACTGAAAGGCCTGCATGTATTGTACTCTGAATTTTACAGTGAATGAGAGAATGTACCCTAATTGTTCAACAGGGCTCAAAAGGAAAGATTCCATTTTGATGGGTCACATTCTAAAGAGGGGCAGTGTGATAGGAATGAGATGGTCCTTTAGGACTTAAGTTCTCAGCCCAAGGTTTTTCCACGTGGCCCCCTCATCTTTTTTTTTTTTTTAAACGGAGTCTCTCTTGCCAGGCTGGAGTGCAGTGGCACGATCTCGGCTCACTGCAGCCTCCGCCTCCCAGGTTAAGCGATTCTCCTGCCTCAGCTTCCTGACTAACTGGGATTACAGGCGCCCACCACCATGCCCAGCTAATTTTTGTATTTTCAGTAGAGATGGGGTTTCACCATGTTGGCCATGCTGGTCTCTAACTCCTAACCTCAAGTGATCTGCCCACATCGGCCTCCAAAAGTTCTGGGATTATAGTGTGAGCCACTGCGCCCGGCCATGGCTCCTTAATCTTGATCCAAATTATTGTTACATCCAGAATGTGATGAATCAAAATCTCGAGATGGGGGTCCAGCAATCTGAAATTTCAGTATGCCAGGGCTTTTCTGTATGTCAAAGTGGGTTTGAAATAGTTAATTTTTCTTCTAGTCTGAAATGTATCGGGAAAATTTGGAAATCCTGAAGGCTGGAAATTGAAATAAGTTTTTCTAGGATTTGTGTCTCTTGCTATTGGAAAACTGATGGTGACCA" No newline at end of file | |||
| " self.trees = []\n", | ||
| " self.feat_ids_by_tree = []\n", | ||
| "\n", | ||
| " def fit_single_tree(self, i):\n", |
There was a problem hiding this comment.
По логике все супер. Я бы еще добавил одно нижнее подчеркивание в названиях методов fit и predict которые работают с 1 деревом. Чтобы подчеркнуть что это что-то внутренне, а публичный интерфейс это классические fit и predict
| "\n", | ||
| " def fit_single_tree(self, i):\n", |
There was a problem hiding this comment.
i обычно если и назыают переменную, то это же обычно какой-нибудь счетчик. А тут это же скорее, например:
| "\n", | |
| " def fit_single_tree(self, i):\n", | |
| "\n", | |
| " def fit_single_tree(self, tree_id):\n", |
| beautifulsoup4==4.12.3 | ||
| Bio==1.7.0 | ||
| pytest==8.2.0 | ||
| python-dotenv==1.0.1 | ||
| Requests==2.31.0 |
| class TestDNASequences: | ||
| def test_dna_alphabet(self): | ||
| dna = DNASequence('') | ||
| target = set('ATGCatgc') | ||
| result = DNASequence.get_alphabet(dna) | ||
| assert target == result | ||
|
|
||
|
|
||
| def test_gc_content(self): | ||
| dna = 'ATGC' | ||
| target = 50.0 | ||
| result = NucleicAcidSequence(dna).gc_content() | ||
| assert target == result, '50.0 for ATGC expected' |
There was a problem hiding this comment.
Тут везде тоже по 1 пустой строке достаточно)
|
|
||
| class TestAminoAcidSequences(): | ||
| def test_aminoacids_alphabet(self): | ||
| peptide = AminoAcidSequence('') |
| assert target == result | ||
|
|
||
|
|
||
| def test_zero_peptid_weight(self): |
There was a problem hiding this comment.
| def test_zero_peptid_weight(self): | |
| def test_zero_peptide_weight(self): | |
| assert target == result, 'expected 639.81 for model peptide VALINE' | ||
|
|
||
| def test_error_message_for_bad_seq(self): | ||
| bad_peptide = 'XAXAXA' |
This is finalized and re-organized repo with my IB Python Course HW