Как сжать алфавит, состоящий из последовательности ДНК

Я хочу сжать последовательность ДНК с помощью техники сжатия, а не алгоритма Хаффмана и адаптивного Хаффмана, я использую C# в качестве языка программирования. может кто-нибудь привести меня к алгоритму. Примечание: я хочу сжатие без потерь

1 ответ

Решение

С последовательностями ДНК у вас есть 4 возможных состояния, а именно

  • Гуанин (G, 00)
  • Цитозин (С, 01)
  • Аденин (А, 10)
  • Тимин (Т, 11)

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


Обновить
Как упомянул @kol, вы можете использовать практически любой алгоритм сжатия для дальнейшего сжатия данных. В настоящее время.NET поставляется с двумя методами сжатия ( Deflate и GZip) и многое другое можно найти в библиотеке с открытым исходным кодом SharpZipLib.

Другие вопросы по тегам