Skip to main content

Fast random access to sequences fromplain and gzipped FASTA/Q file

Project description

Action Readthedocs Codecov PyPI Wheel Codacy Language Pyver Downloads License Bioconda

Citation: Lianming Du, Qin Liu, Zhenxin Fan, Jie Tang, Xiuyue Zhang, Megan Price, Bisong Yue, Kelei Zhao. Pyfastx: a robust Python package for fast random access to sequences from plain and gzipped FASTA/Q files. Briefings in Bioinformatics, 2021, 22(4):bbaa368.

Introduction

The pyfastx is a lightweight Python C extension that enables users to randomly access to sequences from plain and gzipped FASTA/Q files. This module aims to provide simple APIs for users to extract seqeunce from FASTA and reads from FASTQ by identifier and index number. The pyfastx will build indexes stored in a sqlite3 database file for random access to avoid consuming excessive amount of memory. In addition, the pyfastx can parse standard (sequence is spread into multiple lines with same length) and nonstandard (sequence is spread into one or more lines with different length) FASTA format. This module used kseq.h written by @attractivechaos in klib project to parse plain FASTA/Q file and zran.c written by @pauldmccarthy in project indexed_gzip to index gzipped file for random access.

This project was heavily inspired by @mdshw5’s project pyfaidx and @brentp’s project pyfasta.

Features

  • Single file for the Python extension

  • Lightweight, memory efficient for parsing FASTA/Q file

  • Fast random access to sequences from gzipped FASTA/Q file

  • Read sequences from FASTA file line by line

  • Calculate N50 and L50 of sequences in FASTA file

  • Calculate GC content and nucleotides composition

  • Extract reverse, complement and antisense sequences

  • Excellent compatibility, support for parsing nonstandard FASTA file

  • Support for FASTQ quality score conversion

  • Provide command line interface for splitting FASTA/Q file

Installation

Currently, pyfastx supports Python 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14. Make sure you have installed both pip and Python before starting.

You can install pyfastx via the Python Package Index (PyPI)

pip install pyfastx

Update pyfastx module

pip install -U pyfastx

FASTX

New in pyfastx 0.8.0.

Pyfastx provide a simple and fast python binding for kseq.h to iterate over sequences or reads in fasta/q file. The FASTX object will automatically detect the input sequence format (fasta or fastq) to return different tuple.

FASTA sequences iteration

When iterating over sequences on FASTX object, a tuple (name, seq) will be returned.

>>> fa = pyfastx.Fastx('tests/data/test.fa.gz')
>>> for name,seq in fa:
>>>     print(name)
>>>     print(seq)

>>> #always output uppercase sequence
>>> for item in pyfastx.Fastx('tests/data/test.fa', uppercase=True):
>>>     print(item)

>>> #Manually specify sequence format
>>> for item in pyfastx.Fastx('tests/data/test.fa', format="fasta"):
>>>     print(item)

If you want the sequence comment, you can set comment to True, New in pyfastx 0.9.0.

>>> fa = pyfastx.Fastx('tests/data/test.fa.gz', comment=True)
>>> for name,seq,comment in fa:
>>>     print(name)
>>>     print(seq)
>>>     print(comment)

The comment is the content of header line after the first white space or tab character.

FASTQ reads iteration

When iterating over reads on FASTX object, a tuple (name, seq, qual) will be returned.

>>> fq = pyfastx.Fastx('tests/data/test.fq.gz')
>>> for name,seq,qual in fq:
>>>     print(name)
>>>     print(seq)
>>>     print(qual)

If you want the read comment, you can set comment to True, New in pyfastx 0.9.0.

>>> fq = pyfastx.Fastx('tests/data/test.fq.gz', comment=True)
>>> for name,seq,qual,comment in fq:
>>>     print(name)
>>>     print(seq)
>>>     print(qual)
>>>     print(comment)

The comment is the content of header line after the first white space or tab character.

FASTA

Read FASTA file

Read plain or gzipped FASTA file and build index, support for random access to FASTA.

>>> import pyfastx
>>> fa = pyfastx.Fasta('test/data/test.fa.gz')
>>> fa
<Fasta> test/data/test.fa.gz contains 211 seqs

FASTA records iteration

The fastest way to iterate plain or gzipped FASTA file without building index, the iteration will return a tuple contains name and sequence.

>>> import pyfastx
>>> for name, seq in pyfastx.Fasta('test/data/test.fa.gz', build_index=False):
>>>     print(name, seq)

You can also iterate sequence object from FASTA object like this:

>>> import pyfastx
>>> for seq in pyfastx.Fasta('test/data/test.fa.gz'):
>>>     print(seq.name)
>>>     print(seq.seq)
>>>     print(seq.description)

Iteration with build_index=True (default) return sequence object which allows you to access attributions of sequence. New in pyfastx 0.6.3.

Get FASTA information

>>> # get sequence counts in FASTA
>>> len(fa)
211

>>> # get total sequence length of FASTA
>>> fa.size
86262

>>> # get GC content of DNA sequence of FASTA
>>> fa.gc_content
43.529014587402344

>>> # get GC skew of DNA sequences in FASTA
>>> # New in pyfastx 0.3.8
>>> fa.gc_skew
0.004287730902433395

>>> # get composition of nucleotides in FASTA
>>> fa.composition
{'A': 24534, 'C': 18694, 'G': 18855, 'T': 24179}

