diff options
author | Arun Isaac | 2025-07-17 17:59:17 +0100 |
---|---|---|
committer | Arun Isaac | 2025-07-17 20:51:54 +0100 |
commit | d270d35cbfe9bc94d1bef16a63e3ca89e87e739e (patch) | |
tree | 75f0e67a8895c1b12fe8dacce7569d270f53123c | |
parent | d785cb61a6f19003d76986a36cd4f4b7a6e21f5d (diff) | |
download | pyhegp-d270d35cbfe9bc94d1bef16a63e3ca89e87e739e.tar.gz pyhegp-d270d35cbfe9bc94d1bef16a63e3ca89e87e739e.tar.lz pyhegp-d270d35cbfe9bc94d1bef16a63e3ca89e87e739e.zip |
Document usage instructions and workflow.
* doc/workflow.uml, doc/workflow.png, doc/generate-images.sh: New
files.
* README.md (How to use): New section.
-rw-r--r-- | README.md | 22 | ||||
-rwxr-xr-x | doc/generate-images.sh | 3 | ||||
-rw-r--r-- | doc/workflow.png | bin | 0 -> 27569 bytes | |||
-rw-r--r-- | doc/workflow.uml | 16 |
4 files changed, 41 insertions, 0 deletions
@@ -14,6 +14,28 @@ Install the development version of pyhegp into the virtual environment. pip install git+https://github.com/encryption4genetics/pyhegp ``` +# How to use + + + +Data owners generate summary statistics for their data. +``` +pyhegp summary genotype.csv -o summary.txt +``` +They share this with the data broker who pools it to compute the summary statistics of the complete dataset. +``` +pyhegp pool -o complete-summary.txt summary1.txt summary2.txt ... +``` +The data broker shares these summary statistics with the data owners. The data owners standardize their data using these summary statistics, and encrypt their data using a random key. +``` +pyhegp encrypt -s complete-summary.txt -o encrypted-genotype.csv genotype.csv +``` +Finally, the data owners share the encrypted data with the broker who concatenates it and shares it with all parties. +``` +pyhegp cat -o complete-encrypted-genotype.csv encrypted-genotype1.csv encrypted-genotype2.csv ... +``` +Note that all data sharing is carried out-of-band and is outside the scope of `pyhegp`. + # Run tests Run the test suite using diff --git a/doc/generate-images.sh b/doc/generate-images.sh new file mode 100755 index 0000000..e1ee0ba --- /dev/null +++ b/doc/generate-images.sh @@ -0,0 +1,3 @@ +#! /bin/sh + +cat workflow.uml | guix shell plantuml -- plantuml -p > workflow.png diff --git a/doc/workflow.png b/doc/workflow.png Binary files differnew file mode 100644 index 0000000..b2ff1b2 --- /dev/null +++ b/doc/workflow.png diff --git a/doc/workflow.uml b/doc/workflow.uml new file mode 100644 index 0000000..2d1542c --- /dev/null +++ b/doc/workflow.uml @@ -0,0 +1,16 @@ +actor "Data Broker" as broker +actor "Data Owner 1" as owner1 +actor "Data Owner 2" as owner2 +actor "Data Owner 3" as owner3 +owner1 -> broker: Send summary statistics +owner2 -> broker: Send summary statistics +owner3 -> broker: Send summary statistics +broker --> owner1: Send pooled statistics +broker --> owner2: Send pooled statistics +broker --> owner3: Send pooled statistics +owner1 -> broker: Encrypt and share ciphertext +owner2 -> broker: Encrypt and share ciphertext +owner3 -> broker: Encrypt and share ciphertext +broker -> owner1: Share concatenated ciphertext +broker -> owner2: Share concatenated ciphertext +broker -> owner3: Share concatenated ciphertext |