Что такое sample sheet и почему ошибка в нём стоит дорого

Sample sheet это табличный файл (чаще всего CSV), в котором перечислены образцы секвенируемой библиотеки и привязанные к ним индексные последовательности. Прибор использует его при демультиплексировании: именно по этому файлу reads распределяются по образцам и получают имена файлов.

Термин «sample sheet» применяют к двум разным документам:

  • Run sample sheet (sequencing sample sheet) загружается в ПО прибора. Содержит индексы и служебную информацию о запуске.
  • Analysis sample sheet таблица для пайплайна обработки (например, nf-core/rnaseq). Содержит пути к FASTQ и параметры библиотеки.

Их готовят согласованно: имена образцов в обоих файлах должны совпадать символ в символ.

Run sample sheet: обязательные поля

Точный набор и написание колонок зависят от модели прибора и версии ПО, поэтому основой всегда служит шаблон, который формирует сам прибор или производитель. Типичный набор выглядит так:

  • идентификатор образца (Sample_ID) уникальный внутри запуска;
  • отображаемое имя (Sample_Name) то, что попадёт в имена файлов;
  • индекс i7 (Index, Index1);
  • индекс i5 (Index2), если используется дуальное индексирование;
  • Library_ID — полезно для прослеживаемости;
  • Lane / Sample_Project / Description — по необходимости.

Правила для индексов

  • Каждая библиотека в одном лейне должна иметь уникальную комбинацию индексов.
  • Дуальные уникальные индексы (unique dual indexes, UDI) снижают риск index hopping — переноса индексов между библиотеками на проточных ячейках с упорядоченной структурой. Полностью исключить его они не могут.
  • Ориентация i5, источник массовых ошибок. В части систем i5 указывают в обратной комплементарности. Если прибор выдаёт почти нулевую долю распознанных reads, причина чаще всего именно здесь.
  • Цветовой баланс: четырёхканальные и двухканальные системы предъявляют разные требования к составу оснований в индексе. Конкретные рекомендации по балансу стоит брать из документации к прибору.

Формат и кодировка

  • CSV с запятой в качестве разделителя; некоторые платформы ожидают служебные секции вида [Header], [Reads], [Settings], [Data].
  • Кодировка UTF-8 без BOM, перевод строки: LF.
  • В именах образцов применяются только латиница, цифры, дефис и подчёркивание. Пробелы, запятые, кавычки, точки с запятой, слеши и кириллица ломают парсеры и создают неудобства в командной строке.
  • Строк в таблице должно быть ровно столько, сколько библиотек в пуле, ни больше, ни меньше.

Analysis sample sheet: структура

Для типовых пайплайнов RNA-seq таблица устроена иначе: одна строка = один образец, а не один файл.

  • sample уникальное имя образца;
  • fastq_1 путь к файлу R1 (или к единственному файлу для single-end);
  • fastq_2 путь к R2; для paired-end обязателен, для single-end оставляют пустым;
  • strandedness направленность библиотеки: forward, reverse, unstranded или auto.

Пути указывают относительно места запуска пайплайна либо абсолютные. Главное, чтобы они были верны и не содержали пробелов.

Про strandedness

Многие современные протоколы подготовки библиотек для RNA-seq дают reverse-stranded данные, но это зависит от набора реагентов. Если протокол известен, укажите значение явно. Режим auto экономит время, но на малом числе генов может ошибиться, поэтому для небольших или нестандартных библиотек параметр лучше задать вручную.

Метаданные отдельно

Характеристики эксперимента (condition, treatment, timepoint, replicate, batch, пол, генотип) удобнее держать в отдельном файле: он не мешает пайплайну и при этом не теряется. Идентификаторы образцов в метаданных и в sample sheet должны совпадать полностью.

Частые ошибки

  1. Дубли индексов в одном лейне, reads смешиваются, и разделить их постфактум обычно нельзя.
  2. Неверная ориентация i5: падение доли распознанных reads.
  3. Кириллица, пробелы и запятые в именах образцов.
  4. Рассинхрон между числом библиотек и числом строк в таблице.
  5. Перепутанные R1 и R2: fastq_1 это всегда R1.
  6. Excel как редактор. При сохранении он может поменять кодировку, добавить кавычки, превратить идентификатор вида 3-4 в дату. Правьте sample sheet в текстовом редакторе или сохраняйте как CSV UTF-8 и проверяйте результат.
  7. Разные имена одного образца в run sample sheet, analysis sample sheet и метаданных.

Чек-лист перед запуском

  • Шаблон взят из актуальной версии ПО и документации к прибору.
  • Все индексы уникальны в пределах лейна, ориентация i5 проверена.
  • Имена образцов: только разрешённые символы, без пробелов.
  • Число строк совпадает с числом библиотек.
  • Кодировка и перевод строки соответствуют требованиям.
  • Пути к FASTQ существуют и указывают на нужные файлы.
  • Параметр strandedness выставлен.
  • Имена в sample sheet, метаданных и отчёте о подготовке библиотек совпадают.

FAQ

Чем Sample_ID отличается от Sample_Name? Sample_ID это служебный уникальный идентификатор, по нему прибор различает записи. Sample_Name часто попадает в имена выходных файлов, поэтому его удобно делать человекочитаемым, но тоже уникальным.

Что произойдёт, если у двух библиотек одинаковый индекс? Их reads станут неразличимы при демультиплексировании и попадут в один файл или распределятся непредсказуемо. Исправить это только по последовательностям, как правило, невозможно.

Обязательны ли дуальные индексы? Нет, схемы с одним индексом допустимы. Но дуальные уникальные индексы заметно снижают риск переноса индексов, особенно на проточных ячейках с упорядоченной структурой.

Можно ли писать названия образцов по-русски? Технически некоторые парсеры это переживут, но на практике кириллица создаёт проблемы при передаче файлов, в скриптах и в командной строке. Безопаснее ограничиться латиницей.

Как выбрать strandedness? Ориентируйтесь на протокол подготовки библиотеки: наборы реагентов с dUTP обычно дают reverse-stranded библиотеки. Если протокол неизвестен, ставьте auto и проверяйте результат.

Нужен ли отдельный sample sheet на каждый лейн? Run sample sheet обычно описывает весь запуск, включая распределение по лейнам. Analysis sample sheet удобнее делать общим для всего эксперимента, если пути к файлам уникальны.

Обсудить задачу

Перейти к направлению