Skip to content

Bioinf dev tools#1

Open
VovaGrig wants to merge 15 commits intomainfrom
bioinf_dev_tools
Open

Bioinf dev tools#1
VovaGrig wants to merge 15 commits intomainfrom
bioinf_dev_tools

Conversation

@VovaGrig
Copy link
Copy Markdown
Owner

@VovaGrig VovaGrig commented Oct 8, 2023

No description provided.

Comment thread bioinf_tools.py
Comment on lines +1 to +3
from src import dna_rna_tools
from src import fastq_filter
from src import protein_tools
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, но тут происходит горизонтальный импорт - импортируются скрипты, но вот для dictionaries надо писать отдельно, где его искать
Как итог: на каждом импорте код падает, траблшутинг написала в основном комментарии

Comment thread src/fastq_filter.py
- gc_bounds (int | float | tuple[int | float] | list[int | float]): GC content thresholds
- length_bounds (int | tuple[int] | list[int]): read length thresholds
- quality_thresholds: read Phred-33 scaled quality thresholds

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Стоит в досктринг добавить описание verbose

Comment thread src/fastq_filter.py
Comment on lines +86 to +87
if isinstance(gc_bounds, int) or isinstance(gc_bounds, float):
gc_bounds = (0, gc_bounds)
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 src/fastq_filter.py
Return:
- condition (bool): True - quality is above threshold, False - read is to be filtered
"""
mean_quality = sum(ord(symbol) - 33 for symbol in seq_qual) / len(seq_qual)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Хороший расчет

@pavlovanadia
Copy link
Copy Markdown

Отличная работа!
Комментарии:

  • структура репозитория хорошая, все на своих местах

  • README супер

  • Есть ощущение, что код из основного скрипта не тестировался, потому что при попытке запуска он падает с ошибкой импорта. Это связано с параллельным импортом, актуально для всех трех скриптов, решается конструкцией
    if __name__ == "__main__": import dictionaries else: from src import dictionaries
    потому что основной скрипт не особо знает, где ему искать словари. Следствие этого - ни одна из функций при вызове из основного скрипта не работает

  • значение fastq-файла по умолчанию ненужное и засоряет код, не надо так. Зачем пользователю при вызове функции без подачи аргумента с ридами получать вывод?

  • в конце кажджой строки докстринга \n лучше все же убирать, они не влияют на перенос строк

  • комментарии к прошлым дз учтены

  • Здорово, что был предусмотрен аргумент verbose для большей информатиновсти! Я бы, правда, предложила его сделать False по умолчанию, то есть не предлагать пользователю постоянно активно отказываться от вывода на экран, а наоборот, если он захочет больше информации, то активно на это согласиться :)

Итог:

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

Бонусы и штрафы:

  • +0.1 за хорошую проверку типа границ
  • +0.1 за ord
  • -0.1 за дефолтное значение fastq, написанное прямо в аргументах функции. в целом такое значение по умолчанию делать в принципе не надо, но если хочется пользователю предложить что-то для запуска программы, то можно предоставить отдельный файл с тестовыми ридами, например, и в README написать команду для тестового запуска (если что, в следующих дз от вас это не требуется и не ожидается)

Сумма: 9.6

@VovaGrig
Copy link
Copy Markdown
Owner Author

Отличная работа! Комментарии:

  • структура репозитория хорошая, все на своих местах
  • README супер
  • Есть ощущение, что код из основного скрипта не тестировался, потому что при попытке запуска он падает с ошибкой импорта. Это связано с параллельным импортом, актуально для всех трех скриптов, решается конструкцией
    if __name__ == "__main__": import dictionaries else: from src import dictionaries
    потому что основной скрипт не особо знает, где ему искать словари. Следствие этого - ни одна из функций при вызове из основного скрипта не работает
  • значение fastq-файла по умолчанию ненужное и засоряет код, не надо так. Зачем пользователю при вызове функции без подачи аргумента с ридами получать вывод?
  • в конце кажджой строки докстринга \n лучше все же убирать, они не влияют на перенос строк
  • комментарии к прошлым дз учтены
  • Здорово, что был предусмотрен аргумент verbose для большей информатиновсти! Я бы, правда, предложила его сделать False по умолчанию, то есть не предлагать пользователю постоянно активно отказываться от вывода на экран, а наоборот, если он захочет больше информации, то активно на это согласиться :)

Итог:

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

Бонусы и штрафы:

  • +0.1 за хорошую проверку типа границ
  • +0.1 за ord
  • -0.1 за дефолтное значение fastq, написанное прямо в аргументах функции. в целом такое значение по умолчанию делать в принципе не надо, но если хочется пользователю предложить что-то для запуска программы, то можно предоставить отдельный файл с тестовыми ридами, например, и в README написать команду для тестового запуска (если что, в следующих дз от вас это не требуется и не ожидается)

Сумма: 9.6

Код тестировался, моими кривыми руками) Я вручную добавлял пути в sys.path, т.к думал что проблема в использовании VS code и расширения wsl
Спасибо за комментарии и траблшутинг🔥 🔥

@pavlovanadia
Copy link
Copy Markdown

Если траблшутинг заключается в изменении переменной PATH, то это стоит написать в Installation and Usage :)
Но глобально - не надо (на практикуме есть некоторые тулы, с которыми так придется покопаться, и это не самая юзер-френдли история), если есть возможность написать код так, чтобы все работало сразу без изменения PATH

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