>>> # get fasta type (DNA, RNA, or protein)
>>> fa.type
'DNA'

>>> # check fasta file is gzip compressed
>>> fa.is_gzip
True

Get longest and shortest sequence

New in pyfastx 0.3.0

>>> # get longest sequence
>>> s = fa.longest
>>> s
<Sequence> JZ822609.1 with length of 821

>>> s.name
'JZ822609.1'

>>> len(s)
821

>>> # get shortest sequence
>>> s = fa.shortest
>>> s
<Sequence> JZ822617.1 with length of 118

>>> s.name
'JZ822617.1'

>>> len(s)
118

Calculate N50 and L50

New in pyfastx 0.3.0

Calculate assembly N50 and L50, return (N50, L50), learn more about N50,L50

>>> # get FASTA N50 and L50
>>> fa.nl(50)
(516, 66)

>>> # get FASTA N90 and L90
>>> fa.nl(90)
(231, 161)

>>> # get FASTA N75 and L75
>>> fa.nl(75)
(365, 117)

Get sequence mean and median length

New in pyfastx 0.3.0

>>> # get sequence average length
>>> fa.mean
408

>>> # get seqeunce median length
>>> fa.median
430

Get sequence counts

New in pyfastx 0.3.0

Get counts of sequences whose length >= specified length

>>> # get counts of sequences with length >= 200 bp
>>> fa.count(200)
173

>>> # get counts of sequences with length >= 500 bp
>>> fa.count(500)
70

Get subsequences

Subsequences can be retrieved from FASTA file by using a list of [start, end] coordinates

>>> # get subsequence with start and end position
>>> interval = (1, 10)
>>> fa.fetch('JZ822577.1', interval)
'CTCTAGAGAT'

>>> # get subsequences with a list of start and end position
>>> intervals = [(1, 10), (50, 60)]
>>> fa.fetch('JZ822577.1', intervals)
'CTCTAGAGATTTTAGTTTGAC'

>>> # get subsequences with reverse strand
>>> fa.fetch('JZ822577.1', (1, 10), strand='-')
'ATCTCTAGAG'

Key function

New in pyfastx 0.5.1

Sometimes your fasta will have a long header which contains multiple identifiers and description, for example, “>JZ822577.1 contig1 cDNA library of flower petals in tree peony by suppression subtractive hybridization Paeonia suffruticosa cDNA, mRNA sequence”. In this case, both “JZ822577.1” and “contig1” can be used as identifer. you can specify the key function to select one as identifier.

>>> #default use JZ822577.1 as identifier
>>> #specify key_func to select contig1 as identifer
>>> fa = pyfastx.Fasta('tests/data/test.fa.gz', key_func=lambda x: x.split()[1])
>>> fa
<Fasta> tests/data/test.fa.gz contains 211 seqs

Sequence

Get a sequence from FASTA

>>> # get sequence like a dictionary by identifier
>>> s1 = fa['JZ822577.1']
>>> s1
<Sequence> JZ822577.1 with length of 333

>>> # get sequence like a list by index
>>> s2 = fa[2]
>>> s2
<Sequence> JZ822579.1 with length of 176

>>> # get last sequence
>>> s3 = fa[-1]
>>> s3
<Sequence> JZ840318.1 with length of 134

>>> # check a sequence name weather in FASTA file
>>> 'JZ822577.1' in fa
True

Get sequence information

>>> s = fa[-1]
>>> s
<Sequence> JZ840318.1 with length of 134

>>> # get sequence order number in FASTA file
>>> # New in pyfastx 0.3.7
>>> s.id
211

>>> # get sequence name
>>> s.name
'JZ840318.1'

>>> # get sequence description
>>> # New in pyfastx 0.3.1
>>> s.description
'R283 cDNA library of flower petals in tree peony by suppression subtractive hybridization Paeonia suffruticosa cDNA, mRNA sequence'

>>> # get sequence string
>>> s.seq
'ACTGGAGGTTCTTCTTCCTGTGGAAAGTAACTTGTTTTGCCTTCACCTGCCTGTTCTTCACATCAACCTTGTTCCCACACAAAACAATGGGAATGTTCTCACACACCCTGCAGAGATCACGATGCCATGTTGGT'

>>> # get sequence raw string, New in pyfastx 0.6.3
>>> print(s.raw)
>JZ840318.1 R283 cDNA library of flower petals in tree peony by suppression subtractive hybridization Paeonia suffruticosa cDNA, mRNA sequence
ACTGGAGGTTCTTCTTCCTGTGGAAAGTAACTTGTTTTGCCTTCACCTGCCTGTTCTTCACATCAACCTT
GTTCCCACACAAAACAATGGGAATGTTCTCACACACCCTGCAGAGATCACGATGCCATGTTGGT

>>> # get sequence length
>>> len(s)
134

>>> # get GC content if dna sequence
>>> s.gc_content
46.26865768432617

>>> # get nucleotide composition if dna sequence
>>> s.composition
{'A': 31, 'C': 37, 'G': 25, 'T': 41, 'N': 0}

Sequence slice

Sequence object can be sliced like a python string

>>> # get a sub seq from sequence
>>> s = fa[-1]
>>> ss = s[10:30]
>>> ss
<Sequence> JZ840318.1 from 11 to 30

>>> ss.name
'JZ840318.1:11-30'

>>> ss.seq
'CTTCTTCCTGTGGAAAGTAA'

