Використання мови R для імпорту послідовностей молекулярних даних

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

З того часу, як у 1977 році був секвенований фаг Phi-X174, послідовності ДНК великої кількості організмів були дешифровані та збережені в базах даних. Ці дані використовуються визначення послідовностей білків і регуляторних ділянок. Порівняння генів у межах одного чи різних видів може продемонструвати подібність функцій білків чи відносини між видами (в такий спосіб можуть бути складені Філогенетичні дерева). Зі збільшенням кількості даних вже давно стало неможливим вручну аналізувати послідовності. В наші дні для пошуку геномів тисяч організмів, що складаються з мільярдів пар нуклеотидів використовуються комп'ютерні програми. Програми можуть однозначно зіставити (вирівняти) схожі послідовності ДНК у геномах різних видів; часто такі послідовності несуть подібні функції, а відмінності виникають у результаті мутацій, таких як заміни окремих нуклеотидів, вставок та делецій.

Один із варіантів такого вирівнювання застосовується при самому процесі секвенування. Так звана техніка «Shotgun sequencing[en]» замість повної послідовності нуклеотидів дає послідовності коротких фрагментів ДНК (кожний довжиною близько 600-800). Кінці фрагментів накладаються один на одного і, суміщені належним чином, дають геном повний. Такий метод швидко дає результати секвенування, але складання фрагментів може бути складним завданням для великих геномів. У проекті з розшифровки геному людини складання зайняло кілька місяців комп'ютерного часу. Зараз цей метод застосовується для практично всіх геномів, і алгоритми збирання геномів є однією з найгостріших проблем біоінформатики на сьогоднішній момент.

Іншим прикладом застосування комп'ютерного аналізу послідовностей є автоматичний пошук генів та регуляторних послідовностей у геномі. Не всі нуклеотиди в геномі застосовуються для завдання послідовностей білків. Наприклад, в геномах вищих організмів великі сегменти ДНК явно не кодують білки і їх функціональна роль невідома. Розробка алгоритмів виявлення ділянок геному, що кодують білки, є важливим завданням сучасної біоінформатики.

Біоінформатика допомагає пов'язати геномні та протеомні проекти, наприклад, допомагаючи у використанні послідовності ДНК для ідентифікації білків.

R є однією з найбільш поширених і потужних мов програмування в біоінформатиці. R — це безкоштовна програма з відкритим кодом. Він особливо корисний там, де потрібні різноманітні статистичні інструменти (наприклад, RNA-Seq, популяційна геноміка тощо), а також у створенні графіків і цифр публікувальної якості. Статистики, науковці, аналітики, дослідники даних і математики використовують програмування на R для обчислень, опитувань і опитувань. Це дуже потужна та розширювана мова з програмованим середовищем зі сценаріями командного рядка. Це допомагає отримувати важливі статистичні дані з набору даних із графіки, а потім полегшує їх аналіз.

Першим етапом є імпорт даних.

Найбільш корисними в цьому є такі пакети:

  • phylobase[1] - базовий пакет для філогенетичних структур і порівняльних даних.
  • seqinr[2][3] - аналіз даних і візуалізація даних для даних біологічної послідовності (ДНК і білка). Включіть також утиліти для керування даними послідовності в системі ACNUC.
  • ape[4] - надає функції для читання, запису, маніпулювання, аналізу та моделювання філогенетичних дерев і послідовностей ДНК, обчислення відстаней ДНК, перекладу в послідовності AA, оцінювання дерев за допомогою методів, заснованих на відстані, а також ряд методів для порівняльного аналізу та аналізу диверсифікації. Також передбачені функції для програмування нових філогенетичних методів.
  • adegenet[5] - пакет, присвячений аналізу генетичних даних. Він реалізує набір інструментів, починаючи від багатоваріантних методів до просторової генетики та геномного аналізу даних SNP.
  • pegas[6] - функції для читання, запису, побудови графіків, аналізу та обробки алельних і гаплотипових даних, у тому числі з файлів VCF, а також для аналізу популяційних нуклеотидних послідовностей і мікросателітів, включаючи коалесцентний аналіз, порушення рівноваги зчеплення, структуру популяції (Fst, Amova) і рівновагу (HWE), мережі гаплотипів, мінімальне остовне дерево та мережа, а також мережі медіанного з’єднання.

Імпорт із баз даних[ред. | ред. код]

Першим варіантом є робота з вже існуючими базами даних та використання їх послідовностей.

ape (read.GenBank)[7][ред. | ред. код]

Корисним також є можливість імпорту даних з GenBank (пакет ape функція read.GenBank()[8]). Ця функція підключається до бази даних GenBank і зчитує нуклеотидні послідовності, використовуючи номери доступу, надані як аргументи.

read.GenBank(access.nb, seq.names = access.nb, species.names = TRUE, as.character = FALSE, chunk.size = 400, quiet = TRUE)

