🧬 streq
Python utilities for working with nucleotide sequence strings.
Installation
The easy way
Install the pre-compiled version from PyPI:
pip install streq
From source
Clone the repository, then cd into it. Then run:
pip install -e .
Usage
Streq provides various utility functions in Python for working with nucleotide sequences. Sequences can be upper or lower case, and case will be preserved through transformations.
Transformations
Reverse complement.
>>> import streq as sq
>>>
>>> sq.reverse_complement('ATCG')
'CGAT'
Convert between RNA and DNA alphabets.
>>> sq.to_rna('ATCG')
'AUCG'
>>> sq.to_dna('AUCG')
'ATCG'
Slice circular sequences such as plasmids or bacterial genomes.
>>> sq.Circular('ATCG')[-1:3]
'GATC'
>>> sq.reverse_complement(sq.Circular('ATCG'))[-1:3]
'CGAT'
Cases are preserved throughout the transformations.
>>> sq.reverse_complement(sq.Circular('ATCg'))
'cGAT'
Calculations
Get GC and pyrimidine content.
>>> sq.gc_content('AGGG')
0.75
>>> sq.pyrimidine_content('AUGGG')
0.2
Get autocorrelation (rough indicator for secondary structure).
>>> sq.correlation('AACC')
0.0
>>> sq.correlation('AAATTT')
2.3
>>> sq.correlation('AAATTCT')
1.3047619047619046
>>> sq.correlation('AAACTTT')
1.9238095238095236
Wobble base-pairing can be taken into account.
>>> correlation('GGGTTT')
0.0
>>> correlation('GGGTTT', wobble=True)
2.3
>>> correlation('GGGUUU', wobble=True)
2.3
Provide a second sequence to get correlation between sequences.
>>> sq.correlation('AAA', 'TTT')
0.0
>>> sq.correlation('AAA', 'AAA')
3.0
Distances
Calculate Levenshtein (insert, delete, mutate) distance.
>>> sq.levenshtein('AAATTT', 'AAATTT')
0
>>> sq.levenshtein('AAATTT', 'ACTTT')
2
>>> sq.levenshtein('AAAG', 'TCGA')
4
Calculate Hamming (mismatch) distance.
>>> sq.hamming('AAA', 'ATA')
1
>>> sq.hamming('AAA', 'ATT')
2
>>> sq.hamming('AAA', 'TTT')
3
Search
Search sequences using IUPAC symbols and iterate through the results.
>>> for (start, end), match in sq.find_iupac('ARY', 'AATAGCAGTGTGAAC'):
... print(f"Found ARY at {start}:{end}: {match}")
...
Found ARY at 0:3: AAT
Found ARY at 3:6: AGC
Found ARY at 6:9: AGT
Found ARY at 12:15: AAC
Find common Type IIS restriction sites:
>>> sq.which_re_sites('AAAGAAG')
()
>>> sq.which_re_sites('AAAGAAGAC')
('BbsI',)
>>> sq.which_re_sites('AAAGAAGACACCTGC')
('BbsI', 'PaqCI')
Documentation
Check the API here.
Metadata
Release files for streq 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| streq-0.0.4.tar.gz | 10.3 kB | Without provenance | Details for streq-0.0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| streq-0.0.4-py3-none-any.whl | Python 3 | none | any | Details for streq-0.0.4-py3-none-any.whl |
Total release size: 20.2 kB
Release files / streq-0.0.4.tar.gz
| Download URL | streq-0.0.4.tar.gz |
|---|---|
| Size | 10.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
694b5146e6e36a9c65da3ee68627378865861b4e4930dd323e44528f1d935327
|
|
BLAKE2b-256 checksum How to use checksums |
c80741f23cb60027b7ad5c9d2f3687fecc6b69c72dc26c744b58a1a39a8be831
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / streq-0.0.4-py3-none-any.whl
| Download URL | streq-0.0.4-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6b4996a8f084c8ef799b6a54ff78004b92fd11f8532e60ec51807f5c2b01e45a
|
|
BLAKE2b-256 checksum How to use checksums |
3c41ca5b6ca4ff39ea4718e4ef08099561c26ecea48567d09c209e9f6c3db793
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Security for streq 0.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.