C++ implementation of PBWT-sec
This library provides for the implementation of the PBWT-sec [1].
- [1] K. Shimizu, K.Nuida, G. Rätsch, Efficient Privacy-Preserving String Search and an Application in Genomics doi: http://dx.doi.org/10.1101/018267.
- Intel 64-bit Core 2 Duo or newer Intel 64-bit CPUs
- 64-bit Linux (tested on ubuntu 13.10)
- gcc 4.8.1 + OpenSSL 1.0.1e + GMP 5.1.2
- clang++ 3.0 or newer
Create a working directory (e.g., work) and clone the following repositories.
mkdir work
cd work
git clone git://github.com/iskana/PBWT-sec.git
git clone git://github.com/herumi/xbyak.git
git clone git://github.com/herumi/mcl.git
git clone git://github.com/herumi/cybozulib.git
git clone git://github.com/herumi/cybozulib_ext.git
- Xbyak is a prerequisite for optimizing the operations in the finite field on Intel CPUs.
- OpenSSL and libgmp-dev are available via apt-get (or other similar commands).
cd PBWT-sec/src make
- use tcmalloc (optimal) for Linux; sudo apt-get install libgoogle-perftools-dev
* OpenSSL
* GMP (libgmp-dev)
Server:
mkdir /tmp/server
./server -m <num_of_threads> -f ../sample_dat/1000G.pbwt -r 2185 -c 10000 -d /tmp/server/ -k /tmp/server/
Client:
mkdir /tmp/client
./client -m <num_of_threads> -h hostname -q ../sample_dat/client_input -d /tmp/client/ -k /tmp/client/
1st line : A query bit string (e.g., 0000100010101000)
2nd line : A true column(allele) index to start the search
3rd line : Either a true column index or a decoy column index for each line
....
last line : -1
Copyright (C) 2015, Kana Shimizu All rights reserved.
PBWT-sec (files in this repository) is distributed under the [BSD 3-Clause License] (http://opensource.org/licenses/BSD-3-Clause "The BSD 3-Clause License").
Licenses of external libraries are listed as follows.
- Lifted-Elgamal: BSD-3-Clause
- cybozulib: BSD-3-Clause
- mie: BSD-3-Clause
- Xbyak: BSD-3-Clause
- MPIR: LGPL2
- OpenSSL: Apache License Version 1.0 + SSLeay License
Software including any of those libraries is allowed to be used for commercial purposes without releasing its source code as long as the regarding copyright statements described as follows are included in the software.
- This product includes software that was developed by an OpenSSL project in order to use OpenSSL toolkit.
- This product includes Lifted-Elgamal, cybozulib, mie, and Xbyak.
- This product includes MPIR.
- Kana Shimizu (shimizu.kana@waseda.jp)
- Gunnar Ratsch (Gunnar.Ratsch@ratschlab.org)
2015/Oct/26; initial version