>>> ss = s[-10:]
>>> ss
<Sequence> JZ840318.1 from 125 to 134

>>> ss.name
'JZ840318.1:125-134'

>>> ss.seq
'CCATGTTGGT'

Reverse and complement sequence

>>> # get sliced sequence
>>> fa[0][10:20].seq
'GTCAATTTCC'

>>> # get reverse of sliced sequence
>>> fa[0][10:20].reverse
'CCTTTAACTG'

>>> # get complement of sliced sequence
>>> fa[0][10:20].complement
'CAGTTAAAGG'

>>> # get reversed complement sequence, corresponding to sequence in antisense strand
>>> fa[0][10:20].antisense
'GGAAATTGAC'

Read sequence line by line

New in pyfastx 0.3.0

The sequence object can be iterated line by line as they appear in FASTA file.

>>> for line in fa[0]:
...     print(line)
...
CTCTAGAGATTACTTCTTCACATTCCAGATCACTCAGGCTCTTTGTCATTTTAGTTTGACTAGGATATCG
AGTATTCAAGCTCATCGCTTTTGGTAATCTTTGCGGTGCATGCCTTTGCATGCTGTATTGCTGCTTCATC
ATCCCCTTTGACTTGTGTGGCGGTGGCAAGACATCCGAAGAGTTAAGCGATGCTTGTCTAGTCAATTTCC
CCATGTACAGAATCATTGTTGTCAATTGGTTGTTTCCTTGATGGTGAAGGGGCTTCAATACATGAGTTCC
AAACTAACATTTCTTGACTAACACTTGAGGAAGAAGGACAAGGGTCCCCATGT

Search for subsequence

New in pyfastx 0.3.6

Search for subsequence from given sequence and get one-based start position of the first occurrence

>>> # search subsequence in sense strand
>>> fa[0].search('GCTTCAATACA')
262

>>> # check subsequence weather in sequence
>>> 'GCTTCAATACA' in fa[0]
True

>>> # search subsequence in antisense strand
>>> fa[0].search('CCTCAAGT', '-')
301

FastaKeys

New in pyfastx 0.8.0. We have changed Identifier object to FastaKeys object.

Get keys

Get all names of sequence as a list-like object.

>>> ids = fa.keys()
>>> ids
<FastaKeys> contains 211 keys

>>> # get count of sequence
>>> len(ids)
211

>>> # get key by index
>>> ids[0]
'JZ822577.1'

>>> # check key whether in fasta
>>> 'JZ822577.1' in ids
True

>>> # iterate over keys
>>> for name in ids:
>>>     print(name)

>>> # convert to a list
>>> list(ids)

Sort keys

Sort keys by sequence id, name, or length for iteration

New in pyfastx 0.5.0

>>> # sort keys by length with descending order
>>> for name in ids.sort(by='length', reverse=True):
>>>     print(name)

>>> # sort keys by name with ascending order
>>> for name in ids.sort(by='name'):
>>>     print(name)

>>> # sort keys by id with descending order
>>> for name in ids.sort(by='id', reverse=True)
>>>     print(name)

Filter keys

Filter keys by sequence length and name

New in pyfastx 0.5.10

>>> # get keys with length > 600
>>> ids.filter(ids > 600)
<FastaKeys> contains 48 keys

>>> # get keys with length >= 500 and <= 700
>>> ids.filter(ids>=500, ids<=700)
<FastaKeys> contains 48 keys

>>> # get keys with length > 500 and < 600
>>> ids.filter(500<ids<600)
<FastaKeys> contains 22 keys

>>> # get keys contain JZ8226
>>> ids.filter(ids % 'JZ8226')
<FastaKeys> contains 90 keys

>>> # get keys contain JZ8226 with length > 550
>>> ids.filter(ids % 'JZ8226', ids>550)
<FastaKeys> contains 17 keys

>>> # clear sort order and filters
>>> ids.reset()
<FastaKeys> contains 211 keys

>>> # list a filtered result
>>> ids.filter(ids % 'JZ8226', ids>730)
>>> list(ids)
['JZ822609.1', 'JZ822650.1', 'JZ822664.1', 'JZ822699.1']

>>> # list a filtered result with sort order
>>> ids.filter(ids % 'JZ8226', ids>730).sort('length', reverse=True)
>>> list(ids)
['JZ822609.1', 'JZ822699.1', 'JZ822664.1', 'JZ822650.1']

>>> ids.filter(ids % 'JZ8226', ids>730).sort('name', reverse=True)
>>> list(ids)
['JZ822699.1', 'JZ822664.1', 'JZ822650.1', 'JZ822609.1']

FASTQ

New in pyfastx 0.4.0

Read FASTQ file

Read plain or gzipped file and build index, support for random access to reads from FASTQ.

>>> import pyfastx
>>> fq = pyfastx.Fastq('tests/data/test.fq.gz')
>>> fq
<Fastq> tests/data/test.fq.gz contains 100 reads

FASTQ records iteration

The fastest way to parse plain or gzipped FASTQ file without building index, the iteration will return a tuple contains read name, seq and quality.

>>> import pyfastx
>>> for name,seq,qual in pyfastx.Fastq('tests/data/test.fq.gz', build_index=False):
>>>     print(name)
>>>     print(seq)
>>>     print(qual)

You can also iterate read object from FASTQ object like this:

