Как мне создать объект AnnData из матрицы подсчета фреймов данных pandas?

Я пытаюсь использовать пакет Scanpy Python для анализа некоторых данных одной ячейки. Я прочитал матрицу подсчета (файл.tsv) как фрейм данных Pandas, в котором гены являются столбцами, а строки - разными ячейками. Каждая строка содержит количество различных генов для одной клетки. Я хотел бы создать объект AnnData из фрейма данных Pandas... кто-нибудь знает, как я могу это сделать? К сожалению, я не могу предоставить набор данных.

3 ответа

Вы можете преобразовать свой DataFrame df в AnnData adata Сюда:

      adata = anndata.AnnData(X: df.iloc[1:,1:],
                        obs: df.iloc[:,0:1],
                        var: df.iloc[0:1,:])

Но на самом деле этого делать не нужно. Вместо этого прочтите файл tsv напрямую в объект AnnData:

      with open("your_tsv_file.tsv") as your_data:
    adata = anndata.read_csv(your_data, delimiter='\t')

Прямое решение:

      adata = sc.AnnData(counts_df)

Вот мой ответ, который работает сscanpy 1.9.1

      adata = sc.AnnData(df, 
    df.index.to_frame(), 
    df.columns.to_frame())

Вторая запись — имена клеток, третья запись — имена генов.

Другие вопросы по тегам