seq_tools
A Python package for manipulating and analyzing nucleic acid sequences (DNA and RNA) in pandas DataFrames.
Features
- Batch operations: Work with sequences in pandas DataFrames for efficient processing
- Sequence manipulation: Convert between DNA/RNA, reverse complement, add sequences
- Structure prediction: Fold RNA sequences using ViennaRNA
- Analysis tools: Calculate molecular weights, extinction coefficients, edit distances
- CLI interface: Command-line tools for quick sequence operations
- Python API: Full programmatic access to all functionality
Installation
pip install rna_seq_tools
Quick Start
Command Line Interface
# Get help
seq-tools --help
# Convert RNA to DNA
seq-tools to-dna "AUCG"
# Fold RNA sequence
seq-tools fold "GGGGUUUUCCCC"
# Calculate molecular weight
seq-tools mw "ATCG"
Python API
import pandas as pd
from seq_tools import sequences_to_dataframe, fold, get_molecular_weight_df, to_rna_df
# Create a DataFrame from sequences
sequences = ["ATCG", "GCTA", "AAAA"]
df = sequences_to_dataframe(sequences)
# Convert to RNA
df = to_rna_df(df)
# Fold RNA sequences
df = fold(df)
# Calculate molecular weights
df = get_molecular_weight_df(df, "RNA", double_stranded=False)
print(df)
Single Sequence Functions
For single sequence operations, import from the sequence module:
from seq_tools.sequence import to_dna, to_rna, get_reverse_complement, get_molecular_weight
# Convert sequences
rna_seq = to_rna("ATCG") # Returns "AUCG"
dna_seq = to_dna("AUCG") # Returns "ATCG"
# Reverse complement
rc = get_reverse_complement("ATCG", "DNA") # Returns "CGAT"
# Molecular weight
mw = get_molecular_weight("ATCG", "DNA") # Returns 1307.80
CLI Commands
add
Add a sequence to the 5' and/or 3' end of sequences.
seq-tools add -p5 "AAAA" "GGGGUUUUCCCC"
seq-tools add -p5 "AAAA" -p3 "CCCC" input.csv
ec
Calculate the extinction coefficient for each sequence.
seq-tools ec "GGGGUUUUCCCC"
seq-tools ec input.csv -nt RNA -ds # RNA, double-stranded
edit-distance
Calculate the average edit distance of a sequence library.
seq-tools edit-distance input.csv
seq-tools edit-distance input.csv --parallel --workers 4
fold
Fold RNA sequences using ViennaRNA.
seq-tools fold "GGGGUUUUCCCC"
seq-tools fold input.csv
mw
Calculate the molecular weight for each sequence.
seq-tools mw "ATCG"
seq-tools mw input.csv -nt DNA -ds # DNA, double-stranded
rc
Calculate reverse complement for each sequence.
seq-tools rc "ATCG"
seq-tools rc input.csv -nt DNA
to-dna
Convert RNA sequences to DNA (replace U with T).
seq-tools to-dna "AUCG"
seq-tools to-dna input.csv -o output.csv
to-dna-template
Convert RNA sequences to DNA template with T7 promoter.
seq-tools to-dna-template "AUCG"
seq-tools to-dna-template input.csv
to-rna
Convert DNA sequences to RNA (replace T with U).
seq-tools to-rna "ATCG"
seq-tools to-rna input.csv
transcribe
Transcribe DNA template sequences to RNA (removes T7 promoter).
seq-tools transcribe input.csv
trim
Trim 5'/3' ends of sequences.
seq-tools trim input.csv --start 5 --end 3
to-fasta
Generate FASTA file from CSV.
seq-tools to-fasta input.csv output.fasta
to-opool
Generate oligo pool file (Excel) from CSV.
seq-tools to-opool input.csv "pool_name" output.xlsx
DataFrame Functions
The package provides comprehensive DataFrame operations:
- Conversion:
to_dna_df(),to_rna_df(),to_dna_template_df() - Analysis:
get_molecular_weight_df(),get_extinction_coeff(),get_length() - Structure:
fold()- predict RNA secondary structures - Manipulation:
add(),trim(),get_reverse_complement_df() - Generation:
generate_random_sequences(),generate_mutated_sequences() - Validation:
has_t7_promoter(),has_5p_sequence(),has_3p_sequence() - File I/O:
to_fasta(),to_opool()
See the notebooks directory for detailed examples.
Requirements
- Python 3.9+
- pandas
- numpy
- ViennaRNA (for structure prediction)
- editdistance
- click
- tabulate
Tutorial Notebooks
Interactive Jupyter notebooks are available in the notebooks/ directory:
- 01_introduction.ipynb: Package overview and quick start
- 02_sequence_operations.ipynb: Working with individual sequences
- 03_structure_analysis.ipynb: RNA folding and structure analysis
- 04_dataframe_operations.ipynb: Batch processing with DataFrames
- 05_advanced_features.ipynb: Advanced features and workflows
See the notebooks README for more details.
Development
# Clone the repository
git clone https://github.com/jyesselm/seq_tools.git
cd seq_tools
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install in editable mode
pip install -e .
# Run tests
pytest test/ -v
License
This project is licensed under a Non-Commercial License. Commercial use is prohibited. See LICENSE file for details.
For commercial licensing inquiries, please contact jyesselm@unl.edu.
Author
Joe Yesselman - jyesselm@unl.edu
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Metadata
Release files for rna-seq-tools 0.10.0
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 | |
|---|---|---|---|---|
| rna_seq_tools-0.10.0.tar.gz | 569.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rna_seq_tools-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 594.7 kB
Release files / rna_seq_tools-0.10.0.tar.gz
| Download URL | rna_seq_tools-0.10.0.tar.gz |
|---|---|
| Size | 569.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2717af156759eed32c78d837b967a0583895613096dfe4b53d2449096cfde26c
|
|
BLAKE2b-256 checksum How to use checksums |
21efde59f387ea5dfe5caa14c7e036ed9ca0f26e7b27ce1821d92a57f51314f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / rna_seq_tools-0.10.0-py3-none-any.whl
| Download URL | rna_seq_tools-0.10.0-py3-none-any.whl |
|---|---|
| Size | 25.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b192a58b1755f2a4c55bcaac5bd81cf01ecfa3e4411f7b60d69cd54c1a51f94e
|
|
BLAKE2b-256 checksum How to use checksums |
736b629158ad2d7d096080ea44405ce191cad1b01fc0215677045c6e853ed61c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Security for rna-seq-tools 0.10.0
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.