>>> import pyfastx
>>> for read in pyfastx.Fastq('test/data/test.fq.gz'):
>>>     print(read.name)
>>>     print(read.seq)
>>>     print(read.qual)
>>>     print(read.quali)

Iteration with build_index=True (default) return read object which allows you to access attribution of read. New in pyfastx 0.6.3.

Get FASTQ information

>>> # get read counts in FASTQ
>>> len(fq)
800

>>> # get total bases
>>> fq.size
120000

>>> # get GC content of FASTQ file
>>> fq.gc_content
66.17471313476562

>>> # get composition of bases in FASTQ
>>> fq.composition
{'A': 20501, 'C': 39705, 'G': 39704, 'T': 20089, 'N': 1}

>>> # New in pyfastx 0.6.10
>>> # get average length of reads
>>> fq.avglen
150.0

>>> # get maximum lenth of reads
>>> fq.maxlen
150

>>> # get minimum length of reas
>>> fq.minlen
150

>>> # get maximum quality score
>>> fq.maxqual
70

>>> # get minimum quality score
>>> fq.minqual
35

>>> # get phred which affects the quality score conversion
>>> fq.phred
33

>>> # Guess fastq quality encoding system
>>> # New in pyfastx 0.4.1
>>> fq.encoding_type
['Sanger Phred+33', 'Illumina 1.8+ Phred+33']

Read

Get read from FASTQ

>>> #get read like a dict by read name
>>> r1 = fq['A00129:183:H77K2DMXX:1:1101:4752:1047']
>>> r1
<Read> A00129:183:H77K2DMXX:1:1101:4752:1047 with length of 150

>>> # get read like a list by index
>>> r2 = fq[10]
>>> r2
<Read> A00129:183:H77K2DMXX:1:1101:18041:1078 with length of 150

>>> # get the last read
>>> r3 = fq[-1]
>>> r3
<Read> A00129:183:H77K2DMXX:1:1101:31575:4726 with length of 150

>>> # check a read weather in FASTQ file
>>> 'A00129:183:H77K2DMXX:1:1101:4752:1047' in fq
True

Get read information

>>> r = fq[-10]
>>> r
<Read> A00129:183:H77K2DMXX:1:1101:1750:4711 with length of 150

>>> # get read order number in FASTQ file
>>> r.id
791

>>> # get read name
>>> r.name
'A00129:183:H77K2DMXX:1:1101:1750:4711'

>>> # get read full header line, New in pyfastx 0.6.3
>>> r.description
'@A00129:183:H77K2DMXX:1:1101:1750:4711 1:N:0:CAATGGAA+CGAGGCTG'

>>> # get read length
>>> len(r)
150

>>> # get read sequence
>>> r.seq
'CGAGGAAATCGACGTCACCGATCTGGAAGCCCTGCGCGCCCATCTCAACCAGAAATGGGGTGGCCAGCGCGGCAAGCTGACCCTGCTGCCGTTCCTGGTCCGCGCCATGGTCGTGGCGCTGCGCGACTTCCCGCAGTTGAACGCGCGCTA'

>>> # get raw string of read, New in pyfastx 0.6.3
>>> print(r.raw)
@A00129:183:H77K2DMXX:1:1101:1750:4711 1:N:0:CAATGGAA+CGAGGCTG
CGAGGAAATCGACGTCACCGATCTGGAAGCCCTGCGCGCCCATCTCAACCAGAAATGGGGTGGCCAGCGCGGCAAGCTGACCCTGCTGCCGTTCCTGGTCCGCGCCATGGTCGTGGCGCTGCGCGACTTCCCGCAGTTGAACGCGCGCTA
+
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FF,FFFFFFFFFFFFFFFFFFFFFFFFFF,F:FFFFFFFFF:

>>> # get read quality ascii string
>>> r.qual
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FF,FFFFFFFFFFFFFFFFFFFFFFFFFF,F:FFFFFFFFF:'

>>> # get read quality integer value, ascii - 33 or 64
>>> r.quali
[37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 25, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 25, 37, 37, 11, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 11, 37, 25, 37, 37, 37, 37, 37, 37, 37, 37, 37, 25]

>>> # get read length
>>> len(r)
150

FastqKeys

New in pyfastx 0.8.0.

Get fastq keys

Get all names of read as a list-like object.

>>> ids = fq.keys()
>>> ids
<FastqKeys> contains 800 keys

>>> # get count of read
>>> len(ids)
800

>>> # get key by index
>>> ids[0]
'A00129:183:H77K2DMXX:1:1101:6804:1031'

>>> # check key whether in fasta
>>> 'A00129:183:H77K2DMXX:1:1101:14416:1031' in ids
True

Command line interface

New in pyfastx 0.5.0

$ pyfastx -h

usage: pyfastx COMMAND [OPTIONS]

A command line tool for FASTA/Q file manipulation

optional arguments:
  -h, --help     show this help message and exit
  -v, --version  show program's version number and exit

Commands:

    index        build index for fasta/q file
    stat         show detailed statistics information of fasta/q file
    split        split fasta/q file into multiple files
    fq2fa        convert fastq file to fasta file
    subseq       get subsequences from fasta file by region
    sample       randomly sample sequences from fasta or fastq file
    extract      extract full sequences or reads from fasta/q file

Build index

New in pyfastx 0.6.10

$ pyfastx index -h

usage: pyfastx index [-h] [-f] fastx [fastx ...]

