2강 / 20강

상자를 여는 법 — HDF5 안에는 폴더가 들어 있다

h5py 로 열고 · 구조를 통째로 훑기

상자를 여는 법 — HDF5 안에는 폴더가 들어 있다
.h5 는 파일 하나에 통째로 들어간 폴더 구조입니다. 안에 그룹이 있고, 그룹 안에 데이터셋이 있습니다.

CSV라면 그냥 열면 됩니다. 첫 줄이 제목, 다음 줄부터 값. 그런데 HDF5 는 다릅니다. 왜 이런 형식을 쓸까요?

세포 40,100개 × 유전자 32,285개를 CSV로 적으면 숫자가 12억 9천만 개입니다. 한 칸에 한 글자만 써도 1.3 GB, 실제로는 2~3 GB가 됩니다. 게다가 그 중 96%가 0 이에요. 0을 저장하려고 3 GB를 쓰는 셈이죠. 그리고 유전자 이름, 바코드, 참조 유전체 이름 같은 부속 정보는 어디에 둘까요? CSV 한 장으로는 담을 곳이 없습니다.

HDF5(Hierarchical Data Format 5)는 이 두 문제를 한 번에 풉니다. 파일 하나 안에 폴더 구조를 넣고, 각 칸을 압축해서 저장합니다.

우리가 아는 폴더

그룹(Group) = 폴더
데이터셋(Dataset) = 파일
속성(Attribute) = 파일에 붙인 메모

탐색기에서 폴더를 여는 것과 똑같이 생각하면 됩니다
GSE268555 의 h5 안

matrix/ 라는 폴더 하나
그 안에 data · indices · indptr · shape · barcodes
그리고 features/ 라는 하위 폴더

10x Genomics 가 정한 표준 배치입니다
최상위에는 matrix 하나뿐입니다. 10x 형식의 h5 는 모두 이렇게 생겼습니다.
Python 브라우저에서 실행
이 여덟 줄짜리 함수가 이 강의에서 가장 자주 쓰게 될 도구입니다. 처음 보는 h5 를 받으면 무조건 이것부터 돌립니다.
Python 브라우저에서 실행
실제 파일 구조를 눌러 가며 펼쳐 보세요. 각 데이터셋이 무엇을 담고 있고 왜 그 모양인지 함께 나옵니다.
불러오는 중…
여기에 적힌 chemistry_description 과 software_version 이 곧 결정적인 단서가 됩니다.
Python 브라우저에서 실행
🤔 확인 문제
HDF5 를 CSV 대신 쓰는 가장 큰 이유 두 가지는?
🤔 확인 문제
h5py.File(...) 을 with 문으로 여는 이유는?
🤔 확인 문제
파일 속성의 CellRanger 버전(7.0.1)과 GEO 설명글(2.1.0)이 다를 때 어느 쪽을 믿어야 할까요?