Skip to content

Add all modules and main script#1

Open
BeskrovnaiaM wants to merge 2 commits into
mainfrom
HW5_Beskrovnaia
Open

Add all modules and main script#1
BeskrovnaiaM wants to merge 2 commits into
mainfrom
HW5_Beskrovnaia

Conversation

@BeskrovnaiaM

Copy link
Copy Markdown
Owner

No description provided.

Comment thread biotools.py
Comment on lines +1 to +5
import sys
import modules.dna_rna_tools as dr
import modules.protein_tool as p
import modules.fastqc_filter as f
from typing import Dict, List, Union

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Все супер, только вот импорты из стандартной библиотеки всегда идут до импортов собственной библиотеки и разделяются пустыми строками

Плюс я была бы поосторожнее с собственными именами пакетов вроде dr, p, f - они хоть и могут быть короче, но лучше, чтобы оставались уникальными и информативными

Suggested change
import sys
import modules.dna_rna_tools as dr
import modules.protein_tool as p
import modules.fastqc_filter as f
from typing import Dict, List, Union
import sys
from typing import Dict, List, Union
import modules.dna_rna_tools as dr
import modules.protein_tool as p
import modules.fastqc_filter as f

Comment thread biotools.py
Comment on lines +11 to +14
for name, (sequence, quality) in seqs.items():
if name in filter_set:
result[name] = (sequence, quality)
return result

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Красивый алгоритм

Comment thread modules/fastqc_filter.py
Comment on lines +2 to +6
length_output = []
for name, (sequence, quality) in seqs.items():
if len(sequence) <= length_bounds[1] and len(sequence) >= length_bounds[0]:
length_output.append(name)
return length_output

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

увы, не предусмотрен вариант, где пользователь передает только одну границу (тип int), и тогда она назначается верхней, а нижняя граница будет 0

Comment thread modules/fastqc_filter.py
for name, (sequence, quality) in seqs.items():
score_nuc_count = 0
for score in quality:
score_nuc_count += ord(score) - 33

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Супер!

Comment thread modules/fastqc_filter.py
if nuc == 'G' or nuc == 'C':
gc_nuc_count += 1
gc_count = gc_nuc_count/len(sequence)*100
if gc_count <= gc_bounds[1] and gc_count >= gc_bounds[0]:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

увы, не предусмотрен вариант, где пользователь передает только одну границу (тип int), и тогда она назначается верхней, а нижняя граница будет 0

Comment thread modules/fastqc_filter.py
for nuc in sequence:
if nuc == 'G' or nuc == 'C':
gc_nuc_count += 1
gc_count = gc_nuc_count/len(sequence)*100

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PEP8, пробелы

Suggested change
gc_count = gc_nuc_count/len(sequence)*100
gc_count = gc_nuc_count / len(sequence) * 100

Comment thread modules/fastqc_filter.py
score_nuc_count = 0
for score in quality:
score_nuc_count += ord(score) - 33
score_seq_count = score_nuc_count/len(sequence)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PEP8, пробелы

Suggested change
score_seq_count = score_nuc_count/len(sequence)
score_seq_count = score_nuc_count / len(sequence)

@pavlovanadia

Copy link
Copy Markdown

Комментарии:

  • хорошая структура репозитория
  • отличное README! но в будущем стоит делать лаконичнее
  • Все замечания прошлых дз учтены, красота. даже отступы и места, где было не по PEP8, были исправлены! ✨
  • В целом код рабочий, очень круто, что фильтрация по качеству реализована с использованием ord, и не забыто вычитание 33 =)
  • Единственное, что является недоработкой - это работа фильтраций по качеству и длине только в режиме передачи двух границ кортежем
  • Импорты все сделаны корректно, все работает. Только свои имена импортов советую подбирать более информативными :)
  • глобально - очень хорошая работа!

Итог:

  • Фильтрация по качеству - 1 балл, все супер
  • Фильтрация по ГЦ-составу и длине - 0.5 балла,т.к. не работает в режиме верхнего интервала, работают только при передаче обеих границ кортежем
  • За главную функцию fastq-фильтратора - 1 балл, все работает
  • За README - 2 балла
  • За улучшения кода ДНК/РНК и белковых тулов - 1 балла (все замечания к прошлым дз учтены, огонь!)
  • За структуру репозитория и качество кода - 3 балла

Штрафы и бонусы:

  • -0.1 за PEP8 (в новой части кода)
  • +0.1 за гиперссылки в README, которые упрощают чтение

Итог: 9 баллов

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants