Site Loader

Содержание

демультиплексирование — это… Что такое демультиплексирование?

демультиплексирование
demultiplexing

demultiplexing

Большой англо-русский и русско-английский словарь. 2001.

  • демпфирующий резистор
  • демультиплексированная трасса

Полезное


Смотреть что такое «демультиплексирование» в других словарях:

  • демультиплексирование — Выделение сигналов отдельных каналов из входного потока сигналов и передача их соответствующим устройствам. [http://www.morepc.ru/dict/] Тематики информационные технологии в целом EN demultiplexing …   Справочник технического переводчика

  • демультиплексирование логических соединений — демультиплексирование Функция, выполняемая логическим объектом получателем уровня и использующая одно соединение смежного нижнего уровня для обеспечения нескольких соединений данного уровня. [ГОСТ 24402 88] Тематики телеобработка данных и… …   Справочник технического переводчика

  • демультиплексирование (сейсм.) — — [http://slovarionline.ru/anglo russkiy slovar neftegazovoy promyishlennosti/] Тематики нефтегазовая промышленность EN demultiplexing …   Справочник технического переводчика

  • демультиплексирование с разделением по длине волны — (МСЭ Т G.977). [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN wavelength demultiplexingWD …   Справочник технического переводчика

  • демультиплексирование служебных данных — (МСЭ Т G.798). [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN overhead demultiplexingOHDM …   Справочник технического переводчика

  • Демультиплексирование логических соединений — 40. Демультиплексирование логических соединений Демультиплексирование Demultiplexing Функция, выполняемая логическим объектом получателем уровня и использующая одно соединение смежного нижнего уровня для обеспечения нескольких соединений данного… …   Словарь-справочник терминов нормативно-технической документации

  • Демультиплексирование логических соединений — 1. Функция, выполняемая логическим объектом получателем уровня и использующая одно соединение смежного нижнего уровня для обеспечения нескольких соединений данного уровня Употребляется в документе: ГОСТ 24402 88 Телеобработка данных и… …   Телекоммуникационный словарь

  • оптическое демультиплексирование — (МСЭ Т G.798). [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN optical demultiplexingODM …   Справочник технического переводчика

  • ГОСТ 24402-88: Телеобработка данных и вычислительные сети. Термины и определения — Терминология ГОСТ 24402 88: Телеобработка данных и вычислительные сети. Термины и определения оригинал документа: ТИПЫ СИСТЕМ И СЕТЕЙ 90. Абонентская система обработки данных Абонентская система Subscriber system Система обработки данных,… …   Словарь-справочник терминов нормативно-технической документации

  • Элекард — «Элекард Девайсез» Файл:Elecard Logo.png Тип Закрытое акционерное общество Год основания 22 апреля 1988 Основатели Поздняков Андрей Александрович, Губанов Петр Владимирович, Кальчихин Владимир Викторович …   Википедия

  • оптическое временное разделение — демультиплексирование — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом Синонимы демультиплексирование EN optical time demultiplexing …   Справочник технического переводчика

5.4.Мультиплексирование и демультиплексирование

Чтобы определить, на какой интерфейс следует передать поступившие данные, коммутатор должен определить, к какому потоку они относятся. Эта задача должна решаться независимо от того, поступает на вход коммутатора только один «чистый» поток или «смешанный» поток, являющийся результатом агрегирования нескольких потоков. В последнем случае к задаче распознавания потоков добавляется задача демультиплексирования, то есть разделения суммарного агрегированного потока на несколько составляющих его потоков.

Как правило, операцию коммутации сопровождает также обратная операция — мультиплексирование. При мультиплексировании из нескольких отдельных потоков образуется общий агрегированный поток, который можно передавать по одному физическому каналу связи.

Операции мультиплексирования/демультиплексирования имеют такое же важное значение в любой сети, как и операции коммутации, потому что без них пришлось бы для каждого потока предусматривать отдельный канал, что привело бы к большому количеству параллельных связей в сети и свело бы «на нет» все преимущества неполносвязной сети.

На рис. 5.5 показан фрагмент сети, состоящий из трех коммутаторов. Коммутатор 1 имеет пять сетевых интерфейсов. Рассмотрим, что происходит на интерфейсе Инт. 1. Сюда поступают данные с трех интерфейсов — Инт. 3, Инт. 4 и Инт. 5. Все их надо передать в общий физический канал, то есть выполнить операцию мультиплексирования. Мультиплексирование является способом разделения имеющегося одного физического канала между несколькими одновременно протекающими сеансами связи между абонентами сети.

Рисунок 5.5. Операции мультиплексирования и демультиплексирования потоков при коммутации

Одним из основных способов мультиплексирования потоков является разделение времени. При этом способе каждый поток время от времени (с фиксированным или случайным периодом) получает физический канал в полное свое распоряжение и передает по нему свои данные. Распространено также

частотное разделение канала, когда каждый поток передает данные в выделенном ему частотном диапазоне.

Технология мультиплексирования должна позволять получателю такого суммарного потока выполнять обратную операцию — разделение (демультиплексирование) данных на слагаемые потоки. На интерфейсе Инт. 3 коммутатор выполняет демультиплексирование потока на три составляющих его подпотока. Один из них он передает на интерфейс Инт. 1, другой — на Инт. 2, а третий — на Инт. 5. А вот на интерфейсе Инт. 2 нет необходимости выполнять мультиплексирование или демультиплексирование — этот интерфейс выделен одному потоку в монопольное использование. Вообще говоря, на каждом интерфейсе могут одновременно выполняться обе функции — мультиплексирования и демультиплек­сирования.

Рисунок 5.6. Мультиплексор и демультиплексор

5.5. Разделяемая среда передачи данных

Еще одним параметром разделяемого канала связи является количество подключенных к нему узлов. В приведенных выше примерах к каждому каналу связи подключались только два взаимодействующих узла, точнее — два интерфейса (рис. 5.7, а и б). В телекоммуникационных сетях используется и другой вид подключения, когда к одному каналу подключается несколько интерфейсов (рис. 5.7,

в). Такое множественное подключение интерфейсов порождает уже рассматривавшуюся выше топологию «общая шина», иногда называемую также шлейфовым подключением. Во всех этих случаях возникает проблема организации совместного использования канала несколькими интерфейсами. Возможны различные варианты разделения каналов связи между интерфейсами. На рис. 5.7, а коммутаторы К1 и К2 связаны двумя однонаправленными физическими каналами, то есть такими, по которым информация может передаваться только в одном направлении. В этом случае передающий интерфейс является ак­тивным, и физическая среда передачи находится под его управлением. Пассивный интерфейс только принимает данные. Проблема разделения канала между инте­фейсами здесь отсутствует.
(Заметим, однако, что задача мультиплексирования потоков данных в канале при этом сохраняется.) На практике два однонаправлен­ных канала, реализующие в целом дуплексную связь между двумя устройствами, обычно рассматриваются как один дуплексный канал, а пара интерфейсов одного устройства — как передающая и принимающая части одного и того же интерфейса. На рис. 5.7, б коммутаторы К1 и К2 связаны каналом, который может переда­вать данные в обе стороны, но только попеременно. При этом возникает необходимость в механизме синхронизации доступа интерфейсов К1 и К2 к такому каналу. Обобщением этого варианта является случай, показанный на рис. 5.7, в, когда к каналу связи подключаются несколько (больше двух) интерфейсов, образуя общую шину.

Совместно используемый несколькими интерфейсами физический канал называют разделяемым (shared). Часто применяют также термин разделяемая среда передачи данных. Разделяемые каналы связи требуются не только для связей типа коммутатор-коммутатор, но и для связей компьютер-коммутатор и компьютер-компьютер.

Рисунок 5.7  Совместное использование канала связи

Существуют различные способы решения задачи организации совместного доступа к разделяемым линиям связи. Одни из них подразумевают централизованный подход, когда доступом управляет специальное устройство —

арбитр, другие — децентрализованный. Внутри компьютера проблемы разделения линий связи между различными модулями также существуют — примером является доступ к системной шине, которым управляет либо процессор, либо специальный арбитр шины. В сетях организация совместного доступа к линиям связи имеет свою специфику из-за существенно большего времени распространения сигналов по линиям связи, поэтому процедуры согласования доступа к линии связи могут занимать слишком большой промежуток времени и приводить к значительным потерям производительности сети. Именно по этой причине разделяемые между интерфейсами среды практически не используются в глобальных сетях.

В локальных же сетях разделяемые среды используются достаточно часто благодаря простоте и экономичности их реализации. Этот подход, в частности, применяется в доминирующей сегодня в локальных сетях технологии Ethernet, а также в популярных в прошлом технологиях Token Ring и FDDL

Однако в последние годы стала преобладать другая тенденция — отказ от разделяемых сред передачи данных и в локальных сетях. Это связано с тем, что за достигаемое таким образом удешевление сети приходится расплачиваться производительностью.

ВНИМАНИЕ

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

И тем не менее не только в классических, но и в некоторых совсем новых технологиях, разработанных для локальных сетей, сохраняется режим разделяемых линий связи. Например, разработчики технологии Gigabit Ethernet, принятой в 1998 году в качестве нового стандарта, включили режим разделения среды в свои спецификации наряду с режимом работы по индивидуальным линиям связи.

Мультиплексоры и демультиплексоры

3.1.      Основные определения. Общие сведения

Мультиплексирование – это процесс последовательной передачи нескольких различных сигналов по одному каналу передачи информации в режиме разделения времени.

Демультиплексирование – это процесс последовательной передачи сигналов по одному из нескольких каналов передачи информации в режиме разделения времени.

Иными словами демультиплексирование – это процесс восстановления исходных сигналов из смешанного сигнала.

Процессы мультиплексирования и демультиплексирования можно проиллюстрировать схемой рис. 3.1. На этой схеме первый электромеханический шаговый искатель (ШИ1), используемый для мультиплексирования, подключает к каналу передачи информации (КПИ) в каждый момент времени один из информационных входов.

Демультиплексирование осуществляется таким же шаговым искателем (ШИ2), который переключается синхронно с ШИ1.

В интегральной схемотехнике функциональным устройством, реализующим процесс мультиплексирования, является мультиплексор. Процесс демультиплексирования реализуется в семействе ТТЛ с помощью дешифраторов, а в семействе КМОП – двунаправленными мультиплексорами, которые часто называют мультиплексорами – демультиплексорами.

Мультиплексоры и  демультиплексоры занимают особое место в арсенале современных средств цифровых систем.

Мультиплексирование         Демультиплексирование

Рис. 3.1. Процессы мультиплексирования и демультиплексирования

Назначение этих устройств в общем виде можно сформулировать следующим образом. Мультиплексоры используются для подключения выхода одного, выбираемого из нескольких,  источника  информации  по  входу  общего  приемника. При общем источнике информации и нескольких приемниках подключение входа одного выбираемого приемника к входу источника осуществляется демультиплексором.

3.2.      Мультиплексоры

Материал взят из книги Цифровые интегральные микросхемы (Асмолов Г.И.)

Как работает демультиплексирование TCP/UDP? — CodeRoad



У меня есть следующее утверждение.

«В TCP хост-приемник использует все исходные IP, исходный порт, конечный IP и конечный порт для направления дейтаграммы в соответствующий сокет. Находясь в UDP, получатель проверяет только номер порта назначения для направления дейтаграммы. »

Верно ли вышеприведенное утверждение?

Если да, то означает ли это, что в TCP один и тот же порт может использоваться для нескольких сокетов в одном процессе, в то время как в UDP только один сокет может использоваться на порту в одном процессе? А как насчет сокетов в разных процессах? Может ли несколько процессов использовать один и тот же порт в TCP/UDP? (на языке программирования: C/C++/Java)

Если нет, то почему?

sockets networking tcp network-programming udp
Поделиться Источник Alex     11 апреля 2013 в 22:51

2 ответа


  • Высокочастотная Торговля-TCP > UDP?

    Мне сказали, что для высокочастотной торговой системы (HFT), которая требует низкой задержки, TCP используется вместо UDP. Мне сказали, что с TCP вы можете делать соединения точка-точка, в то время как с UDP вы не можете, однако, насколько я понимаю, вы можете отправлять UDP пакета в конкретный…

  • Разница между TCP и UDP?

    В чем разница между TCP и UDP? Я знаю, что TCP используется в случае некритичных по времени приложений, а UDP используется для игр или приложений, требующих быстрой передачи данных. Я знаю, что TCP используется для HTTP, HTTPs, FTP, SMTP и Telnet. Я знаю, что UDP используется для DNS и DHCP. Но…



4

«В TCP хост-приемник использует все исходные IP, порт источника, порт назначения IP и порт назначения для направления дейтаграммы в соответствующий сокет. Находясь в UDP, получатель проверяет только номер порта назначения, чтобы направить дейтаграмму. »

Верно ли приведенное выше утверждение?

Да.

Если да, означает ли это, что в TCP один и тот же порт может использоваться для нескольких сокетов в одном процессе,

Да, при некоторых обстоятельствах.

в то время как в UDP только один сокет может использоваться на порту в одном процессе?

Нет, смотрите ниже.

А как насчет сокетов в разных процессах? Могут ли несколько процессов использовать один и тот же порт в TCP/UDP? (на языке программирования: C/C++/Java)

При некоторых обстоятельствах-да. Порт UDP должен быть обозначен как повторно используемый всеми процессами, которые хотят совместно использовать его. Порт TCP может быть повторно использован только сокетами, привязанными к разным интерфейсам: общий доступ отсутствует.

Поделиться user207421     11 апреля 2013 в 22:57



1

Это означает, что в TCP уникальное сообщение «channel» может быть описано как кортеж из четырех: (src-ip, src-port, dst-ip, dst-port) .

В UDP все пакеты, предназначенные для определенного порта, доставляются в единственный сокет UDP, прослушивающий этот порт, независимо от адреса источника и порта указанного пакета. Мне нравится думать об этом как о воронке.

Поделиться Santa     11 апреля 2013 в 23:02


Похожие вопросы:


Демультиплексирование в TCP/UDP

Я знаю, что здесь есть более старый ответ на этот вопрос , хотя он, кажется, не отвечает на мой вопрос. Если в UDP два человека с разными IP и разными портами отправляют данные на один и тот же…


Смешивание TCP и UDP

Я хочу сделать многопользовательскую игру, которая работает в Интернете, а не только в средах с низкой задержкой и высокой пропускной способностью, таких как LAN. Есть некоторые сетевые аспекты моей…


MSMQ работает на TCP или UDP?

я хочу знать, что MSMQ (очередь сообщений Microsoft) работает на TCP или UDP?? и в каких портах?


Высокочастотная Торговля-TCP > UDP?

Мне сказали, что для высокочастотной торговой системы (HFT), которая требует низкой задержки, TCP используется вместо UDP. Мне сказали, что с TCP вы можете делать соединения точка-точка, в то время…


Разница между TCP и UDP?

В чем разница между TCP и UDP? Я знаю, что TCP используется в случае некритичных по времени приложений, а UDP используется для игр или приложений, требующих быстрой передачи данных. Я знаю, что TCP…


Преимущества UDP перед TCP?

TCP имеет большие вычислительные издержки для обеспечения надежной доставки пакетов. Но, поскольку современные сети быстры, существует ли какой-либо сценарий, в котором производительность UDP…


Как рекламировать хост TCP через UDP?

У меня есть приложение (по сути, игра), которое транслирует данные о состоянии игры через UDP многим подключенным клиентам на частном LAN. UDP отлично работает для трансляции состояния игры….


TCP/UDP мультиплексирование-демультиплексирование

Я просматривал эту тему и прочитал, что TCP использует 4 идентификатора для мультиплексирования-демультиплексирования (source IP, source port number, destination IP, destination port number), тогда…


Как работает метод сканирования портов TCP SYN на портах UDP?

Если я правильно понял, наиболее распространенным методом сканирования портов является использование TCP Syn и ожидание пакета ack от каждого порта. Как это работает, когда порт получает только UDP…


Преобразовать UDP в TCP-Ngrok TCP => UDP

Я сейчас очень спешу. Мой вопрос в том, есть ли способ переслать UDP в порт TCP? Мне это нужно для размещения игрового сервера для моих друзей, я хочу разместить сервер Counter-Strike, например, но…

30. Мультиплексирование и демультиплексирование

Главная » Информационные системы » Информационные сети » 30. Мультиплексирование и демультиплексирование

26.   Мультиплексирование и демультиплексирование.

Демультиплексирование — разделение суммарного агрегированного потока на несколько.

Как правило, операцию коммутации сопровождает также обратная операция мультиплексирования.

Мультиплексирование — образование из нескольких отдельных потоков общего агрегированного потока, который передается по одному физическому каналу связи.

Другими словами, мультиплексирование — это способ разделения одного имеющегося физического канала между несколькими одновременно протекающими сеансами связи между абонентами сети.

Операции мультиплексирования/демультиплексирования имеют такое же важное значение в любой сети, как и операции коммутации, потому что без них пришлось бы для каждого потока предусматривать отдельный канал, что привело бы к большому количеству параллельных связей в сети и свело бы «на нет» все преимущества неполносвязной сети.

На рис. показан фрагмент сети, состоящий из трех коммутаторов. Коммутатор 1 имеет четыре сетевых интерфейса. На интерфейс 1 поступают данные с двух интерфейсов — 3 и4. Их надо передать в общий физический канал, то есть выполнить операцию мультиплексирования.

Операции мультиплексирования и демультиплексирования потоков при коммутации

Одним из основных способов мультиплексирования потоков является разделение времени. При этом способе каждый поток время от времени (с фиксированным или случайным периодом) получает физический канал в полное свое распоряжение и передает по нему свои данные. Распространено также частотное разделение канала, когда каждый поток передает данные в выделенном ему частотно\ диапазоне.

Технология мультиплексирования должна позволять получателю такого суммарного потока выполнять обратную операцию — разделение (демультиплексирование) данных на слагаемые потоки. На интерфейсе 3 коммутатор выполняет демультиплексирование потока на три составляющих его подпотока. Один из них он передает на интерфейс 1, другой — на интерфейс 2, третий — на интерфейс 4.

Вообще говоря, на каждом интерфейсе могут одновременно выполняться обе функции — мультиплексирование и демультиплексирование.


Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.

НОУ ИНТУИТ | Лекция | Коммутация и мультиплексирование

Аннотация: Коммутация рассматривается с самых общих позиций, для чего вводятся понятия информационных потоков, коммутатора, ставится задача маршрутизации. Определяются процедуры мультиплексирования и демультиплексирования, подчеркивается их отличие от процедур разделения среды передачи данных.

Обобщенная задача коммутации

Если топология сети не полносвязная, то обмен данными между произвольной парой конечных узлов (абонентов) должен идти в общем случае через транзитные узлы.

Например, в сети на рис. 5.1 узлы 2 и 4, непосредственно друг с другом не связанные, вынуждены передавать данные через транзитные узлы, в качестве которых могут использоваться, например, узлы 1 и 5. Узел 1 должен выполнить передачу данных с интерфейса A на интерфейс B, а узел 5 — с интерфейса B на F.


Рис. 5.1. Коммутация абонентов через сеть транзитных узлов.

Последовательность транзитных узлов (сетевых интерфейсов) на пути от отправителя к получателю называется маршрутом .

В самом общем виде задача коммутации — задача соединения конечных узлов через сеть транзитных узлов — может быть представлена в виде нескольких взаимосвязанных частных задач:

  1. Определение информационных потоков, для которых требуется прокладывать пути.
  2. Определение маршрутов для потоков.
  3. Сообщение о найденных маршрутах узлам сети.
  4. Продвижение – распознавание потоков и локальная коммутация на каждом транзитном узле.
  5. Мультиплексирование и демультиплексирование потоков.
Определение информационных потоков

Понятно, что через один транзитный узел может проходить несколько маршрутов, например через узел 5 проходят данные, направляемые узлом 4 каждому из остальных узлов, а также все данные, поступающие в узлы 3 и 10. Транзитный узел должен уметь распознавать поступающие на него потоки данных, чтобы обеспечивать их передачу именно на те свои интерфейсы, которые ведут к нужному узлу.

Информационным потоком ( data flow, data stream ) называют последовательность данных, объединенных набором общих признаков, который выделяет эти данные из общего сетевого трафика.

Данные могут быть представлены в виде последовательности байтов или объединены в более крупные единицы данных — пакеты, кадры, ячейки. Например, все данные, поступающие от одного компьютера, можно определить как единый поток, а можно представить как совокупность нескольких подпотоков, каждый из которых в качестве дополнительного признака имеет адрес назначения. Каждый из этих подпотоков, в свою очередь, можно разделить на еще более мелкие подпотоки данных, например, относящихся к разным сетевым приложениям — электронной почте, копированию файлов, обращению к Web-серверу.

Понятие потока используется при решении различных сетевых задач и, в зависимости от конкретного случая, определяется соответствующий набор признаков. В задаче коммутации, суть которой — передача данных из одного конечного узла в другой, при определении потоков в роли обязательных признаков потока, очевидно, должны выступать адрес отправителя и адрес назначения данных. Тогда каждой паре конечных узлов будет соответствовать один поток и один маршрут.

Однако не всегда достаточно определить поток только парой адресов. Если на одной и той же паре конечных узлов выполняется несколько взаимодействующих по сети приложений, которые предъявляют к ней свои особые требования, поток данных между двумя конечными узлами должен быть разделен на несколько подпотоков, так чтобы для каждого из них можно было проложить свой маршрут. В таком случае выбор пути должен осуществляться с учетом характера передаваемых данных. Например для файлового сервера важно, чтобы передаваемые им большие объемы данных направлялись по каналам с высокой пропускной способностью, а для программной системы управления, которая посылает в сеть короткие сообщения, требующие обязательной и немедленной отработки, при выборе маршрута важнее надежность линии связи и минимальный уровень задержек. В таком примере набор признаков потока должен быть расширен за счет информации, идентифицирующей приложение.

Кроме того, даже для данных, предъявляющих к сети одинаковые требования, может прокладываться несколько маршрутов, чтобы за счет распараллеливания добиться одновременного использования различных каналов и тем самым ускорить передачу данных. В данном случае необходимо «пометить» данные, которые будут направляться по каждому из этих маршрутов.

Признаки потока могут иметь глобальное или локальное значение. В первом случае они однозначно определяют поток в пределах всей сети, а во втором — в пределах одного транзитного узла. Пара уникальных адресов конечных узлов для идентификации потока — это пример глобального признака. Примером признака, локально определяющего поток в пределах устройства, может служить номер (идентификатор) интерфейса устройства, с которого поступили данные. Например, узел 1 (рис. 5.1) может быть сконфигурирован так, что он передает все данные, поступившие с интерфейса А, на интерфейс С, а данные, поступившие с интерфейса D, на интерфейс В. Такое правило позволяет разделить два потока данных — поступающий из узла 2 и поступающий из узла 7 — и направлять их для транзитной передачи через разные узлы сети, в данном случае данные из узла 2 через узел 8, а данные из узла 7 — через узел 5.

Существует особый тип признака — метка потока. Метка может иметь глобальное значение, уникально определяющее поток в пределах сети. В таком случае она в неизменном виде закрепляется за потоком на всем протяжении его пути следования от узла источника до узла назначения. В некоторых технологиях используются локальные метки потока, значения которых динамически меняются при передаче данных от одного узла к другому.

Определить потоки – это значит задать для них набор отличительных признаков, на основании которых коммутаторы смогут направлять потоки по предназначенным для них маршрутам.

Определение маршрутов

Определение пути, то есть последовательности транзитных узлов и их интерфейсов, через которые надо передавать данные, чтобы доставить их адресату — сложная задача, особенно когда конфигурация сети такова, что между парой взаимодействующих сетевых интерфейсов существует множество путей. Задача определения маршрутов состоит в выборе из всего этого множества одного или нескольких путей. И хотя в частном случае множества имеющихся и выбранных путей могут совпадать, чаще всего выбор останавливают на одном оптимальном 1 по некоторому критерию маршруте.

В качестве критериев выбора могут выступать, например:

  • номинальная пропускная способность;
  • загруженность каналов связи;
  • задержки, вносимые каналами;
  • количество промежуточных транзитных узлов;
  • надежность каналов и транзитных узлов.

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

Маршрут может определяться эмпирически («вручную») администратором сети, который, используя различные, часто не формализуемые соображения, анализирует топологию сети и задает последовательность интерфейсов, которую должны пройти данные, чтобы достичь получателя. Среди побудительных мотивов выбора того или иного пути могут быть: особые требования к сети со стороны различных типов приложений, решение передавать трафик через сеть определенного провайдера, предположения о пиковых нагрузках на некоторые каналы сети, соображения безопасности.

Однако эвристический подход к определению маршрутов для большой сети со сложной топологией не подходит. В этом случае такая задача решается чаще всего автоматически. Для этого конечные узлы и другие устройства сети оснащаются специальными программными средствами, которые организуют взаимный обмен служебными сообщениями, позволяющий каждому узлу составить свое представление о топологии сети. Затем на основе этого исследования и математических алгоритмов определяются наиболее рациональные маршруты.

Определить маршрут — однозначно задать последовательность транзитных узлов и их интерфейсов, через которые надо передавать данные, чтобы доставить их адресату.

Оповещение сети о выбранном маршруте

После того, как маршрут определен (вручную или автоматически), следует «сообщить» о нем всем устройствам сети. Сообщение о маршруте должно нести каждому транзитному устройству примерно такую информацию: «Если придут данные, относящиеся к потоку n, то нужно передать их на интерфейс F».

Сообщение о маршруте обрабатывается транзитным устройством, в результате чего создается новая запись в таблице коммутации, в которой локальному или глобальному признаку (признакам) потока (например, метке, номеру входного интерфейса или адресу назначения) ставится в соответствие номер интерфейса, на который устройство должно передать данные, относящиеся к этому потоку .

Ниже помещен фрагмент таблицы коммутации, содержащий запись, сделанную на основании сообщения о необходимости передачи потока n на интерфейс F.

Признаки потока
Направление передачи данных
номер интерфейса и/или адрес следующего узла
n F

Конечно, структура сообщения о маршруте и содержимого таблицы коммутации зависит от конкретной технологии, однако эти особенности не меняют сущности рассматриваемых процессов.

Передача информации о выбранных маршрутах так же, как и определение маршрута, может осуществляться и вручную, и автоматически. Администратор сети может зафиксировать маршрут, выполнив конфигурацию устройства вручную, например, жестко скоммутировав на длительное время определенные пары входных и выходных интерфейсов (так работали «телефонные барышни» на первых коммутаторах). Он может также по собственной инициативе внести запись о маршруте в таблицу коммутации. Однако поскольку топология сети и информационных потоков может меняться (отказ или появление новых промежуточных узлов, изменение адресов или определение новых потоков ), то гибкое решение задач определения и назначение маршрутов предполагает постоянный анализ состояния сети и обновление маршрутов и таблиц коммутации, что требует применения средств автоматизации.

Оповестить сеть о найденных маршрутах — это значит вручную или автоматически настроить каждый коммутатор таким образом, чтобы он «знал», в каком направлении следует передавать каждый поток .

javascript — Демультиплексирование потоковых данных (webm)

Существуют ли готовые решения для демультиплексирования потоковых данных (webm)? Смотрел в сторону библиотеки libwebm, но, похоже, что она больше подходит для работы с файлами, нежели с потоковыми данными.

Данный вопрос возник в контексте разработки десктопного приложения на базе Electron, которое используется для получения видео с мобильных устройств по протоколу WebRTC с последующим декодированием и передачей полученных данных кастомного драйверу (с помощью аддона, написанного на C++).

Более детально:

  1. При добавлении нового трека мы извлекаем из него MediaStream и передаем его в конструктор MediaRecorder’а.
  2. Запускаем MediaRecorder, указывая ненулевое значение для параметра timeslice.
  3. Когда очередная порция данных готова, мы передаем их в аддон, который с помощью libwebm должен демультиплексировать потоковые данные на аудио и видео, декодировать их, и отправить в соответствующий драйвер.

Сейчас для демультиплексирования используется libwebm (с небольшими изменениями), происходит это следующим образом:

  • читаем EBML заголовок контейнера (webm)
  • создаем сегмент, инициализируем, делаем load (но без загрузки кластеров, см. определение Segment::Load)
  • загружаем очередной кластер, в случае успеха перебираем блоки, извлекаем видео фреймы и аудио данные, передаем их соответствующим декодерам, в противном случае — ждем новой порции данных

Все ломается после того, как возникает необходимость перезаписать буфер — когда очередная порция данных не может быть записана [в буфер], «остаток» необработанных данных копируется в начало буфера, затем запиcь продолжается в обычном режиме. Если я правильно понимаю суть проблемы, то все дело в том, что сегмент хранит различные позиции и отступы (что приемлемо, когда речь идет о файлах), которые становятся невалидными после того, как происходит очередная перезапись буфера.

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

P.S. Если у кого-то есть опыт разработки WebRTC-приложений с помощью нативного API — буду весьма признателен, если поделитесь ссылками\проектами. Лично меня данный вариант отпугнул объемами кода chromium/webrtc и способом, которым это все собирается 🙂

В чем они заключаются и в чем их отличия?

Мультиплексирование и демультиплексирование — два распространенных жаргона в области сетевой передачи. Независимо от того, есть ли у вас какие-либо вопросы о вашем сетевом подключении или нет, в случае необходимости лучше иметь общее представление о них. В этом посте ниже вы узнаете, что это такое, и в чем разница между мультиплексированием и демультиплексированием.

Определение мультиплексирования и демультиплексирования

Обычно существует три основных различных метода мультиплексирования световых сигналов в одном оптоволоконном канале: оптическое мультиплексирование с временным разделением каналов (OTDM), мультиплексирование с кодовым разделением каналов (CDM) и мультиплексирование с разделением по длине волны (WDM).WDM — один из наиболее распространенных способов использования длин волн для увеличения полосы пропускания путем мультиплексирования различных оптических сигналов несущей на одном оптическом волокне.

Системы

WDM делятся на два основных шаблона с разными длинами волн: грубый WDM (CWDM) и плотный WDM (DWDM). CWDM обеспечивает до 18 каналов через несколько окон передачи кремнеземных волокон. В то время как DWDM использует окно передачи C-Band (1530–1565 нм), но с более плотным разносом каналов.

Что такое мультиплексирование?

Мультиплексирование (Muxing) — термин, используемый в области связи и компьютерных сетей.Обычно это относится к процессу и технике передачи множества аналоговых или цифровых входных сигналов или потоков данных по одному каналу. Поскольку мультиплексирование может объединять несколько низкоскоростных каналов в один высокоскоростной канал для передачи, высокоскоростной канал используется эффективно. Используя мультиплексирование, операторы связи могут избежать обслуживания нескольких линий, что эффективно снижает эксплуатационные расходы.

Мультиплексор (Mux) — это устройство, которое выполняет процесс мультиплексирования.Это аппаратный компонент, который объединяет несколько аналоговых или цифровых входных сигналов в одну линию передачи.

Что такое демультиплексирование?

Демультиплексирование (демультиплексирование) — термин, относящийся к мультиплексированию. Это обратное процессу мультиплексирования. Демультиплексирование — это процесс обратного преобразования сигнала, содержащего несколько аналоговых или цифровых потоков сигналов, обратно в исходные отдельные и несвязанные сигналы.

Хотя демультиплексирование является обратным процессу мультиплексирования, это не противоположность мультиплексированию.Противоположностью мультиплексирования является обратное мультиплексирование (iMuxing), при котором один поток данных разбивается на несколько связанных потоков данных. Таким образом, разница между демультиплексированием и обратным мультиплексированием состоит в том, что выходные потоки демультиплексирования не связаны, а выходные потоки обратного мультиплексирования связаны.

Демультиплексор (Demux) — это устройство, которое выполняет процесс, обратный мультиплексору.

Разница между мультиплексированием и демультиплексированием

Фактически, вы можете увидеть разницу между мультиплексированием и демультиплексированием по сути из их определений.Мультиплексирование — это метод или методика, в которых более одного сигнала объединяются в один сигнал, который распространяется по среде. демультиплексирование — это обратное мультиплексирование, при котором мультиплексированный сигнал раскладывается на отдельные сигналы.

Кроме того, вы можете лучше понять разницу между мультиплексированием и демультиплексированием с помощью устройств мультиплексора и демультиплексора, которые выполняют соответствующий процесс. Список применений мультиплексора и демультиплексора:

Мультиплексор (Mux):

  • В системе связи: повысить эффективность системы связи, разрешив передачу данных, таких как передача аудио- и видеоданных.
  • В памяти компьютера: поддерживайте большой объем памяти в компьютерах и уменьшайте количество медных линий, необходимых для подключения памяти к другим частям компьютера.
  • В телефонной сети: объедините несколько аудиосигналов на одной линии передачи.

Демультиплексор (демультиплексор):

  • В системе связи: принимает выходные сигналы от мультиплексора и преобразует их обратно в исходную форму на стороне приемника.
  • В арифметико-логическом блоке: Выход арифметико-логического блока подается как вход в демультиплексор, а выход из демультиплексора подключается к нескольким регистрам.
  • В преобразователе из последовательного в параллельный: преобразователь из последовательного в параллельный используется для преобразования параллельных данных. В этом методе последовательные данные подаются в качестве входных данных для Demux, а счетчик присоединяется к Demux для считывания сигнала данных на выходах Demux. Когда все сигналы данных сохранены, выход Demux может считываться параллельно.

Из всего вышесказанного вам легче отличить мультиплексирование от демультиплексирования. Они представляют собой процесс, обратный друг другу, и могут применяться во многих случаях.

Заключение

Мультиплексирование и демультиплексирование — две технологии, широко используемые в CWDM и DWDM. Устройство, используемое для мультиплексирования, — это мультиплексор (Mux), а устройство, используемое для демультиплексирования, — это демультиплексор (Demux). Однако в настоящее время типичное устройство будет иметь возможности как мультиплексирования, так и демультиплексирования.Такими устройствами являются CWDM Mux Demux и DWDM Mux Demux от FS.

Мультиплексирование и демультиплексирование на транспортном уровне

Предварительное условие — уровней модели OSI. Услуги мультиплексирования и демультиплексирования
предоставляются почти в каждой архитектуре протокола, когда-либо разработанной. UDP и TCP выполняют задания по демультиплексированию и мультиплексированию, включая два специальных поля в заголовки сегментов: поле номера порта источника и поле номера порта назначения.

Мультиплексирование —
Сбор данных из нескольких прикладных процессов отправителя, объединение этих данных с заголовком и отправка их целиком намеченному получателю называется мультиплексированием.

Демультиплексирование —
Доставка полученных сегментов на стороне получателя правильным процессам уровня приложения называется демультиплексированием.

Рисунок — Абстрактный вид мультиплексирования и демультиплексирования


Мультиплексирование и демультиплексирование — это услуги, обеспечиваемые транспортным уровнем модели OSI.

Рисунок — Транспортный уровень — соединение для мультиплексирования и демультиплексирования

Существует два типа мультиплексирования и демультиплексирования:

  1. Мультиплексирование и демультиплексирование без установления соединения
  2. Мультиплексирование и демультиплексирование с установлением соединения

Мультиплексирование и демультиплексирование

выполнено —
Для отправки данных из приложения на стороне отправителя в приложение на стороне назначения отправитель должен знать IP-адрес назначения и номер порта приложения (на стороне назначения), в которое он хочет передать данные .Блок-схема показана ниже:

Рисунок — Передача пакета между приложениями отправителя и получателя

Давайте рассмотрим два приложения для обмена сообщениями, которые широко используются сейчас, а именно. Поход и WhatsApp. Предположим, что A — отправитель, а B — получатель. И отправитель, и получатель установили эти приложения в своей системе (например, на смартфоне). Предположим, A хочет отправлять сообщения B в WhatsApp и путешествовать по обоим. Для этого A должен указать IP-адрес B и номер порта назначения WhatsApp при отправке сообщения через приложение WhatsApp.Точно так же для более позднего случая A должен указать IP-адрес B и номер порта назначения похода при отправке сообщения.


Теперь сообщения от обоих приложений будут упакованы вместе с соответствующими заголовками (например, IP-адрес источника, IP-адрес назначения, номер порта источника, номер порта назначения) и отправлены как одно сообщение получателю. Этот процесс называется мультиплексированием. В пункте назначения полученное сообщение разворачивается, и составляющие сообщения (например, сообщения от hike и приложения WhatsApp) отправляются в соответствующее приложение, глядя в пункт назначения по номеру порта.Этот процесс называется демультиплексированием. Точно так же B может также передавать сообщения в A.

Рисунок — Передача сообщений с использованием приложения для обмена сообщениями WhatsApp и Hike

Ссылки —
Мультиплексирование / демультиплексирование
dcs.bbk.ac.uk

Эта статья является предоставлено Шивам Шукла . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью на сайте deposit.geeksforgeeks.org или отправить свою статью по почте @ geeksforgeeks.орг. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или если вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.

Вниманию читателя! Не прекращайте учиться сейчас. Практикуйте экзамен GATE задолго до самого экзамена с помощью предметных и общих викторин, доступных в курсе GATE Test Series Course .

Изучите все концепции GATE CS с бесплатными живыми классами на нашем канале YouTube.

Демультиплексирование — обзор | Темы ScienceDirect

4.1.1 Демультиплексирование и качественная фильтрация

Как упоминалось ранее, высокопроизводительное секвенирование позволяет объединить несколько образцов в одном цикле секвенирования (Kuczynski et al., 2012). Однако каждая последовательность затем должна быть связана с отдельным образцом, из которого она была получена, с помощью штрих-кода ДНК. Штрих-коды, которые представляют собой короткие последовательности ДНК, уникальные для каждого образца, включаются в каждую последовательность из данного образца во время ПЦР.QIIME использует штрих-коды в файле сопоставления для демультиплексирования, то есть для назначения последовательностей обратно образцам, из которых они получены, используя коды исправления ошибок, если они доступны (как отмечалось ранее). QIIME также может демультиплексировать штрих-коды переменной длины, такие как те, которые используются в HMP, см. Раздел 5.2.1.

Во время демультиплексирования QIIME удаляет штрих-коды и последовательности праймеров, поскольку они не нужны на более поздних этапах. Таким образом, результатом демультиплексирования является последовательность, соответствующая амплифицированному гену 16S рРНК.

Третья часть предварительной обработки — это качественная фильтрация. Качественная фильтрация существенно улучшает оценки разнообразия с помощью секвенирования Illumina (Bokulich et al., 2013). Инструменты Illumina, как и большинство инструментов для секвенирования, генерируют оценку качества для каждого нуклеотида (Phred), связанную с вероятностью того, что каждый нуклеотид был прочитан неправильно. QIIME использует оценку Phred и пользовательские параметры для удаления операций чтения, не отвечающих желаемому качеству. Эти определяемые пользователем параметры представляют собой процент последовательных базовых вызовов высокого качества ( p ), максимальное количество последовательных базовых вызовов низкого качества ( r ), максимальное количество неоднозначных базовых вызовов (обычно кодируется как N) ( n ) и минимальный показатель качества Phred ( q ).Для подробного обсуждения того, как эти параметры влияют на результаты разнообразия, см. Bokulich et al. (2013). В этом исследовании рекомендуются стандартные значения для этих параметров: r = 3, p = 75%, q = 3 и n = 0, которые являются значениями по умолчанию в конвейере QIIME. Однако оптимальные значения для этих параметров могут варьироваться как для отдельных прогонов секвенирования, так и для различных последующих анализов, например, такие анализы, как машинное обучение, выигрывают от большего количества низкокачественных последовательностей, тогда как для точного подсчета OTU из фиктивного сообщества требуется меньше последовательностей более высокого качества.Таблица 19.1 содержит обзор руководящих принципов, представленных в Bokulich et al. (2013) для настройки этих параметров на заданный набор данных.

Таблица 19.1. Обзор руководств по настройке параметров фильтрации качества

Высокое качество, высокое качество Высокое качество -длина последовательностей
Характеристики набора данных q p r Результаты
Увеличить Увеличить Получение полноразмерных последовательностей с низкой частотой ошибок, увеличение скорости обнаружения редких OTU
Короткие чтения или чтения, усеченные ранними вызовами низкокачественной базы Ниже Увеличить Сохранить более низкое качество, но таксономически полезные чтения
Увеличить количество операций чтения для инструментов машинного обучения, сравнение количества OTU между метаданными и т. Д. Нижний Увеличенный размер выборки

По материалам Bokulich et al. (2013).

Подход Illumina с качественной фильтрацией по своим фундаментальным принципам отличается от шумоподавления 454 (Quince et al., 2009; Reeder & Knight, 2010). 454 шумоподавление основано на кластеризации потоковой диаграммы (Quince et al., 2009; Quince, Lanzen, Davenport, & Turnbaugh, 2011) и в первую очередь направлено на сокращение количества пробегов гомополимеров, что не является проблемой для платформы Illumina в такой же степени.Напротив, фильтрация качества Illumina основана на оценке качества Phred для каждой базы и не нацелена на индели.

Процесс фильтрации качества QIIME работает следующим образом. Начиная с начала последовательности, QIIME проверяет, что следующие значения Phred r превышают определяемое пользователем пороговое значение качества q . Если тест положительный, он продолжает разрезать окно из на баз до тех пор, пока тест не завершится неудачно или не будет достигнут конец последовательности. Затем последовательность обрезается до последней базы, которая соответствует порогу качества.Следующий тест определяет, превышает ли длина обрезанной последовательности p , выраженное в процентах от длины необработанной последовательности. Если эта проверка не удалась, последовательность исключается. В противном случае QIIME выполняет последнюю проверку последовательности, которая подсчитывает количество неоднозначных символов ( N ) в обрезанной последовательности и проверяет, что оно меньше n . Если тест не проходит, последовательность отклоняется. QIIME объединяет процессы демультиплексирования, удаления праймеров и качественной фильтрации в одном скрипте split_libraries_fastq.py:

split_libraries_fastq.py -i $ PWD / IQ_Bio_16sV4_L001_sequences.fastq.gz -b $ PWD / IQ_Bio_16sV4_L001_sequences_barcodes.fastq.gz -m $ PWD / IQ_Barcodes. , мы использовали параметр —rev_comp_mapping_barcodes, чтобы указать, что штрих-коды, присутствующие в файле сопоставления, являются обратными дополнениями штрих-кодов Golay 12. Мы использовали рекомендуемые параметры по умолчанию для качественной фильтрации этого набора данных. Однако, чтобы изменить значения для параметров фильтрации качества r , p , n и q , мы можем использовать параметры -r, -p, -n и -q для сценария.Эта команда запишет файл в формате fasta в папку slout с именем seqs.fna , который содержит демультиплексированные последовательности, прошедшие фильтр качества. Каждая последовательность содержит информацию о том, из какого сэмпла она произошла, закодированную в названии последовательности.

Несколько дорожек данных Illumina fastq можно обрабатывать вместе за один вызов сценария, просто передав файлы последовательности, файлы штрих-кода и файлы сопоставления в одном порядке с помощью -i, -b и -m варианты соответственно.Например, для двух полос команда будет выглядеть так:

split_libraries_fastq.py -i последовательностям1.fastq, последовательностям2.fastq -b последовательностям1_barcodes.fastq, последовательностям2_barcodes.fastq -m mapping1.txt, mapping2.txt -o slout

Пользователь может проверить, сколько последовательностей было демультиплексировано и прошло качественную фильтрацию, с помощью команды count_seqs.py. Эта команда также показывает среднее и стандартное отклонение длины последовательности:

count_seqs.py -i $ PWD / slout / seqs.fna12687021: slout / seqs.fna (длины последовательности (среднее +/- стандартное): 150,9989 +/- 0,1715) 12687021: Всего

Начало работы: демультиплексирование — документация ipyrad

Демультиплексирование — это процесс сортировки последовательных операций чтения в отдельные файлы для каждого образца в последовательном прогоне. Возможно, вы получили свои данные уже демультиплексированными, с отдельным файлом для каждого образца. Если да, то можете переходить к следующему разделу. Если ваши данные еще не отсортированы в отдельные файлы, вам нужно будет выполнить демультиплексирование во время шага 1 сборки ipyrad.

Мультиплексирование и несколько библиотек

Если ваши данные еще не отсортированы по индивидуумам / образцам, вам потребуется организовать информацию о штрих-коде / индексе в виде файл штрих-кодов для сортировки данных в отдельные файлы для каждого образца. ipyrad имеет несколько вариантов демультиплексирования с помощью внутренних штрих-кодов или внешних индексов i7, а также для объединения образцов из множества различных прогонов секвенирования в один анализ или разделения их на отдельные анализы, а также для объединения данных из нескольких секвенированных дорожек в один анализ. одинаковые названия образцов (например,г., технические копии). См. Простые примеры в разделе «Демультиплексирование» и в разделе «Поваренная книга» для получения дополнительных подробных примеров.

При демультиплексировании имена семплов будут извлечены из файлы штрих-кодов, тогда как, если ваши данные уже демультиплексированы, имена образцов извлекаются напрямую из имен файлов. Не включайте пробелы в имена файлов. Для парных данных нам нужно иметь возможность идентифицировать, какие файлы R1 и R2 идут вместе, поэтому мы требуем, чтобы каждое имя файла read1 содержало строку _R1_ ( с подчеркиванием до и после ) и каждое имя файла R2 должен точно соответствовать файлу R1, за исключением того, что в нем _R2_ вместо _R1_ .См. Пример в файлах с учебными данными.

Примечание

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

Образцы имен

При демультиплексировании Имена семплов будут извлечены из файлы штрих-кодов, тогда как если ваши данные уже демультиплексированы, то имена образцов извлекаются из имен файлов напрямую.Не включайте пробелы в имена файлов. Для парных данных нам нужно иметь возможность идентифицировать, какие файлы R1 и R2 идут вместе, поэтому мы требуем, чтобы каждое имя файла read1 содержало строку _R1_ ( с подчеркиванием до и после ) и каждое имя файла R2 должен точно соответствовать файлу R1, за исключением того, что в нем _R2_ вместо _R1_ . См. Пример данных.

Примечание

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

Файл штрих-кодов

Файл штрих-кодов представляет собой простую таблицу, связывающую штрих-коды с образцами. Штрих-коды могут быть разной длины. Каждая строка должна иметь одно имя, а затем один штрих-код, разделенные пробелом. (табуляция или пробелы).

 образец1 ACAGG
sample2 ATTCA
sample3 CGGCATA
sample4 AAGAACA
 

Комбинаторная индексация

Для выполнения комбинаторной индексации вам необходимо ввести два штрих-кода для имя каждого образца.Их следует заказывать так, чтобы штрих-код на read1 был первый и штрих-код на read2 второй. Простой способ убедиться, что штрих-коды прикреплены к вашим чтениям так, как вы ожидаете, это смотреть на необработанные файлы данных (например, используйте инструмент командной строки минус ) и проверьте наличие последовательности штрих-кода.

 образец1 ACAGG TTCCG
sample2 ATTCA CCGGAA
sample3 CGGCAT GAGTCC
sample4 AAGAAC CACCG
 

i7 индексирование

Внешние штрих-коды / индексы также могут быть прикреплены внешне к последовательному считыванию. на адаптеры Illumina.Это часто используется для объединения нескольких пластин вместе. на один цикл секвенирования. Вы можете найти индекс i7 в строке заголовка каждое чтение в файле fastq. ipyrad может демультиплексировать с использованием индексов i7, если вы включить специальный флажок. Пример того, как это сделать, используя API ipyrad доступно в разделе кулинарных книг.

Объединение нескольких библиотек

С ipyrad очень легко объединить несколько секвенированных библиотек в одну единичная сборка.Это достигается за счет демультиплексирования каждой дорожки данных. отдельно, а затем объединение библиотек с помощью слияние . Смотрите слияние раздел для подробностей и примеров в разделе кулинарной книги.

Что такое демультиплексор? (с изображением)

Демультиплексор или «демультиплексор» — это часть оборудования, которая принимает один сигнал, несущий несколько полезных данных, и разделяет его на несколько потоков. Они часто используются в телекоммуникациях для передачи сигналов на большие расстояния.Демультиплексор противоположен мультиплексору. Мультиплексор, или «мультиплексор», принимает сигналы от многих источников и преобразует их в единый сигнал. Этот сигнал передается куда угодно, а затем разбирается на другом конце демультиплексором.

Чтобы представить себе, как работает демультиплексор, его можно сравнить с работой водяного колеса.Это единое устройство с множеством маленьких ведерок, в каждое из которых собирается вода. Затем вода транспортируется и сбрасывается каждым отдельным ведром. Прием воды мультиплексируется, а выпуск с другой стороны — демультиплексируется. Это способ передачи большого количества потоков трафика из одного места в другое без необходимости иметь отдельные провода для каждого из них.

В телекоммуникациях «ведрами» мультиплексора являются временные интервалы.Если кто-то звонит из офиса в Нью-Йорке, например, в другой офис в Нью-Джерси, звонок пересылается из офиса на местную телефонную станцию. АТС видит, что вызывающий абонент звонит в Нью-Джерси, и отправляет его в мультиплексор Нью-Джерси. Это устройство напрямую подключается к отрезку волокна, идущему в Нью-Джерси.

Вызову дается временной интервал, в данном примере 36, и он отправляется по оптоволокну в Нью-Джерси.Помимо данных вызова — голоса человека — мультиплексор помещает туда еще одну часть информации, сообщающую другому концу, что во время выполнения вызова все, что поступает в временной интервал 36, предназначено для этого конкретного вызова. С другой стороны, демультиплексор принимает информацию, видит, что все, что поступает во временном интервале 36, предназначено для офиса в Нью-Джерси, и отправляет ее через телефонную станцию.

Этот процесс мультиплексирования и демультиплексирования происходит сотни раз в секунду для каждого разговора, происходящего на больших расстояниях.Если кто-то будет звонить через всю страну, ее разговор, все еще находящийся в 36-м временном интервале, будет проверяться на каждой крупной телефонной станции и отправляться до тех пор, пока он не достигнет города, в который она звонит. Этот коммутатор увидит, что вызов был адресован кому-то, кто к нему подключился, «прервет» вызов и демультиплексирует его. Процесс настолько совершенен, а оборудование настолько быстрое, что, хотя данные вызова могут проверяться 20 или 30 раз, вызывающий абонент не ощущает задержки в вызове.

Пользовательское демультиплексирование — учебные пособия по анализу NGS

В этом руководстве предполагается, что у вас уже есть экземпляр GVL в облаке NeCTAR.См. Страницу «Первоначальная установка» для получения инструкций о том, как это сделать. Далее мы предполагаем, что вы вошли в экземпляр с помощью ssh.

В качестве альтернативы можно запустить руководство локально в терминале на компьютере Mac или Linux.

Получите последнюю версию PhyloSift

  curl -O http://edhar.genomecenter.ucdavis.edu/~koadman/phylosift/devel/phylosift_20141105.tar.bz2
 tar -xjf phylosift_20141105.tar.bz2
 экспорт ПУТЬ = "$ ПУТЬ:` pwd` / phylosift_20141105 / bin "
  

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

Получить данные для примера

  curl -O http://darlinglab.org/data/demux/Undetermined_S0_L001_I1_001.fastq.gz
curl -O http://darlinglab.org/data/demux/Undetermined_S0_L001_I2_001.fastq.gz
curl -O http://darlinglab.org/data/demux/Undetermined_S0_L001_R1_001.fastq.gz
curl -O http://darlinglab.org/data/demux/Undetermined_S0_L001_R2_001.fastq.gz
  

Приведенные выше команды используют curl для загрузки набора данных Illumina, созданного на UTS MiSeq.

Создание файла таблицы штрих-кодов PhyloSift

В файле таблицы штрих-кодов записываются все возможные штрих-коды, которые можно использовать, и их особенности.Он не записывает, какие образцы имеют какие штрих-коды. Файл таблицы штрих-кода представляет собой файл значений, разделенных табуляцией (иногда называемый .tsv или .csv), и может быть создан в LibreOffice или Excel, а также в другой программе для работы с электронными таблицами или в текстовом редакторе. Для учебного набора данных мы загрузим и будем использовать следующий набор штрих-кодов:

  curl -O http://darlinglab.org/data/demux/barcodes.csv
  

Первые несколько строк этого файла выглядят так:

  #barcode bc_name read_id trim_len random_pos random_len linker_seq
AACCAT 1 2 0 6 6
AAGTTC 2 2 0 6 6
AATACG 3 2 0 6 6
  

Приведенный выше набор штрих-кодов — это тот, который мы использовали в UTS с синтезированными на заказ олигонуклеотидами Nextera от IDT.В библиотеках Nextera и текущих TruSeq штрих-коды считываются как отдельные считывания, 2-й и 3-й должны быть загружены на секвенсоре. Наши пользовательские олигонуклеотиды содержат произвольно синтезируемую область из 6 оснований, начиная с образца штрих-кода, это указано в столбцах random_pos и random_len . Некоторые проекты библиотек помещают штрих-код в начале первого чтения и иногда следуют за ним с последовательностью компоновщика. Для таких библиотек количество последовательности, которую нужно обрезать с начала чтения, может быть указано в столбце trim_len , а сама последовательность линкера указывается в столбце linker_seq .

Создать образец файла таблицы

Следующим ингредиентом рецепта является файл, описывающий соответствие между образцами и штрих-кодами. Для файлов примеров мы будем использовать следующую карту:

  #Sample_Name Barcode1 Barcode2
S1 AATACG ACGGTT
S2 AATACG TAGCGC
S3 AATACG GGTTCT
S4 AATACG CTTGCC
S5 ATACTC GGTTCT
S6 ATACTC AGGCCT
S7 ATACTC TCATAC
S8 AGGAGC AGGCCT
S9 AGGAGC CTTGCC
S10 AGGAGC TCATAC
S11 AAGTTC ACGGTT
S12 AAGTTC CTTGCC
S13 AAGTTC CTACCT
S14 AAGTTC TCATAC
S15 TATAGT ACGGTT
S16 TATAGT CTTGCC
S17 TATAGT CTACCT
S18 TATAGT TCATAC
S19 CGGAAT ACGGTT
  

Вместо того, чтобы копировать это в текстовый файл, будет проще просто загрузить его:

  curl -O http: // darlinglab.org / data / demux / samples.csv
  

Запустите филосифт для демультиплексирования образцов

  демультиплексор phylosift --disable_updates --output = platypi --sample-map = samples.csv \
--barcode-table = barcodes.csv --rev-barcode = 2 --swap-barcodes.
  

Это будет работать некоторое время, производя следующие строки вывода:

  ...
Сопоставление штрих-кода CTTGCC: ACTATA с S16
Сопоставление штрих-кода CTACCT: ACTATA с S17
Сопоставление штрих-кода TCATAC: ACTATA с S18
Отображение штрих-кода ACGGTT: ATTCCG на S19
Длина штрих-кода 6
Обработка ./Undetermined_S0_L001_R1_001.fastq.gz
i1_file ./Undetermined_S0_L001_I1_001.fastq.gz
i2_file ./Undetermined_S0_L001_I2_001.fastq.gz
r2_file ./Undetermined_S0_L001_R2_001.fastq.gz

207/924/1000 считываний: совпадающие образцы / совпадающие штрих-коды / всего
427/1848/2000 чтения: сопоставление образцов / сопоставление штрих-кодов / всего
640/2760/3000 считываний: сопоставление образцов / сопоставление штрих-кодов / всего
873/3676/4000 считываний: совпадающие образцы / совпадающие штрих-коды / всего
1101/4613/5000 считываний: сопоставление образцов / сопоставление штрих-кодов / всего
1332/5547/6000 считываний: совпадающие образцы / совпадающие штрих-коды / всего
...
  

И, наконец, завершился отчет о том, сколько считываний было присвоено каждому штрих-коду. Обратите внимание, что филосифт позволяет каждому штрих-коду содержать до одного несоответствия; пара штрих-кодов может иметь несоответствие в каждом штрих-коде в паре. Приведенная выше команда создает демультиплексированный файл с именем platypi.fastq.gz со следующим содержимым:

  @ S11_1 M00607: 72: 000000000-D0B10: 1: 1101: 15662: 1335 1: N: 0: 0 штрих-код = ACGGTT: GAACTT random = :: GGACTA: ACGATG:
CTATTTCATCGTCAATCGCTGGCTGCGCGTCGCGACGTTCGTGGTGGCCGTGCTGGTGGTGATGCCGCTGTGGCAGGCCGGCAGCGGGCTGATGGCGCGCGTCGTCGCGCCGCCCGACGCCGCGCAG
+
BCBBBFFFFFFCGGGGGGGGGGGHGGGGGGGGGGGGGEGHGGGGGHGGHHHGGGGHHHHGFGHHHHHHGGFGHHHHHHGGGGFHHHHGGGGGGGGGGGGGGGGGGGGHFFFFGGGGGGGG
@ S11_1 M00607: 72: 000000000-D0B10: 1: 1101: 15662: 1335 2: N: 0: 0 штрих-код = ACGGTT: GAACTT random = :: GGACTA: ACGATG:
GTTCAGCAACGACTGGACCGTGTAGCCGGCGCCCGCCAGTTGCGAGAACAGGTGGCACTGCTGCGGTGCGGGCTTGTACAGGTCCGCATGCGCCTCCTGCCCGCAGCTCGCGCGCAGCACGCGCCGCTGATC
+
AAABCFFFFFDBGGGGGGGGEGHHHHHHGGGGCGGGGGGGHGFGGGGGGHHHHHHEHHHGHHHHHGEEGGGGEEGHGGHHHGFHGHGGGGGGGHGGGFCFHFFFFGFFGGGGGGGGGGGGGG
@ M00607: 72: 000000000-D0B10: 1: 1101: 16052: 1335 1: N: 0: 0 штрих-код = CTTGCC: CGTTCC random = :: GGCCTC: GCTTGG:
GCCACCACAGCGCGATGCCGGTGCCGATCATCACGAAGGTCCAGCAGGCGGCGAGCTCCATCAGCCACTCGCCGGTCTTGCCGAGCAGCAGCTTGCGATGCAGCATCCGGTCGACCTGCATGAAGCGGTCTCCGACGCCTC
+
> AAABFBBBFBBGGGGGGGGGGGGHGGGGGHHHHGGGGGHHHHHGHHHHHGGGGGGGGGHHHHHHHHHHHHHHHGGGGGGGGHGGGGHG
....
  

В этом файле чтения, которые были присвоены выборке, помечены выборкой и индексом, начинающимся с 1. Например, первое чтение в наборе данных происходит из выборки S11 и поэтому маркируется как S11_1. Второе чтение не соответствовало образцу и поэтому не было переименовано.

Итак … каковы параметры командной строки phylosift и зачем они нам нужны?

  • --output = platypi дает базовое имя для выходного файла.
  • --sample-map = samples.csv указывает, где находится файл образца карты
  • --sample-map = barcodes.csv указывает, где находится таблица штрих-кодов
  • --rev-barcode = 2 сообщает phylosift, что штрих-код 2 фактически считывается в направлении обратного дополнения относительно того, как он был указан в таблице. Это обычная проблема для олигонуклеотидов адаптеров i7 Illumina, в которых секвенируемая цепь комплементарна цепи, синтезированной при заказе адаптеров.
  • --swap-barcodes сообщает phylosift, что на карте образца пара штрих-кодов поменяна местами относительно порядка их считывания на приборе
  • --disable_updates указывает, что филосифт должен пропустить поиск обновлений в своей базе данных маркерных генов на сервере

Самый последний аргумент . просто указывает phylosift искать в текущем каталоге файлы Illumina. Если ваши данные Illumina находятся в другом месте, этот аргумент можно заменить соответствующим путем в файловой системе.

Другие полезные опции для демультиплексирования

Приведенная выше команда создает один файл FastQ с чередованием, чтения которого помечены в соответствии с идентификатором образца. Хотя это идеальный формат для определенных анализов, таких как профилирование микробного сообщества с помощью QIIME, для других анализов предпочтительно сохранять каждый образец в отдельном файле.Актуальны следующие варианты:

  • --samplefiles разделить образцы на отдельные файлы
  • - без чередования создать отдельные файлы для прямого и обратного чтения из последовательности парного конца
  • --flash объединить перекрывающиеся пары чтения с помощью программного обеспечения FLASH. FLASH необходимо устанавливать отдельно. Это полезно для секвенирования ампликона, когда известно, что вставка короче суммы длин чтения парных концов.

Получите свои данные

Теперь, когда показания Illumina недавно демультиплексированы, можно перейти к следующему этапу анализа. Один из вариантов — продолжить работу в экземпляре Genomics Virtual Lab. Если вы хотите переместить данные в другое место, их можно получить с помощью scp или Secure FTP. Из командной строки Linux или Mac это так же просто, как запустить scp XXX.XX.X.XXX:*.fastq.gz. в терминале вашего локального компьютера, чтобы скопировать данные из экземпляра GVL.XX.XX.X.XXX необходимо заменить на IP-адрес экземпляра GVL. В качестве альтернативы можно использовать что-то вроде клиента FileZilla в качестве графического интерфейса для извлечения файлов из GVL.

Смешивание образцов

при демультиплексировании

микширование выборок при демультиплексировании

1

Как можно определить, смешаны ли образцы от разных людей при демилтиплексировании? у нас есть 4 образца на полосу и всего 8 полос.После демультиплексирования выяснилось, что некоторые образцы имеют вдвое больший размер, чем другие. Средний размер на образец составляет 10 ГБ, но в нашем последнем прогоне мы получили образцы со следующими размерами:

  • 10 ГБ (что нормально)
  • 5 ГБ
  • 15 ГБ

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

У меня уже есть файлы fastq, файлы BAM и файлы VCF.

Как я могу проверить с помощью вычислений, что произошло смешивание чтения?

Edit: каждый образец секвенируется дважды на двух разных дорожках.Таким образом, после демультиплексирования следует этап сбора образцов на разных дорожках.

демультиплекс WES человеческие образцы NGS БАМ • 1.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *