UGENE Forum
https://forum.ugene.net/forum/YaBB.pl
General Category >> Forum in Russian language ([ch1056][ch1091][ch1089][ch1089][ch1082][ch1086][ch1103][ch1079][ch1099][ch1095][ch1085][ch1099][ch1081] [ch1092][ch1086][ch1088][ch1091][ch1084]) >> Улучшение плагина Repeat Finder
https://forum.ugene.net/forum/YaBB.pl?num=1361793642

Message started by SergeyJ on Feb 25th, 2013 at 7:00pm

Title: Улучшение плагина Repeat Finder
Post by SergeyJ on Feb 25th, 2013 at 7:00pm
Добрый день,

начну со знакомства. Я по профессии программист, и мое хобби биоинформатика. О вашем проекте недавно узнал на хабрахабре, после публикации одного обзора (ссылки дать не могу) . Точнее ваше ПО у меня валялось давно, но теперь я узнал, что вы русскоязычная команда, разрабатывающая открытый проект и готовы к сотрудничеству. Поэтому в принципе я готов читать исходный код и помогать в выполнении того о чем тут договоримся. Но я программирую только под Windows, и предпочитаю C#, но могу программировать и на С++ в Visual Studio. (я поговорил с Иваном Новиковым, который с вами работал, и он мне пояснил, что возможно с вами договорится о сотрудничестве)

О моих проектах по биоинформатике можете посмотреть тут - (ссылку дать запрещают) :)

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

У меня есть целый ряд идей, но лучше начать с чего-то простого, но более конкретного. Вот у вас есть такой плагин Repeat Finder - на мой взгляд он сделан плохо, и я его не смог бы использовать скажем для моего эксперимента, который описан тут (опять ссылка :) )
Хотя это как раз то самое, что нужно для этого эксперимента - найти в геноме все одинаковые строки (подпоследовательности) скажем более 50 символов.

Ровно такой же код с использование суффиксного дерева (наврал) массива я и использовал у себя. Но там есть тоже некоторые проблемки.

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

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Feb 26th, 2013 at 5:38pm
Сергей,

ваша заинтересованность в UGENE - хорошая новость для нас!

Хотелось бы все таки посмотреть на ваши проекты и описания экспериментов. Пожалуйста, вышлите ссылки к нам на почту (ugene [at] unipro [dot] ru). Мы сможем ознакомиться с этим и понять, где у нас общие интересы.

UGENE реализован на C++, с использованием фреймворка Qt 4. Я не знаю, рассказал ли вам Иван Новиков, как это собирать. Инструкции есть в ugene/build.txt или мы можем написать вам подробно.

Конечно мы заинтересованы в улучшении UGENE! Наверняка у вас есть свои идеи по поводу реализации алгоритма поиска повторов и, возможно, вам известны каки-нибудь подводные камни, которые мы могли упустить. Код лежит вот тут (ugene\src\plugins\repeat_finder\src\ ). Реализацию алгоритма поиска повторов с использованием суффиксного массива(не дерева) можно найти в этих файлах: RFSArray. Также обратите внимание на файлы RF_SuffixArray, RFBase, RFDiagonal

Причина, по которой мы используем регионы может быть следующей. Из позиций повторяющихся последовательностей мы легко можем получить сами последовательности. Наоборот уже сложнее. Таких специфичных задач очень много, поэтому мы стараемся предоставлять более общие решения и прибегать к C++ как можно реже. В UGENE есть такой инструмент - Workflow Designer. Где можно создавать многостадийные схемы обработки данных. Можно создать и схему, которая решает вашу задачу (я вложил ее). Вам нужно установить входные и выходные файлы, поменять параметры, если нужно и запустить схему. На выходе она выдаст повторяющиеся последовательности, но только когда мы поправим один небольшой баг (https://ugene.unipro.ru/tracker/browse/UGENE-1466)...

Да, действительно, команда у нас русская, а базируемся мы в Новосибирске  :)
https://forum.ugene.net/forum/YaBB.pl?action=downloadfile;file=repeat_sequences.uwl (8 KB | )

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Feb 26th, 2013 at 6:56pm
Попробую добавить ссылку с описанием некоторых моих проектов

biogenom.eu (вроде получилось ;) )

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

Это то понятно. И одно другому не мешает. Но на сколько я понял - поправьте если я не прав - списка повторяющих последовательностей я не могу получить так?

Вы достаточно много потратили на визуализацию того, где эти повторы есть, а результата то и нет :) Поясню. Рассматривать где эти повторы есть для генома - вряд ли кто-то будет. Часто (за исключением вырожденных, скорее даже тренировочных задач) геном большой, даже для бактерии это 1-6 миллионов символов, и множество повторов. Для чего их ищут (ответьте вы, наверное есть подзадачи которые вы имели введу, когда это реализовывали, а я пока сужу со своей точки зрения) ? Мне же они нужны сразу целиком. И думаю для многих тоже нужно также, а по одной-две никто не будет рассматривать. Поэтому самое простое, что нужно - это записать все найденные повторные последовательности - ну например просто в формате .fasta, и конечно вторичной информацией могут быть то где эти последовательности найдены (скажем как комментарий к найденной последовательности в фасте).

Отсюда вопрос:
1. Возможно ли вообще мне получить этот список на данный момент (т.е. может я просто не понимаю как? тогда расскажите последовательность действий)
2. Для дружественного интерфейса - это не должно выглядеть как многостадийная обработка - это самое элементарное - ищу повторяющиеся последовательности - задаю параметры - получаю собственно то что ищу.

Теперь о подводных камнях. По сути визуально вы рисуете сам тот суффиксный массив. Но если там только суффиксный массив - то этого мало. Я могу ошибаться, но я опишу одну тонкость - и вы скажите решена ли она у вас и как.
Часто нужны непересекающиеся повторы. Т.е. если есть последовательность banana, и скажем интересует длина 2 и более, то что вы дадите:
ana будет считаться повтором?
какую последовательность вы выберите na или an ?


Да, Иван Новиков рассказал как это собирать и далее отправил к вам :) Пошел посмотрю ваш код, позже отпишусь.


Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Feb 27th, 2013 at 7:42am
Я не добрался посмотреть под дебагером, смотрел просто код. Но скажу, что понять его сложновато. Конечно, это первое впечатление, и понятно, что я не знаю видимо базовых классов, что сообразить.

Но пару вопросов: правильно я понимаю, что когда уже нажимается кнопка искать (для суффиксного массива) - срабатывает метод RFSArrayWAlgorithm::calculate(RFSArrayWSubtask* t) ?

Что собой представляют класс RFSArrayWSubtask ? И далее по коду есть класс CheckEdge ? Еще вы бы мне помогли, если подсказали бы в какой структуре хранится ДНК последовательность (т.е. где исходные данные, и как они попадают в метод (т.к. не через параметры - что несколько не хорошо на мой взгляд)) ?

И более общие вопросы: код вы сами пишите с нуля, или заимствуете частично из открытого кода других проектов? В частности как на счет именного этого плагина и что меня будет интересовать потом - 3D визуализатора .pdb файлов (третичных структур)? И как вы в принципе относитеть к такому заимствованию?

Просто в коде есть комментарий "Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA." - какое к этому вы имеете отношение (или это какая то стандартная отсылка по вопросам лицензирования?).

И пару вопросов по стилю:
1. Как вы относитесь к комментированию кода вообще, и к русским комментариям в частности (они у вас запрещены?)
2. На сколько для вас принципиально важен стиль расстановки скобок:

мой метод {
 тра-тата
}

и допустим ли такой:

мой метод
{
 тра-тата
}

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Feb 28th, 2013 at 3:44pm
Сергей,

я не без интереса посмотрел ваш сайт. Мне очень понравилось насколько полно там описаны ваши работы. В стиле "Сейчас мы вам кратко объясним что такое филогинетические деревья. А теперь перейдем к нашим разработкам". Я еще не все прочитал, но я уже успел посочувствовать РНК в ее мучительном фолдинге :)

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

В последовательности banan (или GATATA) мы найдем только непересекающиеся повторы и все повторы. То есть результатом будет и an и na, а пользователь уже пусть сам решит, какой его больше инетресует.


По поводу кода.
Да, в коде UGENE есть сложные моменты, но поиск повторов далеко не самый сложный участок, он просто требует какого-то времени для понимания.

1. Все равно алгоритмические участки выделены в отдельные модули и там работа идет с обычными типами дпнных в основном. И да, запускается  RFSArrayWAlgorithm::calculate(RFSArrayWSubtask* t).

2. RFSArrayWSubtask. У нас каждая задача запускается в отдельном потоке и RFSArrayWSubtask это подкласс-задача, которая запускает алгоритм поиска.

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

4. ДНК последовательность хранится в базе (U2Sequence). Но ее можно достать впамять (DNASequence). Потом получить последовательность, как массив символов, которые так и передаются алгоритму через параметры.

5. Код поиска повторов и код визуализиации 3D структур - наши разработки. Мы заимствуем код некоторых других алгоритмов, но оставляем ссылку на автора. Потому что лицензия позволяет

6. Все, что видно извне (документации, код, баг-трекер, форум) должно быть на английском. К скобкам не придираемся. Лично мне нравится Java-style.


Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Feb 28th, 2013 at 5:41pm
Вот пример не самого удачного поиска. Тут (code.google.com/p/vlabdownload/downloads/detail?name=NC_000117.fna.txt&can=2&q=#makechanges) геном одной бактерии. Ищем повторы более 50 символов.

UGENE
среди прочего находит

    repeat_unit     join(531463..531612,531613..531762)
                    /repeat_len=150
                    /repeat_dist=0
                    /repeat_homology(%)=100
    repeat_unit     join(531467..531616,531617..531766)
                    /repeat_len=150
                    /repeat_dist=0
                    /repeat_homology(%)=100

хотя на самом деле тут повторяется последовательность на 154 символа:
AGTGGTGGTGCAGCAGCAGCACTCAATTCTCTAAGAGGCTCCTCCTACAGCAATTATGACGATGCTGCTGCTGATTACGAGCCGATAAGAACTACTGAAAATATTTATGAGAGTATTGGTGGCTCTAGAACAAGTGGCCCAGAAAATACGAGTG

И проблема тут как следствие banana. Вы показываете два варианта: 1. они почему то сокращаются до 150 символов 2. Конечно на любителя - но эти два вариант идут не как альтернативы - а как равноправные вместе с другими. На мой взгляд альтернативы нужно исключать (как минимум помечать) - возможно по тому или иному принципу, который выберет пользователь. А так это просто недоисключенные внутренние повторы.

И еще вопрос - вы исключаете вложенные повторы отдельно от алгоритма поиска повторов (у вас есть в доп. настройках галочка - "не исключать вложенные повторы" для этого )? Это разные методы? Где можно найти код именно исключения вложенных повторов, и как вы его делаете вкратце можете рассказать? (просто именно тут, кажется может крыться некоторые нюансы).


Еще вот какое дело, попробовал я создать т.н. "вычислительную схему", т.е. поискать повторы в двух геномах, и записать аннотации. В итоге нашел в одном геноме 2, а во втором 0. Что явно не соответствует тому, что он ищет в ручном режиме.

Это какой то баг? Или я что-то не так сделал (даже не знаю что, если займетесь отошлю исходные данные, чтобы вы могли воспроизвести)

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Feb 28th, 2013 at 6:23pm
Сергей,

код исключения вложенных повторов лежит тут ugene\src\plugins\repeat_finder\src\FindRepeatsTask::filterNestedRepeats. Посмотрите, пожалуйста.

Повтор, который вы скопировали пересекается на AGTG. Вообще это корректно -  считать пересекающиеся повторы повторами?

А то, что схема не работает - это плохо... Проверьте, пожалуйста, параметры элемента Find Repeats. Если они совпадают с теми, что вы выставляете, когда используете диалог, но результаты разные, то это баг. Тогда вышлите исходные данные?


Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Feb 28th, 2013 at 6:54pm
Действительно со схемой устойчивый результат, я даже упростил. Попробуйте создать схему для указанного выше генома NC_000117.fna.txt, ищем более 50 символов, остальное все по умолчанию. Находит только 2 последовательности. Если у вас другой результат получится - будем думать почему у меня не так  :-/

Что касается пересекающихся повторов - то думаю это зависит от задачи экспериментатора (скажем для альтернативной трансляции, сплайсинга - важно изучить такого рода частичные пересечения). Этим как и дублирующими в примере banana - an, na,  надо уметь управлять.

Скажем, у меня исключение повторов ориентировалось на максимальную длину. У вас видимо на жесткость не пересечения последовательностей. Я допускаю что нужно и то и другое.

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Feb 28th, 2013 at 7:27pm
В любом случае, если у вас будет время/желание улучшить наш алгоритм  поиска повторов или какую-нибудь другую часть UGENE - пожалуйста. Мы включим ваш патч в ближайший релиз, а они у нас выходят часто. Даже если у вас появятся какие-нибудь идеи по улучшению - смело нам пишите!

А вы запускаете схему, которую я вложил в пост выше? Или вы просто собрали схему (Прочить последовательность)->(Найти повторы)->(Записать последовательность).

Я только что собрал второй вариант и проверил (вложено). Нашлось столько же повторов, сколько и в Sequence View - 6 пар. Проверьте, может у вас формат выходного файла стоит fasta. А нужно поставить тот, который поддерживает аннотации (genbank). Я добавлю issue, чтобы выводился warning, если пользователь пытается записать аннотации в формет, который их не поддерживает.
https://forum.ugene.net/forum/YaBB.pl?action=downloadfile;file=find_repeats.uwl (4 KB | )

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Feb 28th, 2013 at 10:47pm
попробуйте приложенную схему. Ваша у меня ТОЖЕ не работает. И у меня в ручном режиме находит 8 пар. Кстати, версия UGENE 1.11.4

    repeat_unit     join(51645..51712,51753..51820)
                    /repeat_len=68
                    /repeat_dist=40
                    /repeat_homology(%)=50
    repeat_unit     join(51734..51799,51842..51907)
                    /repeat_len=66
                    /repeat_dist=42
                    /repeat_homology(%)=50
    repeat_unit     join(531361..531461,531661..531761)
                    /repeat_len=101
                    /repeat_dist=199
                    /repeat_homology(%)=50
    repeat_unit     join(531361..531461,531511..531611)
                    /repeat_len=101
                    /repeat_dist=49
                    /repeat_homology(%)=50
    repeat_unit     join(531463..531612,531613..531762)
                    /repeat_len=150
                    /repeat_dist=0
                    /repeat_homology(%)=100
    repeat_unit     join(531467..531616,531617..531766)
                    /repeat_len=150
                    /repeat_dist=0
                    /repeat_homology(%)=100
    repeat_unit     join(853782..858690,875828..880736)
                    /repeat_len=4909
                    /repeat_dist=17137
                    /repeat_homology(%)=50
    repeat_unit     join(858699..859256,880744..881301)
                    /repeat_len=558
                    /repeat_dist=21487
                    /repeat_homology(%)=100


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

Еще не понятно что значит repeat_homology = 50% ?
https://forum.ugene.net/forum/YaBB.pl?action=downloadfile;file=test.uwl (5 KB | )

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Mar 1st, 2013 at 1:01pm
Я запустил вложенную схему. Сначала думал, что русские трансляции с ума сходят, но оказалось нет. Я запустил ее и у меня получился файл с аннотациями. Там 6 повторов, последние два из тех 8ми, что у вас находит не нашлись, потому что максимальное расстояние у них больше, чем в схеме указано. Последовательности там нету, потому что для этого нужно выбрать элемент Write Sequence. А у вас вобще никакого резлультат эта схема не выдает? Даже файл не создается?

Я убрал фильтр по максимальному расстояние в ручном режиме и у меня такой же результат как у вас получился.

50% homology это баг(https://ugene.unipro.ru/tracker/browse/UGENE-1474). Это процент гомологии между повторами. Мы допускаем какой-то процент замен, но в этом случае он неправильно показывается.

Я правильно понимаю, что вы хотите сделать фильтр, который в последовательности banana оставит только na или an? Или вы хотите модифицировать так, чтобы ana считалось повтором?

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 1st, 2013 at 1:28pm
Нет файл создается и находит две последовательности.

Я кажется понял в чем дело - там по умолчанию выставляется минимальная дистанция = 0, и поэтому он находит только такие. Еще повезло, что в примере как раз есть такое.

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

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 1st, 2013 at 1:52pm
Что касается фильтра. Там я предполагаю сделать следующие

http://biogenom.eu/?p=383

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

Т.е. в примере banana, будет найдена только ana, а na и an будет отфильтровано.

А в примере в геноме NC_000117 не будет последовательностей длиной 101 и 150 символов, а будет только на 154. Т.к. эти 4 последовательности на 101, 150 символов, так или иначе содержатся в последовательности 154.

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Mar 1st, 2013 at 2:32pm
Спасибо. Я тогда постараюсь что-нибудь сделать с параметрами, чтобы они были совпадающие с диалоговым окном и попробую другие значения по умолчанию.

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

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 1st, 2013 at 2:42pm

Yuriy Vaskin wrote on Mar 1st, 2013 at 2:32pm:
Ок, я понял, что вы хотите сделать. Если у вас будут какие-нибудь вопросы - пишите, пожалуйста.


Т.е. Вы согласны встроить такой фильтр в UGENE?

Еще я не писал серьезные диалоговые окна на C++, и смотрю вы использует тут файлы .ui . Чем Вы их редактируете? Есть какой нибудь визуальный редактор под windows ?  
Разобрался вопрос снят.

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Mar 1st, 2013 at 3:43pm
Конечно согласны! Вы довольно адекватно описываете, да и для биологам такой фильтр может быть полезен.

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

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 1st, 2013 at 3:54pm

Yuriy Vaskin wrote on Mar 1st, 2013 at 3:43pm:
Конечно согласны! Вы довольно адекватно описываете, да и для биологам такой фильтр может быть полезен.

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


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

enum RepeatsFilterAlgorithm {
   DontCrossedRepeats, /*это ваш метод*/
   DoNotFilter, /*это соответствует нажатой галочке*/
   UniqueRepeats /*это мой метод*/
};

И в комбо будет следующие

filterAlgorithms->addItem(tr("Don't crossed repeats"), DontCrossedRepeats);
filterAlgorithms->addItem(tr("Do not filter"), DoNotFilter);
filterAlgorithms->addItem(tr("Unique repeats"), UniqueRepeats);

поправьте если что не так.

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Mar 1st, 2013 at 4:05pm
Думаю, лучше будут такие переводы:

"Непересекающиеся повторы" - "Disjoint repeats"
"Уникальные повторы" - "Unique repeats"
"Без фильтрации" - "No filtering"

А в коде чем проще названия будут - тем лучше.

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Mar 1st, 2013 at 4:13pm
Сергей,

возможно недостаточно будет поменять метод FindRepeatsTask::filterNestedRepeats. Вполне вероятно, что фильтрация частично зашита в сам алгоритм и там стоят всякие условия/assert'ы. Их можно будет убрать. У нас есть функциональные тесты на поиск повторов и в дебаг-режиме каждый повтор проверяется специальным assert'ом (RFAlgorithmBase::checkResult), что это действительно повтор. Если у вас для любого алгоритма проходит эта проверка, то можно счтитать, что ничего не поломалось. А с функциональными тестами я потом сам разберусь.


Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 1st, 2013 at 5:14pm

Yuriy Vaskin wrote on Mar 1st, 2013 at 4:13pm:
Сергей,

возможно недостаточно будет поменять метод FindRepeatsTask::filterNestedRepeats. Вполне вероятно, что фильтрация частично зашита в сам алгоритм


Так и есть, в filterNestedRepeats result уже приходит отфильтрованный :)

я разберусь с этим, но тут надо будет несколько поменять старый код.

Главное, у меня получилось откомпилировать UGENE и запустить  без ошибок под дебагером :) .. можете поздравить :) ... дальше уже дело практики.

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

Или на форуме будем обсуждать?

А и у вас наверняка под контролем версий. GIT? Что и как мне скачивать, чтобы потом было легко коммитеть. Есть ли у вас ревью (ну, кто-то просматривает изменения и делает окончательный коммит в выпуск)?

Как вообще организован процесс разработки?

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Mar 1st, 2013 at 5:52pm
Для контроля версий у нас используется subversion. Самая простая программа тут - TortoiseSVN, думаю, вы и так в курсе. Лучше всего будет, если вы сделаете checkout отсюда https://ugene.unipro.ru/svn/ugene/trunk и будете вносить все изменения в этот код, а потом сделаете patch и пришлете нам.

Вот здесь находится наш трекер: https://ugene.unipro.ru/tracker/ Можете зарегистрироваться туда и создать туда issue. Но лучше я сам это сделаю. Когда вы реализуете алгоритм это issue перейдет в состояние resolved, где мы его протестируем, а потом в состояние tested, тут мы обновим документацию/перевод и еще раз проверим все. После этого issue закроется.

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

Помимо этого мы используем TeamCity, как Continious integration. У них бесплатные лицензии для open-source проектов.

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


P.S. Раньше, чтобы попасть к нам в команду, сборка UGENE была одним из испытаний :)

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 1st, 2013 at 6:27pm

SergeyJ wrote on Mar 1st, 2013 at 1:28pm:
Нет файл создается и находит две последовательности.

Я кажется понял в чем дело - там по умолчанию выставляется минимальная дистанция = 0, и поэтому он находит только такие. Еще повезло, что в примере как раз есть такое.


Меня не оставляет этот вопрос. Вроде так, да не так. Конечно плохо, что минимальную дистанцию нельзя поставить в "не ограниченно". Но мин. дистанция = 0 не должна все таки влиять. Вот если бы это была максимальная дистанция =0, тогда и находились бы только те повторы, которые находятся у меня.

Еще меня смущает, что у вас не совсем так. Может это зависеть от того, что я делал до этого?

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

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Mar 1st, 2013 at 6:41pm
я еще раз попробовал и мне удалось воспроизвести. Раньше я создавал схему на еще не выпущенной версии - там все нормально. А в 1.11.4 ошибка с максимальной дистанцией (Any). То есть в новой версии это уже поправлено. Но я сейчас проверю еще раз.

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 1st, 2013 at 7:22pm

Yuriy Vaskin wrote on Mar 1st, 2013 at 5:52pm:
Лучше всего будет, если вы сделаете checkout отсюда https://ugene.unipro.ru/svn/ugene/trunk и будете вносить все изменения в этот код


Правильно я понял, что промежуточные версии можно коммитеть прямо в trunk ? (ветки не используете?)

И еще такой вопрос (offtop) - а сколько активных людей у вас в команде, я смотрю не так много? И как вы это все подняли на такой нормальный уровень? Вы представляете какой-то институт, коммерческую фирму - или действительно команда энтузиастов? Ваш костяк команды работает 40 часов в неделю и на зарплате, или в своем большинстве как получается и бесплатно? Про если энтузисты то не верю что за 3 года сделали так много :)

Среди вас много реальных биологов? Почему вы решили делать UGENE?

upd. Извиняюсь за свою не осведомленность, но тут о вас http://unipro.ru/ru/about/history.html ? Это много объясняет - новосибирский гигант за этим стоит?  ;)
Но тогда не ясно почему это стал открытый проект? И вообще интересно какие взаимоотношения разработчиков UGENE с "новосибирским гигантом"? (ну вкратце  ::))

upd2. Кое-что почитал в нете, понял что структура у вас разветвленная  8-) .. Лучшие студенты, поддержка сильных мира сего и т.д. Но где она правда не ясно  ;)

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 1st, 2013 at 8:24pm

Yuriy Vaskin wrote on Mar 1st, 2013 at 5:52pm:
P.S. Раньше, чтобы попасть к нам в команду, сборка UGENE была одним из испытаний :)


Вам смешно :) А сколько я проектов пересобирал, и очень мало было тех где легко собрать. Ваш один из таких, которые легко ! (причем, я даже несколько удивлен качеству кода - сравнительно он лучше многих англо-продуктов .. впрочем недостатки я конечно найду ;) ) В общем если не против я помаленьку буду вливаться в вашу разработку принося туда свои идеи и код  8-)

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 2nd, 2013 at 11:40am

Yuriy Vaskin wrote on Mar 1st, 2013 at 5:52pm:
Для контроля версий у нас используется subversion. Самая простая программа тут - TortoiseSVN, думаю, вы и так в курсе. Лучше всего будет, если вы сделаете checkout отсюда https://ugene.unipro.ru/svn/ugene/trunk и будете вносить все изменения в этот код, а потом сделаете patch и пришлете нам.

