Как сжать алфавит, состоящий из последовательности ДНК
Я хочу сжать последовательность ДНК с помощью техники сжатия, а не алгоритма Хаффмана и адаптивного Хаффмана, я использую C# в качестве языка программирования. может кто-нибудь привести меня к алгоритму. Примечание: я хочу сжатие без потерь
1 ответ
С последовательностями ДНК у вас есть 4 возможных состояния, а именно
- Гуанин (G, 00)
- Цитозин (С, 01)
- Аденин (А, 10)
- Тимин (Т, 11)
Вы можете использовать два бита для хранения этих четырех возможных состояний со значениями в скобках. С помощью этого простого метода вы сможете хранить четыре разных значения в одном байте.
Обновить
Как упомянул @kol, вы можете использовать практически любой алгоритм сжатия для дальнейшего сжатия данных. В настоящее время.NET поставляется с двумя методами сжатия ( Deflate и GZip) и многое другое можно найти в библиотеке с открытым исходным кодом SharpZipLib.