Как я могу создать универсальную библиотеку Perl для обработки наборов данных? - PullRequest
1 голос
/ 21 марта 2010

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

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

Решения, которые я могу придумать:

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

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

Ответы [ 3 ]

1 голос
/ 21 марта 2010

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

0 голосов
/ 23 марта 2010

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

0 голосов
/ 22 марта 2010

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

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

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

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

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

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