positional arguments:
  fastx       fasta or fastq file, gzip support

optional arguments:
  -h, --help  show this help message and exit
  -f, --full  build full index, base composition will be calculated

Show statistics information

$ pyfastx stat -h

usage: pyfastx info [-h] fastx

positional arguments:
  fastx       input fasta or fastq file, gzip support

optional arguments:
  -h, --help  show this help message and exit

Split FASTA/Q file

$ pyfastx split -h

usage: pyfastx split [-h] (-n int | -c int) [-o str] fastx

positional arguments:
  fastx                 fasta or fastq file, gzip support

optional arguments:
  -h, --help            show this help message and exit
  -n int                split a fasta/q file into N new files with even size
  -c int                split a fasta/q file into multiple files containing the same sequence counts
  -o str, --out-dir str
                        output directory, default is current folder

Convert FASTQ to FASTA file

$ pyfastx fq2fa -h

usage: pyfastx fq2fa [-h] [-o str] fastx

positional arguments:
  fastx                 fastq file, gzip support

optional arguments:
  -h, --help            show this help message and exit
  -o str, --out-file str
                        output file, default: output to stdout

Get subsequence with region

$ pyfastx subseq -h

usage: pyfastx subseq [-h] [-r str | -b str] [-o str] fastx [region [region ...]]

positional arguments:
  fastx                 input fasta file, gzip support
  region                format is chr:start-end, start and end position is 1-based, multiple names were separated by space

optional arguments:
  -h, --help            show this help message and exit
  -r str, --region-file str
                        tab-delimited file, one region per line, both start and end position are 1-based
  -b str, --bed-file str
                        tab-delimited BED file, 0-based start position and 1-based end position
  -o str, --out-file str
                        output file, default: output to stdout

Sample sequences

$ pyfastx sample -h

usage: pyfastx sample [-h] (-n int | -p float) [-s int] [--sequential-read] [-o str] fastx

positional arguments:
  fastx                 fasta or fastq file, gzip support

optional arguments:
  -h, --help            show this help message and exit
  -n int                number of sequences to be sampled
  -p float              proportion of sequences to be sampled, 0~1
  -s int, --seed int    random seed, default is the current system time
  --sequential-read     start sequential reading, particularly suitable for sampling large numbers of sequences
  -o str, --out-file str
                        output file, default: output to stdout

Extract sequences

New in pyfastx 0.6.10

$ pyfastx extract -h

usage: pyfastx extract [-h] [-l str] [--reverse-complement] [--out-fasta] [-o str] [--sequential-read]
                       fastx [name [name ...]]

positional arguments:
  fastx                 fasta or fastq file, gzip support
  name                  sequence name or read name, multiple names were separated by space

optional arguments:
  -h, --help            show this help message and exit
  -l str, --list-file str
                        a file containing sequence or read names, one name per line
  --reverse-complement  output reverse complement sequence
  --out-fasta           output fasta format when extract reads from fastq, default output fastq format
  -o str, --out-file str
                        output file, default: output to stdout
  --sequential-read     start sequential reading, particularly suitable for extracting large numbers of sequences

Drawbacks

If you intensively check sequence names exists in FASTA file using in operator on FASTA object like:

>>> fa = pyfastx.Fasta('tests/data/test.fa.gz')
>>> # Suppose seqnames has 100000 names
>>> for seqname in seqnames:
>>>     if seqname in fa:
>>>             do something

This will take a long time to finish. Becuase, pyfastx does not load the index into memory, the in operating is corresponding to sql query existence from index database. The faster alternative way to do this is:

>>> fa = pyfastx.Fasta('tests/data/test.fa.gz')
>>> # load all sequence names into a set object
>>> all_names = set(fa.keys())
>>> for seqname in seqnames:
>>>     if seqname in all_names:
>>>             do something

Testing

The pyfaidx module was used to test pyfastx. First, make sure you have a suitable version installed:

pip install pyfastx

To test pyfastx, you should also install pyfaidx 0.5.8:

pip install pyfaidx==0.5.8

Then, to run the tests:

$ python setup.py test

Acknowledgements

