SAMtools
Оригинальный автор(ы) | Хэн Ли |
---|---|
Разработчик(и) | Джон Маршалл и Петр Данечек и др. [1] |
Первоначальный выпуск | 2009 |
Стабильная версия | 1.17 / 21 февраля 2023 г [2] |
Репозиторий | |
Написано в | С |
Операционная система | Unix-подобный |
Тип | Биоинформатика |
Лицензия | БСД , Массачусетский технологический институт |
Веб-сайт | www ![]() |
SAMtools — это набор утилит для взаимодействия и постобработки выравниваний чтения коротких последовательностей ДНК в форматах SAM (Sequence Alignment/Map), BAM (Binary Alignment/Map) и CRAM , написанный Хэн Ли . Эти файлы генерируются как выходные данные выравнивателями короткого чтения, такими как BWA . Предоставляются как простые, так и расширенные инструменты, поддерживающие сложные задачи, такие как вызов вариантов и просмотр выравнивания, а также сортировку, индексирование, извлечение данных и преобразование формата . [3] Файлы SAM могут быть очень большими (обычно десятки гигабайт ), поэтому для экономии места используется сжатие. Файлы SAM представляют собой текстовые файлы, читаемые человеком, а файлы BAM — это просто их двоичный эквивалент, тогда как файлы CRAM представляют собой реструктурированный двоичный формат контейнера, ориентированный на столбцы. Файлы BAM обычно сжаты и более эффективны для работы программного обеспечения, чем SAM. SAMtools позволяет работать напрямую со сжатым файлом BAM без необходимости распаковывать весь файл. Кроме того, поскольку формат файла SAM/BAM довольно сложен и содержит операции чтения, ссылки, выравнивания, информацию о качестве и определяемые пользователем аннотации, SAMtools сокращает усилия, необходимые для использования файлов SAM/BAM, скрывая детали низкого уровня.
Поскольку сторонние проекты пытались использовать код SAMtools, несмотря на то, что он не был предназначен для такого внедрения, в августе 2014 года было принято решение разделить пакет SAMtools на автономную программную библиотеку с четко определенным API ( ХТСлиб), [4] проект для вызова вариантов и манипулирования данными вариантов (BCFtools) и автономный пакет SAMtools для работы с данными выравнивания последовательностей . [5]
Использование и команды [ править ]
Как и многие команды Unix , команды SAMtool следуют потоковой модели, где данные проходят через каждую команду, как если бы они переносились по конвейерной ленте . Это позволяет объединить несколько команд в конвейер обработки данных. Хотя окончательный результат может быть очень сложным, для его создания требуется лишь ограниченное количество простых команд. Если не указано, стандартные потоки предполагаются (stdin, stdout и stderr). Данные, отправленные на стандартный вывод, по умолчанию выводятся на экран, но их легко перенаправить в другой файл с помощью обычных редиректоров Unix (> и >>) или в другую команду через канал (|).
Команды SAMtools [ править ]
SAMtools предоставляет следующие команды, каждая из которых вызывается как « samtools some_command ".
- вид
- The Команда просмотра фильтрует данные в формате SAM или BAM. Используя параметры и аргументы, он понимает, какие данные выбрать (возможно, все) и передает только эти данные. Входные данные обычно представляют собой файл sam или bam, указанный в качестве аргумента, но могут быть данными sam или bam, переданными по конвейеру из любой другой команды. Возможные варианты использования включают извлечение подмножества данных в новый файл, преобразование между форматами BAM и SAM и просто просмотр необработанного содержимого файла. Порядок извлеченных чтений сохраняется.
- сортировать
- The Команда sort сортирует файл BAM по его положению в ссылке, определяемому его выравниванием. Координата элемента + в ссылке, по которой выравнивается первая совпавшая база в чтении, используется в качестве ключа для ее упорядочивания. [ЗАДАЧА: проверить]. Отсортированный вывод по умолчанию сохраняется в новый файл, хотя его можно направить на стандартный вывод (с помощью опции -o). Поскольку сортировка требует большого объема памяти, а файлы BAM могут быть большими, эта команда поддерживает режим секционирования (с параметром -m), позволяющий использовать не более заданного объема памяти и генерировать несколько выходных файлов. Затем эти файлы можно объединить, чтобы создать полный отсортированный файл BAM [TODO — изучите детали этого более внимательно].
- индекс
- The Команда index создает новый индексный файл, который позволяет быстро искать данные в (отсортированном) SAM или BAM. Подобно индексу в базе данных, сгенерированный *.sam.sai или Файл *.bam.bai позволяет программам, которые могут его читать, более эффективно работать с данными в связанных файлах.
- твью
- The Команда tview запускает интерактивное средство просмотра на основе ASCII, которое можно использовать для визуализации того, как чтения выравниваются по указанным небольшим областям эталонного генома. По сравнению с графическим средством просмотра, таким как IGV, [6] у него мало функций. В представлении можно переходить к различным позициям вдоль ссылочных элементов (используя «g») и отображать справочную информацию («?»).
- накопление
- The Команда mpileup создает файл формата Pileup (или BCF), предоставляющий для каждой геномной координаты перекрывающиеся базы чтения и вставки в этой позиции во входных файлах BAM. Это можно использовать, например, для вызова SNP.
- флагстат
Примеры [ править ]
- вид
samtools view sample.bam > sample.sam
Конвертируйте файл BAM в файл sam.
samtools view -bS sample.sam > sample.bam
Конвертируйте файл sam в файл bam. Опция -b сжимает или оставляет сжатые входные данные.
samtools view sample_sorted.bam "chr1:10-13"
Извлеките все чтения, выровненные по указанному диапазону, то есть те, которые выровнены по ссылочному элементу с именем chr1 и охватывают его 10-е, 11-е, 12-е или 13-е основание. Результаты сохраняются в файл BAM, включая заголовок. Индекс входного файла необходим для извлечения чтений в соответствии с их положением отображения в эталонном геноме, созданном индексом samtools .
samtools view -h -b sample_sorted.bam "chr1:10-13" > tiny_sorted.bam
Извлекает те же операции чтения, что и выше, но вместо их отображения записывает в новый файл bam, tiny_sorted.bam . Опция -b сжимает вывод и Опция -h также приводит к выводу заголовков SAM. Эти заголовки включают описание ссылки, по которой были выровнены операции чтения в sample_sorted.bam , и они потребуются, если файл tiny_sorted.bam будет использоваться с некоторыми из более продвинутых команд SAMtools. Порядок извлеченных чтений сохраняется.
- твью
samtools tview sample_sorted.bam
Запустите интерактивное средство просмотра, чтобы визуализировать небольшую область эталона, совмещенные чтения и несоответствия. В представлении можно перейти в новое место, набрав g: и местоположение, например г:chr1:10 000 000 . Если имя ссылочного элемента и следующее за ним двоеточие заменены на = , используется текущий опорный элемент, т.е. если g:=10,000,200 вводится после предыдущей команды «goto», зритель переходит к области на 200 пар оснований ниже по chr1 . Ввод текста ? выводит справочную информацию о движении прокрутки, цветах, представлениях и т. д.
samtools tview -p chrM:1 sample_chrM.bam UCSC_hg38.fa
Установите начальную позицию и сравните.
samtools tview -d T -p chrY:10,000,000 sample_chrY.bam UCSC_hg38.fa >> save.txt
samtools tview -d H -p chrY:10,000,000 sample_chrY.bam UCSC_hg38.fa >> save.html
Сохраните экран в формате .txt или .html.
- сортировать
samtools sort -o sorted_out unsorted_in.bam
Считайте указанный unsorted_in.bam в качестве входных данных, отсортируйте его по выровненной позиции чтения и запишите его в sorted_out . Тип вывода может быть sam, bam или cram и будет определяться автоматически расширением файла sorted_out.
samtools sort -m 5000000 unsorted_in.bam sorted_out
Прочитайте указанный unsorted_in.bam в качестве входных данных, отсортируйте его по блокам до 5 миллионов k (5 Гб) [ необходима проверка единиц измерения ] и записать вывод в серию файлов bam с именами sorted_out.0000.bam , sorted_out.0001.bam и т. д., где все чтения bam 0 предшествуют любому чтению bam 1 и т. д. [ нужна проверка ]
- индекс
samtools index sorted.bam
Создает индексный файл sorted.bam.bai для файла sorted.bam .
См. также [ править ]
Ссылки [ править ]
- ^ «САМ-инструменты» . СоурсФордж .
- ^ «Релизы · samtools/samtools» . github.com . Проверено 28 апреля 2021 г.
- ^ Ли Х. , Рукосакер Б., Высокер А., Феннелл Т., Руан Дж., Гомер Н. и др. (август 2009 г.). «Формат Sequence Alignment/Map и SAMtools» (PDF) . Биоинформатика . 25 (16): 2078–9. doi : 10.1093/биоинформатика/btp352 . ПМК 2723002 . ПМИД 19505943 .
- ^ Бонфилд Дж. К., Маршалл Дж., Данечек П., Ли Х., Охан В., Уитвэм А. и др. (февраль 2021 г.). «HTSlib: библиотека C для чтения/записи данных высокопроизводительного секвенирования» . ГигаСайенс . 10 (2). doi : 10.1093/gigascience/giab007 . ПМЦ 7931820 . ПМИД 33594436 .
- ^ Данечек П., Бонфилд Дж.К., Лиддл Дж., Маршалл Дж., Охан В., Поллард М.О. и др. (февраль 2021 г.). «Двенадцать лет SAMtools и BCFtools» . ГигаСайенс . 10 (2). doi : 10.1093/gigascience/giab008 . ПМЦ 7931819 . ПМИД 33590861 .
- ^ НДС
Внешние ссылки [ править ]

- Домашняя страница проекта SAMtools
- Команды SAMtools
- Wiki-страница SeqAnswers для программного обеспечения SAMtools (заготовка от 26 февраля 2012 г.), неработающая ссылка
- Математические заметки по алгоритмам SAMtools от основного автора.
- Короткий, несколько специализированный туториал по SAMtools от EMBL . неработающая ссылка