seguid-calculator


Nameseguid-calculator JSON
Version 1.27 PyPI version JSON
download
home_pagehttps://github.com/BjornFJohansson/seguid_calculator#seguid_calculator
SummaryCalculates SEGUID, cSEGUID & lSEGUID checksums for biological sequences
upload_time2023-04-17 11:19:19
maintainer
docs_urlNone
authorBjörn Johansson
requires_python
licenseLICENSE.txt
keywords bioinformatics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # seguid_calculator

[![Conda Package](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/build_conda.yml/badge.svg)](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/build_conda.yml)
[![Setuptools Package](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/build_setuptools.yml/badge.svg)](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/build_setuptools.yml)
[![Pytest](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/test.yml/badge.svg)](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/test.yml)
[![Pyinstaller](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/pyinstaller.yml/badge.svg?branch=master)](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/pyinstaller.yml)

![seguid_calculator_small.png](seguid_calculator_small.png "seguid_calculator")

Seguid_calculator is a GUI for calculating the uSEGUID, lSEGUID and cSEGUID checksums for a biological sequence (DNA, RNA or protein).

## Installation

The quickest way to use seguid_calculator is by downloading one of the apps, they requre no installation at all. They are available [here](https://github.com/BjornFJohansson/seguid_calculator/releases/latest). Pick the correct file for your system:

| OS            |         | File                              |
|---------------|---------|-----------------------------------|
| ![](win2.png) | Windows | **seguid_calculator.exe**         |
| ![](mac2.png) | macOS   | **seguid_calculator_for_mac.zip** |
| ![](tux2.png) | Linux   | **seguid_calculator**             |

No DEB or RPM packages yet. Please let me know if they are needed. These apps and packages are built automatically using Github actions. There is also an online version (see links at the end of this page.

## Source installation

Installation from pypi:

    pip install seguid_calculator

## What does it do ?

The SEGUID checksum is defined as the [base64](https://en.wikipedia.org/wiki/Base64#URL_applications) encoded 
[SHA-1](http://en.wikipedia.org/wiki/SHA-1) cryptographic hash of a 
primary biological sequence in uppercase. SEGUID was suggested by [Babnigg and Giometti ](http://www.ncbi.nlm.nih.gov/pubmed/16858731)
as a way to provide stable identifiers of protein sequences in databases for cross referencing.

There are several implementations of SEGUID calculation available, such as the one in [Biopython](http://biopython.org/wiki/Main_Page).
[Bio.SeqUtils.CheckSum](http://biopython.org/DIST/docs/api/Bio.SeqUtils.CheckSum-module.html).
See [slides](https://www.nature.com/articles/npre.2007.278.1) and the Biopython
[wiki](https://biopython.org/wiki/SeqIO#Using_the_SEGUID_checksum).

See also this blog [post](http://wiki.christophchamp.com/index.php/SEGUID) on the subject.

## uSEGUID

uSEGUID is a [base64url](https://en.wikipedia.org/wiki/Base64#URL_applications) encoded version
of SHA-1 where forward slash and plus ("/" , "+") characters of standard base64 are 
replaced by '-' and '_'. This makes it possible to use the checksum as a part of a URL.

## cSEGUID

Circular uSEGUID or cSEGUID is the uSEGUID checksum for circular (DNA) sequences. As there are many permutations
of a circular sequence, the use of the uSEGUID checksum directly is impractical as there would be many checksums for the
same sequence. The cSEGUID is defined as the SEGUID of the [lexicographically minimal string rotation](http://en.wikipedia.org/wiki/Lexicographically_minimal_string_rotation)
of a sequence or its reverse complement (whichever is lexicographically smaller). The cSEGUID provide a unique and stable identifier for circular sequences, such as [plasmids](http://en.wikipedia.org/wiki/Plasmid).

### Example

The cSEGUID checksum can be useful to quickly determine if two sequences refer to the same plasmid vector.
The sequence of the plasmid pFA6a-GFPS65T-kanMX6 is available from [Genbank](http://www.ncbi.nlm.nih.gov/nuccore/AJ002682)
and from other sources such as the [Forsburg lab](http://www-bcf.usc.edu/~forsburg/), sequence [here](http://www-bcf.usc.edu/~forsburg/GFPS65T.html), a copy of which was saved [here](https://gist.github.com/BjornFJohansson/d394362134338d5f1ff0).

Both sequences are the same size and claim to describe the same vector. Analysis of both sequences in seguid_calculator proves that both sequences are in fact representations of the same sequence by their identical cSEGUIDs:

#### Genbank

![alt text](https://raw.githubusercontent.com/BjornFJohansson/seguid_calculator/master/genbank.png "seguid_calculator")

#### Forsburg

![alt text](https://raw.githubusercontent.com/BjornFJohansson/seguid_calculator/master/forsburg.png "seguid_calculator")

## lSEGUID

The lSEGUID is the uSEGUID of the lexicographically smallest of the sense or anti-sense strands of a blunt double stranded DNA sequence. This means
that if a sequence and its reverse compliment have the same lSEGUIDs. This can be useful to identify double stranded DNA sequences,
regardless of the form they are presented.

## Implementation

Seguid_calculator is written in python 3 with wxPython 4 which is the only dependence. Development happens on [Github](https://github.com/BjornFJohansson/seguid_calculator).

## Online version

There is also an online version built with [flask](https://github.com/pallets/flask) and hosted on [pythonanywhere](https://www.pythonanywhere.com/).

[![seguid_calculator_flask](seguid_calculator_flask.png)](http://seguidcalculator.pythonanywhere.com/)

Click [here](http://seguidcalculator.pythonanywhere.com/) or on the image above to take you to the website.


### How to install on pythonanywhere:
```
16:33 ~ $ mkvirtualenv --python=python3.9 MyVirtualenv                                                                 
created virtual environment CPython3.9.5.final.0-64 in 13108ms                                                         
  creator CPython3Posix(dest=/home/seguidcalculator/.virtualenvs/MyVirtualenv, clear=False, no_vcs_ignore=False, global
=False)                                                                                                                
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/seguidca
lculator/.local/share/virtualenv)                                                                                      
    added seed packages: pip==21.3, setuptools==58.2.0, wheel==0.37.0                                                  
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator            
virtualenvwrapper.user_scripts creating /home/seguidcalculator/.virtualenvs/MyVirtualenv/bin/predeactivate             
virtualenvwrapper.user_scripts creating /home/seguidcalculator/.virtualenvs/MyVirtualenv/bin/postdeactivate            
virtualenvwrapper.user_scripts creating /home/seguidcalculator/.virtualenvs/MyVirtualenv/bin/preactivate               
virtualenvwrapper.user_scripts creating /home/seguidcalculator/.virtualenvs/MyVirtualenv/bin/postactivate              
virtualenvwrapper.user_scripts creating /home/seguidcalculator/.virtualenvs/MyVirtualenv/bin/get_env_details           
(MyVirtualenv) 16:36 ~ $ pip install flask flask-wtf wtforms                                                           
Looking in links: /usr/share/pip-wheels                                                                                
Collecting flask                                                                                                       
  Downloading Flask-2.2.2-py3-none-any.whl (101 kB)                                                                    
     |████████████████████████████████| 101 kB 2.1 MB/s                                                                
Collecting flask-wtf                                                                                                   
(MyVirtualenv) 16:37 ~ $                                                                                               
(MyVirtualenv) 16:40 ~ $ git checkout https://github.com/BjornFJohansson/seguid_calculator.git                         
fatal: not a git repository (or any parent up to mount point /home)                                                    
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).                                             
(MyVirtualenv) 16:43 ~ $ git clone https://github.com/BjornFJohansson/seguid_calculator.git                            
Cloning into 'seguid_calculator'...                                                                                    
remote: Enumerating objects: 1555, done.
remote: Counting objects: 100% (441/441), done.
remote: Compressing objects: 100% (159/159), done.
remote: Total 1555 (delta 236), reused 437 (delta 232), pack-reused 1114
Receiving objects: 100% (1555/1555), 76.46 MiB | 53.41 MiB/s, done.                                                    
Resolving deltas: 100% (879/879), done.                                                                                
Updating files: 100% (48/48), done.                                                                                    
(MyVirtualenv) 16:44 ~ $ ls                                                                                            
README.txt  seguid_calculator                                                                                          
(MyVirtualenv) 16:44 ~ $
```
        

![](pyany_setting1.png)


![](pyany_settings2.png)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/BjornFJohansson/seguid_calculator#seguid_calculator",
    "name": "seguid-calculator",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "bioinformatics",
    "author": "Bj\u00f6rn Johansson",
    "author_email": "bjorn_johansson@bio.uminho.pt",
    "download_url": "https://files.pythonhosted.org/packages/6f/28/d7f36a752c219b5f31d79fa73aca78a4427c8f509b74c5d6bc414cda68a0/seguid_calculator-1.27.tar.gz",
    "platform": null,
    "description": "# seguid_calculator\n\n[![Conda Package](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/build_conda.yml/badge.svg)](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/build_conda.yml)\n[![Setuptools Package](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/build_setuptools.yml/badge.svg)](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/build_setuptools.yml)\n[![Pytest](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/test.yml/badge.svg)](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/test.yml)\n[![Pyinstaller](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/pyinstaller.yml/badge.svg?branch=master)](https://github.com/BjornFJohansson/seguid_calculator/actions/workflows/pyinstaller.yml)\n\n![seguid_calculator_small.png](seguid_calculator_small.png \"seguid_calculator\")\n\nSeguid_calculator is a GUI for calculating the uSEGUID, lSEGUID and cSEGUID checksums for a biological sequence (DNA, RNA or protein).\n\n## Installation\n\nThe quickest way to use seguid_calculator is by downloading one of the apps, they requre no installation at all. They are available [here](https://github.com/BjornFJohansson/seguid_calculator/releases/latest). Pick the correct file for your system:\n\n| OS            |         | File                              |\n|---------------|---------|-----------------------------------|\n| ![](win2.png) | Windows | **seguid_calculator.exe**         |\n| ![](mac2.png) | macOS   | **seguid_calculator_for_mac.zip** |\n| ![](tux2.png) | Linux   | **seguid_calculator**             |\n\nNo DEB or RPM packages yet. Please let me know if they are needed. These apps and packages are built automatically using Github actions. There is also an online version (see links at the end of this page.\n\n## Source installation\n\nInstallation from pypi:\n\n    pip install seguid_calculator\n\n## What does it do ?\n\nThe SEGUID checksum is defined as the [base64](https://en.wikipedia.org/wiki/Base64#URL_applications) encoded \n[SHA-1](http://en.wikipedia.org/wiki/SHA-1) cryptographic hash of a \nprimary biological sequence in uppercase. SEGUID was suggested by [Babnigg and Giometti ](http://www.ncbi.nlm.nih.gov/pubmed/16858731)\nas a way to provide stable identifiers of protein sequences in databases for cross referencing.\n\nThere are several implementations of SEGUID calculation available, such as the one in [Biopython](http://biopython.org/wiki/Main_Page).\n[Bio.SeqUtils.CheckSum](http://biopython.org/DIST/docs/api/Bio.SeqUtils.CheckSum-module.html).\nSee [slides](https://www.nature.com/articles/npre.2007.278.1) and the Biopython\n[wiki](https://biopython.org/wiki/SeqIO#Using_the_SEGUID_checksum).\n\nSee also this blog [post](http://wiki.christophchamp.com/index.php/SEGUID) on the subject.\n\n## uSEGUID\n\nuSEGUID is a [base64url](https://en.wikipedia.org/wiki/Base64#URL_applications) encoded version\nof SHA-1 where forward slash and plus (\"/\" , \"+\") characters of standard base64 are \nreplaced by '-' and '_'. This makes it possible to use the checksum as a part of a URL.\n\n## cSEGUID\n\nCircular uSEGUID or cSEGUID is the uSEGUID checksum for circular (DNA) sequences. As there are many permutations\nof a circular sequence, the use of the uSEGUID checksum directly is impractical as there would be many checksums for the\nsame sequence. The cSEGUID is defined as the SEGUID of the [lexicographically minimal string rotation](http://en.wikipedia.org/wiki/Lexicographically_minimal_string_rotation)\nof a sequence or its reverse complement (whichever is lexicographically smaller). The cSEGUID provide a unique and stable identifier for circular sequences, such as [plasmids](http://en.wikipedia.org/wiki/Plasmid).\n\n### Example\n\nThe cSEGUID checksum can be useful to quickly determine if two sequences refer to the same plasmid vector.\nThe sequence of the plasmid pFA6a-GFPS65T-kanMX6 is available from [Genbank](http://www.ncbi.nlm.nih.gov/nuccore/AJ002682)\nand from other sources such as the [Forsburg lab](http://www-bcf.usc.edu/~forsburg/), sequence [here](http://www-bcf.usc.edu/~forsburg/GFPS65T.html), a copy of which was saved [here](https://gist.github.com/BjornFJohansson/d394362134338d5f1ff0).\n\nBoth sequences are the same size and claim to describe the same vector. Analysis of both sequences in seguid_calculator proves that both sequences are in fact representations of the same sequence by their identical cSEGUIDs:\n\n#### Genbank\n\n![alt text](https://raw.githubusercontent.com/BjornFJohansson/seguid_calculator/master/genbank.png \"seguid_calculator\")\n\n#### Forsburg\n\n![alt text](https://raw.githubusercontent.com/BjornFJohansson/seguid_calculator/master/forsburg.png \"seguid_calculator\")\n\n## lSEGUID\n\nThe lSEGUID is the uSEGUID of the lexicographically smallest of the sense or anti-sense strands of a blunt double stranded DNA sequence. This means\nthat if a sequence and its reverse compliment have the same lSEGUIDs. This can be useful to identify double stranded DNA sequences,\nregardless of the form they are presented.\n\n## Implementation\n\nSeguid_calculator is written in python 3 with wxPython 4 which is the only dependence. Development happens on [Github](https://github.com/BjornFJohansson/seguid_calculator).\n\n## Online version\n\nThere is also an online version built with [flask](https://github.com/pallets/flask) and hosted on [pythonanywhere](https://www.pythonanywhere.com/).\n\n[![seguid_calculator_flask](seguid_calculator_flask.png)](http://seguidcalculator.pythonanywhere.com/)\n\nClick [here](http://seguidcalculator.pythonanywhere.com/) or on the image above to take you to the website.\n\n\n### How to install on pythonanywhere:\n```\n16:33 ~ $ mkvirtualenv --python=python3.9 MyVirtualenv                                                                 \ncreated virtual environment CPython3.9.5.final.0-64 in 13108ms                                                         \n  creator CPython3Posix(dest=/home/seguidcalculator/.virtualenvs/MyVirtualenv, clear=False, no_vcs_ignore=False, global\n=False)                                                                                                                \n  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/seguidca\nlculator/.local/share/virtualenv)                                                                                      \n    added seed packages: pip==21.3, setuptools==58.2.0, wheel==0.37.0                                                  \n  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator            \nvirtualenvwrapper.user_scripts creating /home/seguidcalculator/.virtualenvs/MyVirtualenv/bin/predeactivate             \nvirtualenvwrapper.user_scripts creating /home/seguidcalculator/.virtualenvs/MyVirtualenv/bin/postdeactivate            \nvirtualenvwrapper.user_scripts creating /home/seguidcalculator/.virtualenvs/MyVirtualenv/bin/preactivate               \nvirtualenvwrapper.user_scripts creating /home/seguidcalculator/.virtualenvs/MyVirtualenv/bin/postactivate              \nvirtualenvwrapper.user_scripts creating /home/seguidcalculator/.virtualenvs/MyVirtualenv/bin/get_env_details           \n(MyVirtualenv) 16:36 ~ $ pip install flask flask-wtf wtforms                                                           \nLooking in links: /usr/share/pip-wheels                                                                                \nCollecting flask                                                                                                       \n  Downloading Flask-2.2.2-py3-none-any.whl (101 kB)                                                                    \n     |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 101 kB 2.1 MB/s                                                                \nCollecting flask-wtf                                                                                                   \n(MyVirtualenv) 16:37 ~ $                                                                                               \n(MyVirtualenv) 16:40 ~ $ git checkout https://github.com/BjornFJohansson/seguid_calculator.git                         \nfatal: not a git repository (or any parent up to mount point /home)                                                    \nStopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).                                             \n(MyVirtualenv) 16:43 ~ $ git clone https://github.com/BjornFJohansson/seguid_calculator.git                            \nCloning into 'seguid_calculator'...                                                                                    \nremote: Enumerating objects: 1555, done.\nremote: Counting objects: 100% (441/441), done.\nremote: Compressing objects: 100% (159/159), done.\nremote: Total 1555 (delta 236), reused 437 (delta 232), pack-reused 1114\nReceiving objects: 100% (1555/1555), 76.46 MiB | 53.41 MiB/s, done.                                                    \nResolving deltas: 100% (879/879), done.                                                                                \nUpdating files: 100% (48/48), done.                                                                                    \n(MyVirtualenv) 16:44 ~ $ ls                                                                                            \nREADME.txt  seguid_calculator                                                                                          \n(MyVirtualenv) 16:44 ~ $\n```\n        \n\n![](pyany_setting1.png)\n\n\n![](pyany_settings2.png)\n",
    "bugtrack_url": null,
    "license": "LICENSE.txt",
    "summary": "Calculates SEGUID, cSEGUID & lSEGUID checksums for biological sequences",
    "version": "1.27",
    "split_keywords": [
        "bioinformatics"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d431a15409a8955aa2c26badc3ee22fdd293058c4a455efccbf8cd1097fa7c19",
                "md5": "28ee0084223e72a4816d0a3dbde59898",
                "sha256": "ee6b57a74a9c9318eae353e48a3227fe63da7423b7415ad6b1195609054bc1f4"
            },
            "downloads": -1,
            "filename": "seguid_calculator-1.27-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "28ee0084223e72a4816d0a3dbde59898",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 29049,
            "upload_time": "2023-04-17T11:19:17",
            "upload_time_iso_8601": "2023-04-17T11:19:17.569512Z",
            "url": "https://files.pythonhosted.org/packages/d4/31/a15409a8955aa2c26badc3ee22fdd293058c4a455efccbf8cd1097fa7c19/seguid_calculator-1.27-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6f28d7f36a752c219b5f31d79fa73aca78a4427c8f509b74c5d6bc414cda68a0",
                "md5": "e67ddab41aadd836d3dca3ad121aec4a",
                "sha256": "528169beb91aa80e34649d3bae67bfd8f0225ab70dc38ae4046fe7e546c9fc5c"
            },
            "downloads": -1,
            "filename": "seguid_calculator-1.27.tar.gz",
            "has_sig": false,
            "md5_digest": "e67ddab41aadd836d3dca3ad121aec4a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 489029,
            "upload_time": "2023-04-17T11:19:19",
            "upload_time_iso_8601": "2023-04-17T11:19:19.328040Z",
            "url": "https://files.pythonhosted.org/packages/6f/28/d7f36a752c219b5f31d79fa73aca78a4427c8f509b74c5d6bc414cda68a0/seguid_calculator-1.27.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-17 11:19:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "BjornFJohansson",
    "github_project": "seguid_calculator#seguid_calculator",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "seguid-calculator"
}
        
Elapsed time: 0.09001s