kseq.h and zlib was used to parse FASTA format. Sqlite3 was used to store built indexes. pyfastx can randomly access to sequences from gzipped FASTA file mainly attributed to indexed_gzip.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfastx-2.3.1.tar.gz (261.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyfastx-2.3.1-cp314-cp314t-win_amd64.whl (693.0 kB view details)

Uploaded CPython 3.14tWindows x86-64

pyfastx-2.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl (883.3 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pyfastx-2.3.1-cp314-cp314t-manylinux_2_28_x86_64.whl (877.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

pyfastx-2.3.1-cp314-cp314t-macosx_11_0_arm64.whl (744.6 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

pyfastx-2.3.1-cp314-cp314t-macosx_10_15_x86_64.whl (785.2 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

pyfastx-2.3.1-cp314-cp314-win_amd64.whl (691.5 kB view details)

Uploaded CPython 3.14Windows x86-64

pyfastx-2.3.1-cp314-cp314-musllinux_1_2_x86_64.whl (882.7 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pyfastx-2.3.1-cp314-cp314-manylinux_2_28_x86_64.whl (876.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

pyfastx-2.3.1-cp314-cp314-macosx_11_0_arm64.whl (744.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyfastx-2.3.1-cp314-cp314-macosx_10_15_x86_64.whl (784.7 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

pyfastx-2.3.1-cp313-cp313-win_amd64.whl (672.2 kB view details)

Uploaded CPython 3.13Windows x86-64

pyfastx-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl (882.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pyfastx-2.3.1-cp313-cp313-manylinux_2_28_x86_64.whl (876.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pyfastx-2.3.1-cp313-cp313-macosx_11_0_arm64.whl (744.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyfastx-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl (784.5 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

pyfastx-2.3.1-cp312-cp312-win_amd64.whl (672.2 kB view details)

Uploaded CPython 3.12Windows x86-64

pyfastx-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl (882.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pyfastx-2.3.1-cp312-cp312-manylinux_2_28_x86_64.whl (876.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pyfastx-2.3.1-cp312-cp312-macosx_11_0_arm64.whl (744.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyfastx-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl (784.7 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

pyfastx-2.3.1-cp311-cp311-win_amd64.whl (672.0 kB view details)

Uploaded CPython 3.11Windows x86-64

pyfastx-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl (882.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyfastx-2.3.1-cp311-cp311-manylinux_2_28_x86_64.whl (876.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pyfastx-2.3.1-cp311-cp311-macosx_11_0_arm64.whl (744.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyfastx-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl (783.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pyfastx-2.3.1-cp310-cp310-win_amd64.whl (672.0 kB view details)

Uploaded CPython 3.10Windows x86-64

pyfastx-2.3.1-cp310-cp310-musllinux_1_2_x86_64.whl (882.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pyfastx-2.3.1-cp310-cp310-manylinux_2_28_x86_64.whl (876.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pyfastx-2.3.1-cp310-cp310-macosx_11_0_arm64.whl (744.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyfastx-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl (783.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

pyfastx-2.3.1-cp39-cp39-win_amd64.whl (672.0 kB view details)

Uploaded CPython 3.9Windows x86-64

pyfastx-2.3.1-cp39-cp39-musllinux_1_2_x86_64.whl (882.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pyfastx-2.3.1-cp39-cp39-manylinux_2_28_x86_64.whl (876.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

pyfastx-2.3.1-cp39-cp39-macosx_11_0_arm64.whl (744.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pyfastx-2.3.1-cp39-cp39-macosx_10_9_x86_64.whl (783.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

pyfastx-2.3.1-cp38-cp38-win_amd64.whl (671.9 kB view details)

Uploaded CPython 3.8Windows x86-64

pyfastx-2.3.1-cp38-cp38-musllinux_1_2_x86_64.whl (882.2 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

pyfastx-2.3.1-cp38-cp38-manylinux_2_28_x86_64.whl (875.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

pyfastx-2.3.1-cp38-cp38-macosx_11_0_arm64.whl (743.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

pyfastx-2.3.1-cp38-cp38-macosx_10_9_x86_64.whl (783.2 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

Details for the file pyfastx-2.3.1.tar.gz.

File metadata

  • Download URL: pyfastx-2.3.1.tar.gz
  • Upload date:
  • Size: 261.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfastx-2.3.1.tar.gz
Algorithm Hash digest
SHA256 19d802cc13ee7774a3068bae3e4d4f419cc69aa237f2dd6366ce220a08b03dca
MD5 92a8770e27b6e1b59bb9fcacdac4d5dd
BLAKE2b-256 0430b637657b3b05c318307a74075e106eca49432f80237925c48367bcc2b471

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: pyfastx-2.3.1-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 693.0 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfastx-2.3.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 b756900b2ce2a66700fa183b4231ac2d63d0d03bcb6d1dba08c2905b9304a985
MD5 2a9fc16048712f0fd6da038423ca7169
BLAKE2b-256 c0dca8d9ff29b92f60242f2a05280f9bc7e9445394a9a74fced768c4e1f492bb

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b6f8ada3867250d4e48f54bd67653ef8b097ca18bbf07176a2b94896515149bb
MD5 eb0f8f2222c091fb9f2eac0c1b9f29b1
BLAKE2b-256 319aa70f4dabbe55e439568312006ad83d84cc2f219b0e47078a18f398cfb500

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ffeb1693f4f1ae7283e6527ced49c5a3e1df60ebec4bb145a2c9fb954b5ea28
MD5 9db443477416de805c317da2baf4cf13
BLAKE2b-256 cb15db9e6a2f6cfc23c8517cd51273f805d2a0dc188a588f7035fd82e4948975

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 377a7f2d96e0ec308cb25a73b8fe7e4539256705fa6b788f0cc12854777770d5
MD5 8d6e95508fdac50faae3ca5165f07339
BLAKE2b-256 49c02d64d2f197469d2202491364a71846002b4bb10e0f19908e5130ed68d66b

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ac3dbabf9ad47407fafbac6e2e842c8f583d480cf34518f103ef0ad5fba6042f
MD5 cc36bc7fbde3120b5b28c1a9c68e18bf
BLAKE2b-256 c23b784d043b09d37a17e6a0dee46e3b0b187fbb9937de8a546e7efbb6441b86

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyfastx-2.3.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 691.5 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfastx-2.3.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9abaabd2f2f24c390707280284dc2dd552f101d52c52a696455c6d2fc6e7c66b
MD5 4b6b321d33fbe2c1555e782f8e0e75f3
BLAKE2b-256 875ae6c2b64b28ff23fbe7557ef1ab2f5e2503c626ce10b55ad14ac342be7048

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c1669160da91a03a88f21855ff181a25e0114f130473727903f8d3d427a56fd7
MD5 6cffa52f606cfcd525e04a3415cf534b
BLAKE2b-256 e333ac9e38b5961be57237b75e1a57526caa55830105ec4f4baff44d1b7c96ec

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0bda36e305a66626c56d670f94701797836750933923a9715ba1d240fc040ed1
MD5 413c250f0344d33cb3929ff4e730f077
BLAKE2b-256 7ee6dfbac08ae802bfa35247eb4fb0cc798593cda0fd0e5ad71c75d54f121115

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e40a35063673c07f3bbe0660546f8a4cb2910034a68c6ae2e2b739618f50be3
MD5 fe34d0ae7b1c4dabe3d8372329597518
BLAKE2b-256 1c72ea280bc43f1f817aca28c69e40971d7d0cb82126dba7cf732abb72ef5ff3

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 92468f619af64860fcd856763374893500755e6831e46f4c09e0056c731402f7
MD5 3eea84ec416862c203393ffcb7028807
BLAKE2b-256 1033cea436a8bd149e6d6befd40d02c28443e06fe188e6b8d2e277f5a4320e80

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyfastx-2.3.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 672.2 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfastx-2.3.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ce1f60b267b5270886b3749c2988bbcc736aa94dff2d09d4b063e7ac2fe32794
MD5 9beacc9992e7c539fa4f136594701dc1
BLAKE2b-256 0c8fabd010812c087779de9898b4d3d3efa988c689f99897669ce2301082e69a

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 af4ca61588b84a8c8f80698e754280a59592a1da8c646b597512244d072f7880
MD5 4eae609b6855ac9da1889eb14d426b7c
BLAKE2b-256 02efafa6b0f9aa234dfac2e8ba5a767e2a386a058fea4d93d3fa4674612d6ead

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d54496761f94523b92525c51743e655e0994b37629e88d472bc3f9928a5d978f
MD5 a4bc079bf734b9b33f426e2545a7aa46
BLAKE2b-256 c28809f10124d29a3b1bd0c8a0362008d1344cd508b032c83c022ba130ce8a65

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 436c8e6cdd5dc1601082d5dc6d3f6031e167f566dfc2e022013e5284cab833ab
MD5 adbef058b0348d06793bedcf16bd7ddb
BLAKE2b-256 0ddd91f9aac031d6f2e7c7c92abe6f81fa818de082630d0e67fd9aa220aa335e

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f718a2730d89adfcc18068736d61ba713269283bc3bc56af04cbb50849033cf8
MD5 d23c51ca59f9fc6b8b36ec22326df9f3
BLAKE2b-256 7255480a2c7c040441d2a419dba6c7cbbf87a13fa82df91e16c4441d3a39f4c9

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyfastx-2.3.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 672.2 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfastx-2.3.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6f01336b5a95d24d30fa3f710fe3858b166f6ec31416273cec538f19dd4d3b08
MD5 f150e1b4a124be6ff19755eb864c577b
BLAKE2b-256 af894c9ae30ac7e901053cd70143eae82fd36959970349431bfd4cb5a2093427

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b2b6d0ce18a745249163a3507b2c4794de66396a79ac57eafa0035eac33b72d0
MD5 aab9640a6808a474194d31409f202854
BLAKE2b-256 7e0f54647eb0d31c027d766c2d43df15eaccdd3c7f2f1edb7839a9e65239c8c2

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7774085d02a0500bd86e3e9a2b1d10900130f73d34cc0bb341d15473738b746f
MD5 f9510ec238a8e9c040015c404eda9c2e
BLAKE2b-256 78cb14c4c17f114736ad2b3e65ae97e0102048d1adf73c4a532ab9cd6da2ea3e

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0badf3fd4bbb3240c9dd3a97546b887a7d2761b48264e1dafcd7cdb1020b2f01
MD5 86f1258f11fa63e360a78d5f954318cd
BLAKE2b-256 e0866751ad1ee8d30f4e17efd6c2397d9dcd1ed51787d89c8b572709e270f6c6

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 179848af93735327c988cb2e017b36d2634b53d9b5b39a4c93748197cb911e63
MD5 ae8e873727e05a6db8de400d9fe4690f
BLAKE2b-256 62eb368aa67d7f228132834ec36795b2ebf926804227ec2c3887955307ba1cac

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyfastx-2.3.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 672.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfastx-2.3.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 77eeed2087860d343010f2c84a18b5ac05b8242048341969296804d02cb0a800
MD5 2419c5550fdc3a49c2dba88e170b91d3
BLAKE2b-256 3d4ca4b0a04d7511c39392c03e2acbb06d22e53e236ee101321dc374e675235b

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 638d54248aa38a0ec9e7d7861a22a4bfd845931431131497b822c827763b3ec6
MD5 f1fce7d37bf86304146ab86b3b7c006b
BLAKE2b-256 2c24973cf8ed916714a4b48401e1452e83da5315df99a9b471e68df25b6fd48b

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 971d97144e5711852827cc77acaa991e7c740a1353fbddea01190438d8d0a619
MD5 da2c1fe47144b7d7864ab612c8fe73bf
BLAKE2b-256 94c950c80a29acd500fb230a16a5bfed1470bf6e8099d2093d4dce16a84ebc1f

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf126cd3b40b83b1f0822c18c56c1d3d59724aec344e2468741f9cd6aaa3a327
MD5 69dd51831a0cf82728dbebfb01b9cf8e
BLAKE2b-256 b2014dfe82039be581167bdd9b4adb9dcd980cb568273c44fe700666acab843a

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cb6fe3cfeab311eebdc58d4c3f36c3ce10cd688a1ea9db361497e90cc60f9ca0
MD5 c37fa6b1cd9833626f8621214a8065e7
BLAKE2b-256 f37c27fbfce179cf76dfdb2bc32098ea7216483001dc3508604a4247e9a81290

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyfastx-2.3.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 672.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfastx-2.3.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4605827ab9c2a09ea8d52750cb8cac0229c87557bd9b4159cf7e54f8784998c4
MD5 f256930740a32b9428d9d933a5d181c0
BLAKE2b-256 059f721388dbb709e61ca77484aacf178a89381e9cacea921315ab96249da97f

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ef65975dce3e74913b3f1aca607ec20140d90b3bf9ed2967b9250c8619bc11f0
MD5 7386ea304672aafac18e563f10fbee7a
BLAKE2b-256 d797f9b38d88eed26f60257517dc9fb49ce385c935b3b2dc4a89a9d9b358b37c

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e78e7ca4570dc260379b7d6326ba9cad02d3d896fa61ad02c5c39a9c78360dd8
MD5 be02a63d24d67918ea69038a7fd1aa54
BLAKE2b-256 b7b8496ba5b826ec2cda764591c851bfeb276a65c765065eb07abef2dfc79a32

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d6023c4fe76990582798731567b68f06cdd1039406cb47c8b8013701d0fb396
MD5 4e7fb0b2203fd452411e95a1a70d978d
BLAKE2b-256 b936d818730bf020ed07a79c7f1990ddf2e088ac901e90535393cdcbbab49066

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 093aee7cc22812371f8b94c5e4e9aaec68ef1ebcba46bd708214806c97aa12d3
MD5 b54c489b4f93d236a539065b16408c3a
BLAKE2b-256 cff7b2e81584303f8d03492ef361352a41d922ffaf89dde6465befbd772aa240

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyfastx-2.3.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 672.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfastx-2.3.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 99342462e8c4799ce90572f2ef8de3ebd90205dd9e0472b711345664fb71aaf3
MD5 3b87749b04fd908eb152af6f726e8b7a
BLAKE2b-256 de588b481e2d9d8ea63e1c77461bacfd0c1732a00716ad1b8d285f6105c63c8e

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 43213058881f9d9ccfeb3399179735d5c6b59dacba18187c9dde440cb8d2a48f
MD5 0ca6e99fb5be50193dfaafcfad369b73
BLAKE2b-256 02569d77f1db08d8482237e5cb36a38066581ae2f2bfa070d69a22fbfa343658

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 085d20891cb4bd99fcbc178a905a506f6721be7bd53ee7db3af38fc35a2243f4
MD5 b43a418ba701e5fff4fc5a1814f4e4b7
BLAKE2b-256 a0255127775c18f6556625b64d75ef396eb10fb297ba2ed6b84c44cdd8c6998f

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03e5cad55d5afa0c4824480bbb03100a85439839fb95edeb06f79d4dfb38f92f
MD5 d84c8cb4d276ece865d3b228c31dc71d
BLAKE2b-256 f5c60f4dccea0690e7c25562378f95d0c4b00f500057d0480e3558b9a5f23139

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5d70b4ca6dc64da46fb828e230fb381ad2d4f4a3edd362ed6e6ce15e3c091d66
MD5 d80c66a494a85a650c47adda6431326a
BLAKE2b-256 f94be0dbe66f5939682858d3f5c243b29ce12b52522daaf5ed2afa1c0da02321

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyfastx-2.3.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 671.9 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfastx-2.3.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ee6f4949f1c3204d78c612d9c834d0e6588979aaa24f3189d741c2a22d1b2963
MD5 057fe83162581d4445b100916f435040
BLAKE2b-256 a6805da617852db950e522973298d5fd7e87f0bcaf068e330bb9de118534bd53

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5bbc2c2154d6b1e75cc1f1bcf1ed2640938f2adc38a8573d4dc2313fa9f23e5c
MD5 df73fbfe817ed21ef6c92e15408194ce
BLAKE2b-256 706939febfdcde3ec691136db34e36c410f8f936d66df2514ac37bd1227bdbb4

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 086f0c2941dd6f44a17bdb1dcf39047370fa995182ba3f9bc02c2919d9c81309
MD5 c76d7735fb7720a7733bdc25827b7446
BLAKE2b-256 7697f60b62f2a5eb55a878ad67cf8e659431ba410928e0e25d4184c062b4bf35

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45608ecdc36766d5331fa3bbe0c1f93c0aee35138bc6a79fad2c615dd2ddf022
MD5 75f96cdf547ac7020435d037cff297ee
BLAKE2b-256 a18da0bd99487eb7d6540b0b66c04a21fbac977fe4e21c490172e8ca9cf9047c

See more details on using hashes here.

File details

Details for the file pyfastx-2.3.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyfastx-2.3.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 894f4977d0c4bacc043cbef16bd75fab589049dafe2f0fa84a8dc6c16bdbf730
MD5 35712e160bbd305b12be51c138b75c53
BLAKE2b-256 cb645b3c4f56f9d49f5d1943d0789478f5f49775331fdadb44067ae9da191fff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page