seqinr (choosebank[2][9])[ред. | ред. код]

Функція choosebank() дозволяє вибрати одну з баз даних, структурованих під ACNUC[10] і розташованих в Інтернеті. Викликаний без аргументів лише choosebank() поверне список доступних баз даних. Потім ви можете використовувати запит, щоб зробити свій запит і отримати список послідовностей.

choosebank(bank = NA, host = "pbil.univ-lyon1.fr", port = 5558, server = FALSE, blocking = TRUE, open = "a+", encoding = "", verbose = FALSE, timeout = 5, infobank = FALSE, tagbank = NA)
# Виводить перелік генетичних банків, доступних для seqinr
choosebank()  
# Вибераємо банк
choosebank("embl", timeout=20)
# Робить запит до вибраної бази даних
nothofagus <- query(listname="nothofagus", query="SP=Nothofagus AND K=rbcl", verbose=TRUE)
# Видає інформацію про послідовності
nothofagus$req
# Отримати послідовності у вигляді списку
nothofagus.sequences <- getSequence(nothofagus$req)
# Отримати анотації
nothofagus.annot <- getAnnot(nothofagus[["req"]]) 
nothofagus.annot

Імпорт NEXUS формату[ред. | ред. код]

Формат файлів NEXUS широко використовується в біоінформатиці. Він зберігає інформацію про таксони, морфологічні та молекулярні ознаки, відстані, генетичні коди, припущення, набори, дерева тощо. Кілька популярних філогенетичних програм, таких як PAUP*[en], MrBayes, MacClade[11] і SplitsTree[en], використовують цей формат.

Файл NEXUS складається з фіксованого заголовка #NEXUS, за яким слідує кілька блоків. Кожен блок починається з BEGIN block_name; і закінчується на END;. Ключові слова нечутливі до регістру. Коментарі взяті в квадратні дужки [...].

Існує кілька попередньо визначених імен блоків для типових типів даних. Приклади:

  • Блок TAXA містить інформацію про таксони.
  • Блок DATA містить матрицю даних (наприклад, вирівнювання послідовності).
  • Блок TREES містить філогенетичні дерева, описані за допомогою формату Ньюіка, напр. ((A,B),C);:
#NEXUS
Begin TAXA;
  Dimensions ntax=4;
  TaxLabels SpaceDog SpaceCat SpaceOrc SpaceElf;
End;

Begin data;
  Dimensions nchar=15;
  Format datatype=dna missing=? gap=- matchchar=.;
  Matrix
    [ When a position is a "matchchar", it means that it is the same as the first entry at the same position. ]
    SpaceDog   atgctagctagctcg
    SpaceCat   ......??...-.a.
    SpaceOrc   ...t.......-.g. [ same as atgttagctag-tgg ]
    SpaceElf   ...t.......-.a.           
  ;
End;

BEGIN TREES;
  Tree tree1 = (((SpaceDog,SpaceCat),SpaceOrc,SpaceElf));
END;

phylobase (readNexus())[12][ред. | ред. код]

readNexus читає файл NEXUS і виводить об’єкт phylo4, phylo4d або data.frame.

readNexus(
  file,
  simplify = FALSE,
  type = c("all", "tree", "data"),
  char.all = FALSE,
  polymorphic.convert = TRUE,
  levels.uniform = FALSE,
  quiet = TRUE,
  check.node.labels = c("keep", "drop", "asdata"),
  return.labels = TRUE,
  check.names = TRUE,
  convert.edge.length = FALSE,
  ...
)

ape (read.nexus())[ред. | ред. код]

Ця функція читає одне або кілька дерев у файлі NEXUS.

read.nexus(file, tree.names = NULL, force.multi = FALSE)

Імпорт FASTA формату[ред. | ред. код]

Формат FASTA - текстовий формат для нуклеотидних або поліпептидних послідовностей, в якому нуклеотиди або амінокислоти позначаються за допомогою однолітерних кодів. Через його простоту та практичності в даний час використовується більшістю програм роботи з біологічними послідовностями. Файли цього формату можуть містити назви послідовностей, їх ідентифікатори у базах даних та коментарі. Залежно від природи біологічних послідовностей, що містяться в ньому, файл формату FASTA може мати різні розширення.

