TL, DR
Apa praktik terbaik yang diterima dalam lingkaran komputasi ilmiah untuk menyimpan sejumlah besar data terstruktur secara hierarkis? Sebagai contoh, SQL tidak bermain dengan baik dengan matriks jarang yang besar. Apakah ada alat yang bagus untuk penataan, pergudangan, dan analisis data seperti ini? Apa yang orang-orang di LHC gunakan?
Gunakan detail kasus
Saya ingin menyimpan data dari simulasi protein sesuai dengan hierarki berikut:
protein
|__simulation conditions
|____|__residues
|____|____|__conformers
|____|____|____|__atoms
Setiap protein harus mengetahui masing-masing residunya, setiap atom harus mengetahui kondisi yang digunakan untuk simulasi, dll. Dan sebaliknya.
Awalnya saya mengira bahwa database relasional akan sempurna untuk aplikasi ini, jadi saya menulis sebuah program menggunakan python dan sqlalchemey yang menyimpan data dalam database SQL. Namun dalam praktiknya, program ini tidak berfungsi dengan baik.
Masalah terbesar berkaitan dengan fakta bahwa ada matriks N x N pada tingkat data konformer yang menyimpan energi potensial karena interaksi berpasangan antara setiap pasangan konformer yang mungkin. Sebagian besar entri dalam matriks adalah nol, jadi saya menyimpan matriks dalam tabel terpisah dalam database dalam bentuk format yang jarang, satu baris per entri. Sayangnya, untuk simulasi yang melibatkan beberapa ribu konformer, tabel berpasangan masih berakhir dengan beberapa ratus ribu baris dan:
a) membangun dan permintaan dengan sangat lambat (jam)
b) membutuhkan urutan lebih banyak ruang pada hard drive saya daripada representasi data teks biasa yang setara sebagai matriks non-jarang
c) membutuhkan lebih dari sepuluh gigabyte memori saat tabel dibaca ke dalam memori
Tujuan utama saya adalah untuk menyimpan puluhan ribu lintasan (berasal dari ribuan protein dalam beberapa lusin kondisi simulasi) dalam basis data sehingga semuanya dapat dianalisis bersama. Ini berarti bahwa tabel yang mewakili matriks berpasangan kemungkinan akan tumbuh sekitar satu miliar baris. Saat ini sepertinya saya akan membutuhkan Cray atau monster memori bersama lainnya untuk menjalankan satu query pada database ini.
Apakah saya punya opsi yang lebih baik di sini? Apa yang orang-orang di LHC gunakan?
Penggunaan database sangat bagus untuk membantu Anda mengatur / menemukan data simulasi (Cari berdasarkan protein, cari berdasarkan parameter simulasi). Basis data kemudian akan memberi tahu Anda di mana menemukan informasi yang relevan pada disk, di mana saya bayangkan kemungkinan besar tersimpan dengan baik pada setiap proses simulasi dalam jenis file apa pun yang paling nyaman untuk dimuat untuk analisis (apakah khusus atau dari suite simulasi mana pun yang Anda sedang menggunakan).
Ini akan memungkinkan Anda dengan cepat menemukan simulasi yang Anda inginkan, dan memberi Anda kebebasan / kinerja menggunakan matriks jarang atau alat apa pun yang Anda butuhkan untuk melakukan analisis yang efisien.
sumber
Lihat apakah TextMaster Data Editor PRO mungkin bisa membantu Anda. http://exnp.com/TM/
sumber