2010-03-21 2 views
1

Я хочу создать общий модуль Perl для обработки и анализа наборов данных, разделенных биомедицитами, и которые могут быть наиболее определенными для любых типов наборов данных, содержащих смесь категориальных (A, B, C, ..) и непрерывных (1,2,3,881 ..) и идентификатор (XXX1, XXX2 ...). План состоит в том, чтобы люди инициализировали модуль, а затем использовали некоторые аргументы, чтобы указать на файл (ы) данных, место, где должны быть размещены отчеты анализа, и структура данных.Как создать общую библиотеку Perl для обработки данных?

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

Решения я могу думать о том, является:

  • Создайте файл конфигурации в XML или аналогичном и с предварительно заданной формой.
  • Передача информации во время инициализации модуля.
  • Используйте первую строку данных в качестве заголовков и попытаться угадать типы (УЧ)

Конечно, должно быть «канонический» способ сделать это, которое также можно использовать и эффективно.

+0

Итак, «общий» означает «только то, что я делаю»? :) –

+0

Это перекрестная реклама на Perlmonks - http://perlmonks.org/?node_id=829939 – daotoad

ответ

1

Это не отвечает на ваш вопрос напрямую, но вы проверили CPAN? У него может быть необходимый модуль. В противном случае он может иметь похожие модули, связанные либо с биомедицинскими данными, либо просто с разделительной обработкой данных, которые вы можете использовать для хороших идей, как относительно форматов метаданных, так и API вашего модуля.

0

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

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

Например, если мне просто нужно ввести имена столбцов и их типы (и есть только 4 четко определенных типа), делать это каждый раз в скрипте не так уж плохо. Если у меня нет 350 столбцов для работы в каждом файле.

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

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

0

rx, возможно, стоит посмотреть, а также модуль Data::Rx на CPAN. Он обеспечивает проверку схемы для JSON, но нет ничего присущего модели, которая делает ее только JSON.

Смежные вопросы