Я работаю с набором данных генов, который изначально хранится в формате HDF5.Он имеет формат, аналогичный приведенному ниже (я добавил несколько произвольных чисел и генов, чтобы проиллюстрировать, как это выглядит).Таким образом, у него есть гены в качестве атрибута строки и основная цифровая матрица, содержащая числовые данные.Столбцы будут представлять повторы, то есть разные ячейки.
У меня есть другой файл, который содержит список генов, которые меня интересуют (ниже представлен my_gene_list в качестве примера).То, что я хотел бы сделать, это извлечь числовые данные для генов, которые меня интересуют , а также соответствующего гена , либо в виде структурированного массива, либо в pandas DataFrame (т.е. имеяген как индекс).
Gene ...
RP11-.3 1 2 3 0 7 0 0 0 ...
FAM138A 2 0 1 0 6 0 0 0 ...
CACNA1C 3 0 6 0 5 0 0 0 ...
RP11-.7 4 0 8 0 4 0 0 0 ...
RP11-.8 5 0 9 0 3 0 0 0 ...
FO538.2 6 0 2 0 2 0 0 0 ...
AP006.2 7 0 0 0 1 0 0 0 ...
... ... ... ... ... ... ... ... ...
my_gene_list=['CACNA1C', 'RP11-.7']
Используя цикл for, я могу извлечь числовые данные для каждого гена в моем списке.Я знаю, что это работает, поскольку я попытался напечатать и ген, и соответствующий массив.
for element in my_gene_list:
set[set.ra.Gene==element] # set is the name of the whole dataset
Однако по понятным причинам я также хочу знать, какая строка принадлежит какому гену, и именно здесь я застрял,Я не знаю, как хранить фактические результаты, как я хотел бы, показанные внизу.Это относится как к самому массиву, так и к соответствующему имени гена.
FAM138A 2 0 1 0 6 0 0 0 ...
RP11-.7 4 0 8 0 4 0 0 0 ...
Я изучал, как сделать это в совершенно отдельных шагах, используя списки, словари, многократно добавляя к фрейму данных, но я бы хотелметод, который гарантирует поддержание порядка (как генный-массив, так и столбцы в самом массиве.
Я попытался добавить выходной массив после цикла for в качестве списка, а затем сделать массив из спискаиспользуя 'np.asarray', но по какой-то причине я до сих пор не понимаю, в результате получился 3-мерный массив, и на данный момент я недостаточно опытен в numpy (или Python в этом отношении), чтобы преобразовать его в 2dмассив и гарантировать, что порядок не испорчен. Даже если я делаю это таким образом, у меня все еще нет имен генов. Я думаю, я мог бы сделать то же самое для них, а затем создать панду DataFrame изчисловые данные и добавьте имена генов в один и тот же DataFrame. Будет ли порядок в этом случае сохраняться на протяжении всего?
Повторюсь, приведенный выше код является лишь примером, набор данных, который я использую, содержит около 28 000 генов, а в моем списке около 50, поэтому я спрашиваю, как это сделать.
Надеюсь, мой вопрос понятен.Я сделал все возможное, чтобы объяснить это правильно.Если что-то неясно, пожалуйста, дайте мне знать.Заранее большое спасибо!