Послідовності у форматі FASTA починаються з однорядкового опису, за яким йдуть рядки, що містять власне послідовність. Опис відзначається символом "більше" (">") у першій колонці. Слово за цим символом і до першого пробілу є ідентифікатором послідовності, далі опційний опис. Наступні кілька рядків можуть мати першим символом крапку з комою («;»), і тоді вони сприйматимуться як коментарі. На даний момент багато баз даних і програми не розпізнають коментарі, тому вони мало поширені. Далі йдуть рядки, що містять власне біологічні послідовності. Зазвичай, рядки у форматі FASTA обмежені довжиною від 80 до 120 символів, але сучасні програми розпізнають послідовності, записані повністю в один рядок. В один файл може бути записано кілька послідовностей, таким чином виходить мульти-FASTA файл, однак перед кожною послідовністю має стояти свій ідентифікатор

 >gi|31563518|ref|NP_852610.1| microtubule-associated proteins 1A/1B light chain 3A isoform b [Homo sapiens]
   MKMRFFSSPCGKAAVDPADRCKEVQQIRDQHPSKIPVIIERYKGEKQLPVLDKTKFLVPDHVNMSELVKI
   IRRRLQLNPTQAFFLLVNQHSMVSVSTPIADIYEQEKDEDGFLYMVYASQETFGFIRENE

Читання FASTA формату можливо при використанні наступних бібліотек (але не обмежується ними): ape, adegenet, seqinr.

ape (read.dna()[13])[ред. | ред. код]

Функція read.dna() також може читати і інші формати: "interleaved", "sequential" та "clustal"

read.dna(file, format = "fasta", skip = 0, nlines = 0, comment.char = "#", as.character = FALSE, as.matrix = NULL)
read.FASTA(file, type = "DNA")
read.fastq(file, offset = -33)

adegenet (fasta2DNAbin()[14])[ред. | ред. код]

Читає вирівнювання з форматом fasta (розширення «.fasta», «.fas» або «.fa») і виводить об’єкт DNAbin (ефективне представлення ДНК з пакету ape). Вихідні дані містять або повне вирівнювання, або лише SNP. Ця реалізація розроблена для ефективного використання пам’яті та може читати більші набори даних, ніж read.dna.

fasta2DNAbin(file, quiet=FALSE, chunkSize=10, snpOnly=FALSE)

Імпорт VCF файлів[ред. | ред. код]

Файл VCF є результатом конвеєра біоінформатики. Він визначає формат текстового файлу, який використовується в біоінформатиці для зберігання варіацій послідовності генів. Як правило, зразок ДНК секвенується за допомогою системи секвенування наступного покоління (система NGS), створюючи необроблений файл послідовності. Ці необроблені дані послідовності потім вирівнюються, у результаті створюючи файли BAM/SAM. Звідси виклик варіантів визначає зміни в певному геномі порівняно з еталонним геномом. Цей вихід зберігається у форматі варіантного виклику, скорочено VCF.

У кожному VCF файлі є 3 основні розділи:

Рядки метаінформації – кілька рядків із префіксом подвійних символів фунта (##).

Рядок заголовка – один рядок із символом одного фунта (#).

Рядки даних – залишок файлу з 1 позицією на рядок.

Читання VCF файлів можливо з пакетом vcfR.

vcfR (read.vcfR())[ред. | ред. код]

Функція read.vcfR()[15] приймає вказане вами ім’я файлу та читає його в R, де воно зберігається як об’єкт vcfR. Об’єкт vcfR — це об’єкт класу S4 із трьома слотами, що містять метадані, фіксовані дані та дані генотипу.

read.vcfR(vcf_file, verbose = FALSE)

Зноски[ред. | ред. код]

  1. phylobase-package function - RDocumentation. www.rdocumentation.org. Процитовано 12 серпня 2022. 
  2. а б seqinr. seqinr.r-forge.r-project.org. Процитовано 17 серпня 2022. 
  3. seqinr-package function - RDocumentation. www.rdocumentation.org. Процитовано 12 серпня 2022. 
  4. ape-package function - RDocumentation. www.rdocumentation.org. Процитовано 12 серпня 2022. 
  5. adegenet on the web. adegenet.r-forge.r-project.org. Процитовано 12 серпня 2022. 
  6. pegas package - RDocumentation. www.rdocumentation.org. Процитовано 12 серпня 2022. 
  7. GenBank Overview. www.ncbi.nlm.nih.gov. Процитовано 5 липня 2022. 
  8. read.GenBank function - RDocumentation. www.rdocumentation.org. Процитовано 5 липня 2022. 
  9. choosebank function - RDocumentation. www.rdocumentation.org. Процитовано 5 липня 2022. 
  10. PRABI-Doua: ACNUC. doua.prabi.fr. Процитовано 5 липня 2022. 
  11. http://macclade.org/index.html
  12. Import Nexus and Newick files function - RDocumentation. www.rdocumentation.org. Процитовано 12 серпня 2022. 
  13. read.dna function - RDocumentation. www.rdocumentation.org. Процитовано 5 липня 2022. 
  14. fasta2DNAbin: Read large DNA alignments into R in adegenet: Exploratory Analysis of Genetic and Genomic Data. rdrr.io (англ.). Процитовано 5 липня 2022. 
  15. Preliminaries. Процитовано 5 липня 2022.