Thực hành tốt nhất để lưu trữ dữ liệu mô phỏng phân cấp


13

TL, DR

Thực tiễn tốt nhất được chấp nhận trong giới tính toán khoa học để lưu trữ số lượng lớn dữ liệu có cấu trúc phân cấp là gì? Ví dụ, SQL không chơi độc đáo với ma trận thưa thớt lớn. Có một công cụ tốt ngoài kia để cấu trúc, lưu kho và phân tích loại dữ liệu này không? Những kẻ ở LHC sử dụng cái gì?

Chi tiết ca sử dụng

Tôi muốn lưu trữ dữ liệu từ mô phỏng protein theo phân cấp sau:

protein
  |__simulation conditions
  |____|__residues
  |____|____|__conformers
  |____|____|____|__atoms

Mỗi protein nên nhận thức được từng dư lượng của nó, mọi nguyên tử nên biết các điều kiện được sử dụng cho mô phỏng của nó, v.v. và ngược lại.

Ban đầu tôi đoán rằng một cơ sở dữ liệu quan hệ sẽ hoàn hảo cho ứng dụng này, và vì vậy tôi đã viết một chương trình sử dụng python và sqlalchemey lưu trữ dữ liệu trong cơ sở dữ liệu SQL. Trong thực tế, tuy nhiên, chương trình này không hoạt động tốt.

Vấn đề lớn nhất liên quan đến thực tế là có một ma trận N x N ở mức dữ liệu tuân thủ lưu trữ năng lượng tiềm tàng do sự tương tác theo cặp giữa mỗi cặp tuân thủ có thể. Hầu hết các mục trong ma trận là số không, vì vậy tôi đang lưu trữ ma trận trong một bảng riêng biệt trong cơ sở dữ liệu theo một định dạng thưa thớt, mỗi hàng một mục. Thật không may, đối với một mô phỏng liên quan đến vài nghìn tuân thủ, bảng cặp vẫn kết thúc với vài trăm nghìn hàng và:

a) xây dựng và truy vấn rất chậm (giờ)
b) chiếm một không gian lớn hơn trên ổ cứng của tôi so với biểu diễn văn bản đơn giản tương đương của dữ liệu dưới dạng ma trận không thưa thớt
c) chiếm hơn mười gigabyte bộ nhớ khi bảng được đọc vào bộ nhớ

Mục tiêu cuối cùng của tôi là lưu trữ hàng chục nghìn lượt chạy (xuất phát từ hàng ngàn protein trong vài chục điều kiện mô phỏng) trong cơ sở dữ liệu để tất cả chúng có thể được phân tích cùng nhau. Điều này có nghĩa là bảng biểu thị các ma trận cặp có thể sẽ tăng lên khoảng một tỷ hàng. Hiện tại có vẻ như tôi sẽ cần một Cray hoặc một số quái vật có bộ nhớ chia sẻ khác để thậm chí chạy một truy vấn duy nhất trên cơ sở dữ liệu này.

Tôi có lựa chọn nào tốt hơn ở đây không? Những kẻ ở LHC sử dụng cái gì?

Câu trả lời:


12

Xem xét sử dụng định dạng tệp HDF5 . HDF5 là một định dạng lưu trữ dữ liệu phân cấp với một số tính năng hay:

  • lưu trữ độc lập nền tảng: thư viện sẽ chăm sóc cho bạn
  • bố cục phân cấp của bộ dữ liệu: như hệ thống tệp trong tệp
  • lưu trữ mảng n chiều lớn, có thể phát triển
  • loại dữ liệu hỗn hợp có thể tồn tại trong một tệp (ví dụ: số nguyên, số float, v.v.)
  • tự động nén có sẵn
  • lưu trữ nhị phân
  • song song i / o

Có các giao diện C và Fortran, cũng như các hàm bao Python ( h5pypytables ). MATLAB cũng có thể đọc HDF5. HDF5 khá linh hoạt, gần như là một lỗi, nghĩa là nó không "tự mô tả", do đó tạo ra XDMF .

Tôi không chắc chính xác ý của bạn về "điều kiện được sử dụng cho mô phỏng của nó", nhưng nếu đây chỉ là những tập hợp nhỏ các tham số bạn có thể lưu trữ chúng dưới dạng các thuộc tính .


3
Liên kết hai chiều trong HDF5 là một chút khó khăn để duy trì. Vì các định dạng HDF5 chỉ bằng một nửa so với chính bạn, bạn cũng có thể xem xét việc duy trì siêu dữ liệu trong cơ sở dữ liệu quan hệ và giữ dữ liệu nặng hơn trong các tệp riêng biệt (HDF5 nếu bạn muốn).
Jed Brown

0

Việc sử dụng cơ sở dữ liệu rất tốt để giúp bạn tổ chức / tìm dữ liệu mô phỏng (Tìm kiếm theo protein, tìm kiếm theo thông số mô phỏng). Sau đó, cơ sở dữ liệu sẽ cho bạn biết nơi tìm thông tin liên quan trên đĩa, nơi tôi tưởng tượng nó có khả năng được lưu trữ tốt nhất trên cơ sở chạy mô phỏng theo bất kỳ loại tệp nào thuận tiện nhất để tải để phân tích (cho dù bạn tùy chỉnh hay từ bất kỳ bộ mô phỏng nào đang sử dụng).

Điều này sẽ cho phép bạn nhanh chóng tìm thấy các mô phỏng bạn muốn và cung cấp cho bạn sự tự do / hiệu suất của việc sử dụng ma trận thưa thớt hoặc bất kỳ công cụ nào bạn cần để phân tích hiệu quả.


-8

Xem liệu TextMaster Data Editor PRO có thể giúp ích cho bạn không. http://exnp.com/TM/


2
Nina, chào mừng bạn đến với SciComp! Bạn có thể giải thích lý do tại sao phần mềm này có thể hữu ích? Ngoài ra, xin vui lòng tiết lộ liên kết của bạn. Cộng đồng có xu hướng nhăn mặt khi quảng bá mà không có đóng góp lớn hơn cho trang web; xem phần này của FAQ để biết chi tiết .
Geoff Oxberry
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.