2. Другий етап виконання курсової роботи - sophiakravchuk/geneanalysis_project GitHub Wiki

Table of Contents

Функціональні вимоги до системи

1. Можливості для користувача:
 1.1 Система дозволятиме користувачу вказати назву гену або послідовність його нуклеотидів.
  Наприклад:  A3721, ATGGCTTCCGCA...CCGCTCTGCGCTCGCCGGGCTGA;
 1.2 Система надаватиме можливість вибрати, по якій базі даних проводити пошук ;
  Наприклад: Human genomic, Mouse genomic;
 1.3 Користувач зможе переглянути вибірку з результатів;
 1.4 Користувач зможе переглянути сформований звіт, наприклад які з ділянок були знайдені у яких відомих генах;
 1.5 Користувач отримає повідомлення про помилку, якщо вхідних дані користувача неправильні;
2. Інформація, якою буле володіти система:
 2.1 Система отримуватиме інформацію про гени та послідовність їхніх нуклеотидів;
 2.2 Система отримуватиме результати використання вбудованого алгоритму NCBI BLAST.

Нефункціональні вимоги до системи

1. Вимоги до операційної системи (Operational):
 1.1 Програма працюватиме на персональних комп'ютерах користувачів; 
 
 1.2 Програма працюватиме при відсутності інтернет-з'єднання, якщо інформація потрібна для операції вже кешована на персональному комп’ютері користувача.
2. Виконання (Performance):
 2.1 Система буде доступна для користування 24 години на добу 365 днів в році;
 2.2 Система не повинна видавати ніяких помилок. За винятком помилок про неправильні вхідні дані  від користувача;
 2.3 Система може не виконувати всіх функцій за відсутності інтернет-з'єднання або при поганому 
     інтернет-з'єднанні.
3. Зовнішні вимоги:
 3.1 Система не повинна отримувати особистих даних користувача, тому захист даних не використовується;
 3.2 Певні культурні чи етичні вимоги відсутні.

Опис даних, які буде отримувати програма

API, яким я користуюся повертає дані у HTML форматі.

Можливості модулів, пакунків модулів, бібліотек, які будуть використовуватися для роботи з даними у програмі, що проектується.

1. urllib.request
Модуль urllib.request визначає функції та класи, які допомагають відкривати URL-адреси (в основному HTTP). urllib.request.urlopen() - відкриває URL-адресу, яка може бути або рядком, або об'єктом Request.

Приклад використання бібліотеки:

››› import urllib.request

››› html = urllib.request.urlopen('https://arstechnica.com').read()

››› print(html)

b'<!DOCTYPE html>\n<html lang=″en-us″>\n<head>\n<title>Ars Technica</title>\n …

2. lxml.html
lxml це швидка і гнучка бібліотека для обробки розмітки XML і HTML на Python. lxml.html.document_fromstring() - hозбирає документ з даної стрічки. Створює правильний документ HTML, з батьківським вузлом <html></html>, <body></body> і, можливо, <head></head>.
3. os.path
Цей модуль реалізовує деякі функції з шляхами, читання або запис файлів, доступ до файлової системи. os.path.isfile() - поверне True, якщо існує файл, з даною назвою або шляхом.

Приклад використання бібліотеки:

››› import os

››› os.path.isfile(′filename′)

False

4. hashlib
Цей модуль реалізує загальні алгоритми безпечного кодування повідомлень. hashlib.md5() – повертає закодований рядок алгоритмом md5.

Приклад використання бібліотеки:

››› import hashlib

››› m = hashlib.md5()

››› m.update(″abc″.encode(′utf–8′))

››› h = m.hexdigest()

››› print(h)

900150983cd24fb0d6963f7d28e17f72

5. requests
Стандартна бібліотека Python, яка має ряд готових модулів по роботі з HTTP. requests.get() – посилає запит get за посиланням та отримує веб-сторінку. requests.put() - посилає запит put за посиланням та отримує веб-сторінку.

Приклад використання бібліотеки:

››› import requests

››› payload = {′key1′: ′value1′, ′key2′: [′value2′, ′value3′]}

››› r = requests.get(′https://httpbin.org/get′, params=payload)

››› print(r.url)

https://httpbin.org/get?key1=value1&key2=value2&key2=value3

››› r = requests.put(′https://httpbin.org/put′, data = {′key′:′value′})

››› print(r.text)

{ ″args″: {}, ″data″: ″″, ″files″: {}, ″form″: { ″key″: ″value″ }, ″headers″: { ″Accept″: ″∗/∗″, ...

6. ctypes
ctypes є бібліотекою іноземних функцій для Python. Він надає C-сумісні типи даних і дозволяє викликати функції в бібліотеках DLL або спільних бібліотеках. Його можна використовувати для перенесення цих бібліотек у чистий Python. ctypes.py_object - Представляє тип даних C PyObject*
7. msvcrt
Цей модуль надає доступ до ряду функцій у бібліотеці Microsoft Visual C / C ++ (MSVCRT). msvcrt.getch() - зчитує натискання клавіші і повертає отриманий символ, не чекає натискання клавіші Enter. Натискання клавіші Control-C неможливо прочитати за допомогою цієї функції. Приклад використання бібліотеки:

››› import msvcrt

››› msvcrt.getch() b'e' ››› msvcrt.getch() b'\r'

8. time
Цей модуль забезпечує різні функції, пов'язані з часом. Для відповідних функцій див. Також datetime та calendar модулі. time.sleep(n) - Призупинити виконання поточного потоку за задане число секунд.
⚠️ **GitHub.com Fallback** ⚠️