Вот здесь находится наш трекер: https://ugene.unipro.ru/tracker/ Можете зарегистрироваться туда и создать туда issue. Но лучше я сам это сделаю.


На трекере зарегистрировался, но логин не проходит. А что на счет регистрации для коммитов в SVN?

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 2nd, 2013 at 1:26pm
Еще я что-то не могут разобраться с переводами.

запускаю

lupdate repeat_finder.pro перевод в .ts добавляется (я его перевожу), но он при запуске UGENE этот перевод остается не виден

что я не так делаю ?

Ну, а в остальном готово - могу коммитеть, если дадите доступ.

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Mar 4th, 2013 at 12:54pm

SergeyJ wrote on Mar 1st, 2013 at 7:22pm:

Yuriy Vaskin wrote on Mar 1st, 2013 at 5:52pm:
Лучше всего будет, если вы сделаете checkout отсюда https://ugene.unipro.ru/svn/ugene/trunk и будете вносить все изменения в этот код


Правильно я понял, что промежуточные версии можно коммитеть прямо в trunk ? (ветки не используете?)

И еще такой вопрос (offtop) - а сколько активных людей у вас в команде, я смотрю не так много? И как вы это все подняли на такой нормальный уровень? Вы представляете какой-то институт, коммерческую фирму - или действительно команда энтузиастов? Ваш костяк команды работает 40 часов в неделю и на зарплате, или в своем большинстве как получается и бесплатно? Про если энтузисты то не верю что за 3 года сделали так много :)

Среди вас много реальных биологов? Почему вы решили делать UGENE?

upd. Извиняюсь за свою не осведомленность, но тут о вас http://unipro.ru/ru/about/history.html ? Это много объясняет - новосибирский гигант за этим стоит?  ;)
Но тогда не ясно почему это стал открытый проект? И вообще интересно какие взаимоотношения разработчиков UGENE с "новосибирским гигантом"? (ну вкратце  ::))

upd2. Кое-что почитал в нете, понял что структура у вас разветвленная  8-) .. Лучшие студенты, поддержка сильных мира сего и т.д. Но где она правда не ясно  ;)


UGENE разробатывается в компании Unipro, в команде больше десяти штатных сотрудников. Работа хоть и с биологическими объектами, но, в основном техническая, не такая, как в институтах, например. Поэтому люди с IT-образованием с ней довольно успешно справляются.

А "новосибирский гигант" - это кто? :)

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Mar 4th, 2013 at 1:02pm

SergeyJ wrote on Mar 2nd, 2013 at 1:26pm:
Еще я что-то не могут разобраться с переводами.

запускаю

lupdate repeat_finder.pro перевод в .ts добавляется (я его перевожу), но он при запуске UGENE этот перевод остается не виден

что я не так делаю ?

Ну, а в остальном готово - могу коммитеть, если дадите доступ.


у нас еть branch, в котором мы только фиксим баги. Из него мы выпускаем частые биг-фикс релизы. И есть trunk, куда мы коммитим и баг фиксы и новые фичи. Оттуда релизы выходят редко. Так как вы разрабатываете фичу, то она пойдет в trunk.

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

Нам нужно сначла посмотреть на код и протестировать его, перед тем как коммитить. Вы не могли бы сделать патч на все ваши изменения (включая перевод) и прислать его?

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 4th, 2013 at 1:46pm

Yuriy Vaskin wrote on Mar 4th, 2013 at 1:02pm:
Нам нужно сначла посмотреть на код и протестировать его, перед тем как коммитить. Вы не могли бы сделать патч на все ваши изменения (включая перевод) и прислать его?


послал

Title: Re: Улучшение плагина Repeat Finder
Post by Yuriy Vaskin on Mar 4th, 2013 at 2:47pm
Сергей, я пробежался по вашему коду и мне понравилось :)

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

Еще есть один довольно запутанный момент с лицензией. Я напишу вам письмо.

Title: Re: Улучшение плагина Repeat Finder
Post by SergeyJ on Mar 4th, 2013 at 8:43pm
Пишите, давайте там же и обсудим тесты.

UGENE Forum » Powered by YaBB 2.5 AE!
YaBB Forum Software © 2000-2010. All Rights Reserved.