Kodomo

Пользователь

ТЗ

Интерфейс

  1. Окно редактора. Содержит сверху меню, под ним панели: группы (groups), названия последовательностей (names), тела последовательностей (sequences). Строки в списке названий последовательностей и в телах последовательностей одинаковой высоты и прокрутка этих двух виджетов согласована.
    • +------------------------------------------------------------[_][ ][x]+
      |[file][colour]                                                       |
      |+-------------+-----------+------------------------------------------|
      ||> groups     |           |                                         ^|
      ||[v] group1   | names     |   sequenсes                             #|
      ||[v] group2   |           |                                         #|
      ||[ ] group3   |           |                                         #|
      ||> blocks     |           |                                         #|
      ||[ ] block1   |           |                                         #|
      ||[ ] block2   |           |                                         #|
      ||             |           |                                         #|
      ||             |           |                                         #|
      ||             |           |                                         #|
      ||             |           |                                         #|
      ||             |           |                                         #|
      ||------+------|           |                                         #|
      ||filter|center|           |                                         #|
      ||------+------|           |                                         v|
      || add  |delete|           |<#######################################> |
      +--------------+-----------+------------------------------------------+
  2. Устройство меню:
    File
    • Import – из fasta и msf

    • Export – в fasta и msf

    • Save Project
    • Load Project
    • -
    • Quit
    Color
    • By Identity – яркость цвета а.о пропорциональна встречаемости соответствующей а.о в столбце

    • By Similarity – аналогично, но similarity

    • -
    • By Amino Acid Groups
    • By Amino Acid
    • By Group
    • By Block
  3. Каждая из панелей (groups, names, sequences) может быть скрыта или показана.
  4. В панели groups расположены списки групп и блоков. Это виджет типа ...
  5. Кнопка Center в панели groups двигает выравнивание таким образом, чтобы левый верхний угол блока совпал с левым верхним углом видимой части выравнивания; при этом последовательности в выравнивании переставляются таким образом, чтобы последовательности в блоке были рядом, и блоки\группы располагались один под другим.
  6. Кнопка Add в панели groups вызывает диалог, спрашивая группа или блок; имя группы/блока. Создает соответственно новую группу или блок.
    • +--------------------------------------------------+ 
      |             Group ( )   Block (.)                |
      |                                                  |
      |             Name:  [___________]                 |
      |                                                  |
      |             [OK]            [Cancel]             |
      |                                                  |
      +--------------------------------------------------+
  7. Кнопка Delete в панели groups удаляет выделенное множество групп/блоков.
  8. Кнопка Filter в панели groups скрывает из выравнивание последовательности, не относящиеся ни к выделенным блокам, ни к выделенным группам. В случае, если нет ни одной выделенной группы, должны быть скрыты все позиции не относящиеся ни к одному из выделенных блоков.
  9. Правая кнопка мыши по группе или блоку в панели groups открывает контекстное меню:
    • Filter
    • Center
    • Delete
  10. Drag-n-Drop последовательностей в группу, должно добавлять их в эту группу.
  11. Drag-n-Drop выделенного участка в блок, добавляет его в блок, если блок пуст.
  12. Shift+Drag-n-Drop выделенного участка в блок добавляет дополнительные последовательности и позиции к блоку.

Управление

Мышью

Клавиатурой

Необязательное

  1. В обоих виджетах "Text" запретить редактирование текста (пока что). Для начала научимся двигать последовательности горизонтально. Должно быть возможно выделить участок последовательности и подвинуть последовательность в пределах этого участка, как это сделано в Jalview. То есть мышкой выделяется часть последовательности, потом Ctrl-B1 можно в пределах выделенного участка эту последовательность подвинуть. Двигается буква, на которой стоит курсор, а также все буквы, находящиеся перед ней в направлении движения. Гэпы схлопываются и/или добавляются при необходимости. За границы выделенного участка выдвинуть последовательность нельзя. Думаю, пока не стоит добавлять возможность выделения блока из нескольких последовательностей.
  2. Если выравнивание было покрашено по identity, а потом часть последовательностей подвинули, стоит ли перекрашивать автоматически или только после повторного вызова команды By Identity? Это вопрос того, как кому удобнее имхо. Я думаю, стоит перекрашивать автоматически. Если решим, что стоит, то сделать так, чтобы после движения выравнивание перекрашивалось (целиком или только в измененных фрагментах?).
      • Лучше не автоматически, по покраске очень удобно следить, куда ты утащил последовательность -.

  3. Необходимо понять, и/или сочинить годный формат, в котором можно будет хранить покраску.
    • Также, вероятно, хорошо было бы иметь возможность сохранить проект, со всеми группами и блоками.
  4. Меню Color/Configure. Всплывающее окно с возможностью выбора алгоритма покраски для identity/similarity: три градации / линейная / степенная / логарифмическая. Возможность подстройки порога чувствительности раскраски.