Skip to content

Commit

Permalink
rename to gene-zip
Browse files Browse the repository at this point in the history
  • Loading branch information
EcoFreshKase committed Oct 3, 2023
1 parent 42eb999 commit ed5342c
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 30 deletions.
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "g-zip"
version = "0.1.0"
name = "gene-zip"
version = "1.0.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
Expand Down
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
# **g-zip**
# **gene-zip**

g-zip aims to be an easy to use program to convert between binary information and DNA sequences.
gene-zip aims to be an easy to use program to convert between binary information and DNA sequences.

## **What is g-zip used for?**
## **What is gene-zip used for?**
Every year humanity produces unimaginable quantities of data. Most of that data is digital data. For reference: in 2018, humans produced 64 zettabytes(10^21) of data and this number doubles every year. [source](https://rivery.io/blog/big-data-statistics-how-much-data-is-there-in-the-world/)

To store all of this data, researchers work on different methods to improve current storage technology or invent new ways to store data. One of these new ways to store data is DNA.

DNA has a potential storage density 100,000 times greater than that of traditional HDD's. [source](https://www.derstandard.de/story/2000077616743/bioinformatiker-dna-speicher-kann-man-nicht-hacken) (german article) To store binary data as DNA you have to convert binary to DNA. Here comes the use case of g-zip.
DNA has a potential storage density 100,000 times greater than that of traditional HDD's. [source](https://www.derstandard.de/story/2000077616743/bioinformatiker-dna-speicher-kann-man-nicht-hacken) (german article) To store binary data as DNA you have to convert binary to DNA. Here comes the use case of gene-zip.

With g-zip you can convert every file on your computer to a DNA sequence in a FASTA-file, use different algorithms to do that, add error-correcting codes, customize the FASTA-header and convert FASTA-files back to a binary file.
With gene-zip you can convert every file on your computer to a DNA sequence in a FASTA-file, use different algorithms to do that, add error-correcting codes, customize the FASTA-header and convert FASTA-files back to a binary file.

## **Examples**
Suppose you are a scientist working on a new method to store DNA containing binary information. To do that, you have to convert a file into a DNA sequence. But how do you convert a file to DNA? You could make a program that does the conversion for you yourself, but why should you waste your time making it from scratch when there already is a program doing exactly that for you? You could use the gained time to polish your research even further before publishing.

In this case, you could use g-zip (or at least I hope it could be someday) to convert your file to DNA and synthesize it to test your storage method.
In this case, you could use gene-zip (or at least I hope it could be someday) to convert your file to DNA and synthesize it to test your storage method.

## **Installation**
Download the 1.0.0 g-zip installer executable. Execute the file. The installer takes you through each steep and should be easy to understand.
Download the 1.0.0 gene-zip installer executable. Execute the file. The installer takes you through each steep and should be easy to understand.
If you have any problems with the installation use the options described in the "Get in contact" Section to get help.

Maybe you don't trust some sketchy executable on the internet. I can understand this. In this case you need more technical knowledge.

First of all, fork the Repository. Check the source code for harmful code. Compile the rust code in release mode. (Make sure you have rustc 1.70.0 or a newer version installed as this is the version used to compile the code) Add the path to the executable in "g-zip installer.iss". Install [Inno Setup](https://jrsoftware.org/isdl.php) and create the installer. Use the installer to install g-zip.
First of all, fork the Repository. Check the source code for harmful code. Compile the rust code in release mode. (Make sure you have rustc 1.70.0 or a newer version installed as this is the version used to compile the code) Add the path to the executable in "gene-zip installer.iss". Install [Inno Setup](https://jrsoftware.org/isdl.php) and create the installer. Use the installer to install gene-zip.

## **Features**
### **1. DNA⇔Binary Conversion**
Expand Down Expand Up @@ -55,23 +55,23 @@ Current possibilities for customization:
I would recommend always using the last two options, in case you forget which one you used. (better safe than sorry!)

## **Usage**
If you follow this tutorial you will learn how to use g-zip. If there are any problems, consider the possibilities described in the **Get in contact** section.
If you follow this tutorial you will learn how to use gene-zip. If there are any problems, consider the possibilities described in the **Get in contact** section.

In this tutorial you will convert your first file to DNA, convert it back to your original file and learn about the possibilities g-zip provides.
In this tutorial you will convert your first file to DNA, convert it back to your original file and learn about the possibilities gene-zip provides.

---
1. right-click the file you want to convert
2. select 'Start g-zip'
2. select 'Start gene-zip'

You should now see the following screen:
![g-zip after start up](README_images/g-zip_after_start.png)
![gene-zip after start up](README_images/gene-zip_after_start.png)

---

This section explains how you can configure the conversion to your needs.
![g-zip and each feature is numbered](README_images/g-zip_feature_highlight.png)
![gene-zip and each feature is numbered](README_images/gene-zip_feature_highlight.png)

1. This shows you the path to the file you opened with g-zip on top and below is the path the new converted file will be saved in. g-zip tries by default to save the new file in the same directory as the original file. You can change that, as well as the name and extension of the file, by simply writing into the textbox.
1. This shows you the path to the file you opened with gene-zip on top and below is the path the new converted file will be saved in. gene-zip tries by default to save the new file in the same directory as the original file. You can change that, as well as the name and extension of the file, by simply writing into the textbox.

2. Here you can select the type of error correction you want to use.

Expand All @@ -88,15 +88,15 @@ You hopefully have a understanding by now of how you can configure the conversio
---

I will explain how you can convert your fasta file back to your original file:
1. right click the fasta file and select 'Start g-zip'
1. right click the fasta file and select 'Start gene-zip'
2. Change the file extension in the save path at the top of the screen to your original file format to avoid any confusion later (e.g. if you converted a .txt file change .fasta to .txt)
3. Select the error correcting code you used while encoding
4. Select 'Decode' if it is not already
5. Select the decode algorithm for the algorithm you used for encoding
6. Press 'Convert'

## **Roadmap**
g-zip is still under development. I still have many things I want to add. Here is a list of things I want to add in the future:
gene-zip is still under development. I still have many things I want to add. Here is a list of things I want to add in the future:
* File selection with via the windows explorer
* improve the performance of easy-encode/easy-decode
* more algorithms to convert between binary and dna
Expand All @@ -106,9 +106,9 @@ g-zip is still under development. I still have many things I want to add. Here i
## **Get in contact**
If you have any suggestions for the UI, have any problems, need more possibilities for DNA⇔Binary Conversion or have something on your mind you want to share, feel free to open an issue describing whatever is on your mind or send me a message on discord (eco_fresh_kaese)

If you use g-zip in a real world situation (e.g. a situation similar to the one described in Examples) please let me know I would be really happy to know if this small program could help someone.
If you use gene-zip in a real world situation (e.g. a situation similar to the one described in Examples) please let me know I would be really happy to know if this small program could help someone.

## **Contributing**
Feel free to work on an issue and make a pull request. I would be really happy if more people would work on my little project (~ ̄▽ ̄)~

A good first contribution would be to add a new error-correcting code or a new algorithm to convert between DNA and binary. Issue #23 describes how to add a new algorithm to g-zip.
A good first contribution would be to add a new error-correcting code or a new algorithm to convert between DNA and binary. Issue #23 describes how to add a new algorithm to gene-zip.
8 changes: 4 additions & 4 deletions g-zip installer.iss
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "g-zip"
#define MyAppName "gene-zip"
#define MyAppVersion "1.0.0"
#define MyAppExeName "g-zip.exe"
#define MyAppExeName "gene-zip.exe"
#define MyAppAssocName MyAppName
#define MyAppAssocExt ".fasta"
#define MyAppAssocKey MyAppAssocName
#define ExecutablePath ; Add Path to the executable (absolute or relative to this file)
#define ExecutablePath "C:\Users\alexa\Desktop\Coding Projekte\g-zip\gene-zip\target\release\gene-zip.exe" ; Add Path to the executable (absolute or relative to this file)

[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
Expand All @@ -22,7 +22,7 @@ DisableProgramGroupPage=yes
InfoBeforeFile=infobefore.txt
InfoAfterFile=infoafter.txt
PrivilegesRequired=admin
OutputBaseFilename=g-zip installer
OutputBaseFilename=gene-zip installer
; SetupIconFile=icon.ico ; Remove this comment to add an Icon to the Installer
Compression=lzma
SolidCompression=yes
Expand Down
6 changes: 3 additions & 3 deletions infoafter.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Thank you for using g-zip.
Thank you for using gene-zip.

Right-click a file you want to convert to a DNA-sequence. Click "start g-zip". Configure the conversion to your liking and click convert. Congratulation, you have now converted you first file to a DNA-sequence.
Right-click a file you want to convert to a DNA-sequence. Click "start gene-zip". Configure the conversion to your liking and click convert. Congratulation, you have now converted you first file to a DNA-sequence.
To convert a DNA-sequence to a binary file. Follow the same steps.

Check the github repository of g-zip for further information on how to use g-zip: https://github.com/EcoFreshKase/g-zip
Check the github repository of gene-zip for further information on how to use gene-zip: https://github.com/EcoFreshKase/gene-zip
4 changes: 2 additions & 2 deletions infobefore.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
g-zip aims to be an easy to use program to convert between binary information and dna-sequences.
gene-zip aims to be an easy to use program to convert between binary information and dna-sequences.

For further information check the github repository of g-zip: https://github.com/EcoFreshKase/g-zip
For further information check the github repository of gene-zip: https://github.com/EcoFreshKase/gene-zip
2 changes: 1 addition & 1 deletion src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ fn main() {

//GUI creation
let main_window = WindowDesc::new(gui_builder::build_ui())
.title("g-zip")
.title("gene-zip")
.resizable(false)
.window_size(WINDOW_SIZE);
let initial_state = gui_builder::AppState::AppState {
Expand Down

0 comments on commit ed5342c

Please sign in to comment.