Re: [Biopython] [ext] Re: A possibility for speeding up FASTA/FASTQ reading in BioPython

Peter Cock <[email protected]> Wed, 26 Nov 2025 09:38:33 +0000
Newsgroups gmane.comp.python.bio.general
Message-ID <CAKVJ-_5Cx2JXps8q=CthzPZRQ5N2GK2F1uriCAhw9NVGwsP=9w@mail.gmail.com>
SGkgVGVycnksCgpUaGF0J3MgYSB2ZXJ5IGV2ZW4gaGFuZGVkIHJlcGx5LiBJIGhhZG4ndCBjb25z
aWRlcmVkIHNwZWFraW5nIHRvIEFJCnRvb2xzIHdpdGggVm9pY2UgcmVjb2duaXRpb24sIGJ1dCBB
bWF6b24gQWxleGEgaXNuJ3QgZ3JlYXQgYW5kIGhhcwpwcm9iYWJseSBsb3dlcmVkIG15IGV4cGVj
dGF0aW9ucyAtIGdyaW4uCgpUaGUgU2VxUmVjb3JkIG92ZXJoZWFkIGlzIGJpZywgZXNwZWNpYWxs
eSBtYWtpbmcgdGhlIEFTQ0lJIHF1YWxpdHkKc3RyaW5nIGludG8gYSBsaXN0IG9mIGludGVnZXJz
LiBZb3Ugb2Z0ZW4gZG9uJ3QgbmVlZCB0aGlzLCBhbmQgY2FuCnN0aWNrIHdpdGggc3RyaW5ncy4g
U2VlIGVnOgoKaHR0cHM6Ly93d3cub3Blbi1iaW8ub3JnLzIwMDkvMDkvMjUvYmlvcHl0aG9uLWZh
c3QtZmFzdHEvCgpJbiB0aGUgc2hvcnQgdGVybSwgYSBtdWNoIGVhc2llciBleHBlcmltZW50IHRv
IHRyeSBpcyBzd2l0Y2hpbmcgb3VyClB1cmUgUHl0aG9uIEZBU1RRIHBhcnNlciB0byB3b3JrIGlu
IGJ5dGVzIG1vZGUgKGJpbmFyeSBoYW5kbGVzKSB0bwphdm9pZCB0aGUgYnl0ZXMgdG8gdW5pY29k
ZSBjb252ZXJzaW9uIG9mIHRoZSBzZXF1ZW5jZSBhbmQgcXVhbGl0eQpzdHJpbmdzLgoKUGV0ZXIK
Ck9uIFR1ZSwgTm92IDI1LCAyMDI1IGF0IDc6NTbigK9QTSBKb25lcyBLZWxseSwgVGVyZW5jZSBD
YXJsZXRvbgo8dGVyZW5jZS5qb25lc0BjaGFyaXRlLmRlPiB3cm90ZToKPgo+IEhpIGFsbAo+Cj4g
VGhhbmtzIGZvciB0aGUgcmVwbGllcyBhbmQgSSdtIHNvcnJ5IHRvIGJlIHNvIHNsb3cgaW4gcmVw
bHlpbmcuCj4KPiBQZXRlciAtIEnigJltIHNjZXB0aWNhbCwgdG9vLiAgSSB0aG91Z2h0IGl0IGhp
Z2hseSB1bmxpa2VseSB0aGF0IEJpb1B5dGhvbiB3b3VsZCB3YW50IHRvIGFkZCBhIGRlcGVuZGVu
Y2Ugb24gUnVzdC4gVGhlIEMgY29kZSBjb3VsZCBiZSB1c2VkIHRvIGdldCB0aGUgc2FtZSBzcGVl
ZC11cC4gVGhlIGF1dG9tYXRpYyBkZXRlY3Rpb24gb2YgY29tcHJlc3NlZCBpbnB1dCAoaW5jbHVk
aW5nIG9uIHN0ZGluKSB3b3VsZCBiZSBsb3N0LCBidXQgcGVyaGFwcyBjb3VsZCBiZSBhZGRlZC4g
IERhbiAtIG1heWJlIENsYXVkZSBjb3VsZCBtYWtlIHRoZSBjaGFuZ2VzIGZvciBhIHByLiBJIHdv
dWxkbuKAmXQgYmUgc3VycHJpc2VkLCBldmVuIHdpdGggc3VjaCBhIGxhcmdlIGNvZGViYXNlLgo+
Cj4gUmVnYXJkaW5nIHRoZSB3aWRlciBwb2ludHMgbWFkZSBieSBQZXRlciBpbiBoaXMgYmxvZyBw
b3N0LCBJIGFncmVlIHdpdGggcHJvYmFibHkgYWxsIG9mIGl0LiBJIGhpZ2hseSBkb3VidCB0aGF0
IHRoZSBjdXJyZW50IHRyYWplY3RvcnkgKGluIHRlcm1zIG9mIGVuZXJneSB1c2UpIG9mIHRoZXNl
IHRvb2xzIGlzIHN1c3RhaW5hYmxlLCBhbmQgSSByZWd1bGFybHkgd29uZGVyIGFib3V0IGFjdHVh
bCBjb3N0ICh0byB0aGUgcGxhbmV0KSBJIGFtIGluY3VycmluZyB3aGVuIHVzaW5nIENsYXVkZSwg
ZXNwZWNpYWxseSB3aGVuIGl04oCZcyBkb2luZyBzb21ldGhpbmcgSSBjb3VsZCBkbyBpbiBlbWFj
cyBvciB3aXRoIGUuZy4sIGEgcGVybCBvbmUtbGluZXIuIEJ1dCBJIGdldCBzdHVmZiBkb25lIGFi
b3V0IDIweCBhcyBmYXN0IHdoZW4gdXNpbmcgQ2xhdWRlLCBhbmQgSSBqdXN0IHNwZWFrIHRvIGl0
ICh1c2luZyBEaWN0YXRpb24gb24gT1MgWCksIGJhcmVseSB0eXBpbmcgYSB0aGluZy4gVGhhdOKA
mXMgYWxsIGFuIGluY3JlZGlibGUgY2hhbmdlIGFmdGVyIDQwKyB5ZWFycyBvZiBoYXZpbmcgdG8g
Z2V0IHRob3VnaHRzIG91dCBvZiBteSBicmFpbiBhbmQgaW50byB0aGUgY29tcHV0ZXIgb25lIGtl
eXN0cm9rZSBhdCBhIHRpbWUuIEl0IGZlZWxzIGxpa2UgbWFnaWMuIEJVVCwgSSBoYXZlIHRvIHdh
dGNoIENsYXVkZSB2ZXJ5IGNhcmVmdWxseSwgbG9vayBhdCBpdHMgY29kZSwgbWFrZSBpdCB3cml0
ZSBtYW55IHRlc3RzIGFuZCBleHBsaWNpdGx5IHByb3ZlIHRoYXQgaXQgaGFzIG1hbmFnZWQgdG8g
ZG8gd2hhdCB3YXMgaW50ZW5kZWQuIFRoYXTigJlzIG5vdCBzbyBkaWZmZXJlbnQgZnJvbSB3YXRj
aGluZyB5b3Vyc2VsZiBvciBkb2luZyBjb2RlIHJldmlldyBvZiBhIGp1bmlvciAodmVyeSBlbmVy
Z2V0aWMgZXZlci1jaGVlcmZ1bCkgcHJvZ3JhbW1lci4KPgo+IEkgYWdyZWUgdGhhdCBhbiBBSSAo
Q2xhdWRlLCBjZXJ0YWlubHkpIGNvdWxkIGJlIHVzZWQgdG8gdmVyeSBxdWlja2x5IG1ha2UgZ2Vu
ZXJhbCBpbXByb3ZlbWVudHMgdG8gYSBjb2RlYmFzZSB3aXRoIHZlcnkgbGl0dGxlIHJpc2sgKGFz
c3VtaW5nIGEgdGVzdCBzdWl0ZSBleGlzdHMpLiBJ4oCZdmUgZG9uZSB0aGF0IHF1aXRlIGEgZmV3
IHRpbWVzLCBlLmcuLCB0ZWxsaW5nIENsYXVkZSBJIG5vIGxvbmdlciBuZWVkIHN1cHBvcnQgZm9y
IFB5dGhvbiAzLlggYW5kIHRvIG1vZGVybmlzZSB0aGUgdHlwaW5nIGhpbnRzIGZvciAzLlgrMSwg
b3IgdG8gYWRkIHR5cGluZyBoaW50cywgZXRjLiAgSXTigJlzIGFsc28gZ29vZCBhdCBwcm9kdWNp
bmcgZG9jdW1lbnRhdGlvbi4KPgo+IEnigJltIG5vdCBzdXJlIHdoZXJlIHRoaXMgbGVhdmVzIHVz
LiAgSWYgdGhlcmXigJlzIGFncmVlbWVudCB0aGF0IGEgQyBleHRlbnNpb24gd291bGQgYmUgZ29v
ZCB0byBoYXZlLCB0aGUgb25lIENsYXVkZSBtYWRlIGZvciBteSBwcnNlcSBwcm9qZWN0IGJlbmNo
bWFyayBzdWl0ZSBpcyB0ZXN0ZWQgYW5kIGNvdWxkIGJlIHVzZWQuIEkgaGF2ZW7igJl0IGxvb2tl
ZCBhdCB0aGUgQmlvUHl0aG9uIGNvZGUgY2xvc2VseSBlbm91Z2ggdG8ga25vdyBob3cgbXVjaCB3
b3JrIHRoYXQgd291bGQgYmUsIHRob3VnaC4KPgo+IFRoYW5rcyBhZ2FpbiBmb3IgdGhlIHRob3Vn
aHRmdWwgcmVwbGllcy4gVGhlcmUgd2FzIGFuIGVhcmxpZXIgb25lIGFza2luZyB3aHkgdGhlIEJp
b1B5dGhvbiBjb2RlIHdhcyBzbG93ZXIgdGhhbiBDbGF1ZGXigJlzIG1pbmltYWwgcHVyZSBQeXRo
b24sIGFuZCBzdWdnZXN0aW5nIHRoYXQgd291bGQgYmUgZHVlIHRvIHRoZSBvdmVyaGVhZCBvZiBt
YWtpbmcgU2VxUmVjb3Jkcy4gSSB0aGluayB0aGF0IG11c3QgYmUgdGhlIGNhc2UuIFRoZSBpbXBh
Y3QgaXMgbXVjaCBtb3JlIHNldmVyZSB3aXRoIEZBU1RRIHRoYW4gRkFTVEEsIHNvIEkgZ3Vlc3Mg
ZGVhbGluZyB3aXRoIHRoZSBxdWFsaXR5IHN0cmluZ3MgbXVzdCBiZSBxdWl0ZSBleHBlbnNpdmUu
Cj4KPiBCZXN0LAo+IFRlcnJ5Cj4KPiBGcm9tOiBQZXRlciBDb2NrIDxwLmouYS5jb2NrQGdvb2ds
ZW1haWwuY29tPgo+IERhdGU6IE1vbmRheSwgMjQuIE5vdmVtYmVyIDIwMjUgYXQgMTA6NDEKPiBU
bzogSm9uZXMgS2VsbHksIFRlcmVuY2UgQ2FybGV0b24gPHRlcmVuY2Uuam9uZXNAY2hhcml0ZS5k
ZT4KPiBDYzogYmlvcHl0aG9uQGJpb3B5dGhvbi5vcmcgPGJpb3B5dGhvbkBiaW9weXRob24ub3Jn
Pgo+IFN1YmplY3Q6IFtleHRdIFJlOiBbQmlvcHl0aG9uXSBBIHBvc3NpYmlsaXR5IGZvciBzcGVl
ZGluZyB1cCBGQVNUQS9GQVNUUSByZWFkaW5nIGluIEJpb1B5dGhvbgo+Cj4gSGVsbG8gVGVycnks
Cj4KPiBJIGp1c3QgcG9zdGVkIGEgYmxvZyBhYm91dCBteSB0aG91Z2h0cyBvbiByZWNlaXZpbmcg
Z2VuZXJhdGl2ZSBBSQo+IGNvbnRyaWJ1dGlvbnMgYXMgYW4gT3BlbiBTb3VyY2UgcHJvamVjdCBt
YWludGFpbmVyOgo+Cj4gaHR0cHM6Ly9ibGFzdGVkYmlvLmJsb2dzcG90LmNvbS8yMDI1LzExL3Ro
b3VnaHRzLW9uLWdlbmVyYXRpdmUtYWktY29udHJpYnV0aW9ucy5odG1sCj4KPiBJIGFtIHNjZXB0
aWNhbCwgYW5kIGluIHRoaXMgY2FzZSBhZGRpbmcgYSBSdXN0IGRlcGVuZGVuY3kgdG8gQmlvcHl0
aG9uCj4gc2VlbXMgdG9vIG11Y2ggdG8gYXNrLiBJIHRoaW5rIHlvdSBjb3VsZCBnZXQgc2ltaWxh
ciBwZXJmb3JtYW5jZSBnYWlucwo+IHdpdGggQyAod2hpY2ggd2UgZG8gdXNlKSB3aGVyZSBhdCBs
ZWFzdCB0aGUgbWFpbnRhaW5lcnMgaGF2ZSBzb21lCj4gZXhwZXJpZW5jZS4gSG93ZXZlciwgZXZl
biB0aGVyZSwgZ2FpbnMgbWF5IG5vdCBtYWtlIHRoZSBhZGRpdGlvbmFsCj4gY29tcGxleGl0eSBh
bmQgbWFpbnRlbmFuY2UgYnVyZGVuIHdvcnRod2hpbGUuCj4KPiBUaGFuayB5b3UgZm9yIHdyaXR0
aW5nIGFuZCBhc2tpbmcsIHJhdGhlciB0aGFuIHN1cHJpc2luZyBldmVyeW9uZSB3aXRoCj4gYSBs
YXJnZSBwdWxsIHJlcXVlc3QuCj4KPiBQZXRlcgo+Cj4gUC5TLiBDcm9zcyByZWZlcmVuY2UgaHR0
cHM6Ly9naXRodWIuY29tL2Jpb3B5dGhvbi9iaW9weXRob24vcHVsbC81MDg1Cj4KPiBPbiBUdWUs
IE5vdiAxMSwgMjAyNSBhdCAxMDowMOKAr1BNIEpvbmVzIEtlbGx5LCBUZXJlbmNlIENhcmxldG9u
Cj4gPHRlcmVuY2Uuam9uZXNAY2hhcml0ZS5kZT4gd3JvdGU6Cj4gPgo+ID4gSGkgYWxsCj4gPgo+
ID4gSSByZWd1bGFybHkgcHJvY2VzcyByZWFzb25hYmx5IGxhcmdlIEZBU1RRIChodW5kcmVkcyBv
ZiBiaWxsaW9ucyBvZiBzZXF1ZW5jaW5nIHJlYWRzKSBhbmQgRkFTVEEgZmlsZXMgdXNpbmcgQmlv
UHl0aG9uLiBGb3Igc29tZSB5ZWFycyBJJ3ZlIGJlZW4gbWVhbmluZyB0byBpbXBsZW1lbnQgYSBG
QVNUUS9GQVNUQSByZWFkZXIgaW4gYSBjb21waWxlZCBsYW5ndWFnZSBhbmQgYWRkIFB5dGhvbiBi
aW5kaW5ncyB0byBpbXByb3ZlIHRoZSBzcGVlZC4gSSBjb3VsZCd2ZSBkb25lIHRoaXMgaW4gQyBi
dXQgSSBzcGVudCBzb21lIGRlY2FkZXMgd3JpdGluZyBDIGFuZCBJIHdhbnRlZCB0byBsZWFybiBz
b21ldGhpbmcgbmV3LCBzbyBJIGNvbnNpZGVyZWQgYSBmZXcgbGFuZ3VhZ2VzLiBCZWNhdXNlIFJ1
c3QgbWFrZXMgaXQgdmVyeSBlYXN5IHRvIGNyZWF0ZSBQeXRob24gYmluZGluZ3MsIEkgZGVjaWRl
ZCB0byBnaXZlIGl0IGEgdHJ5LiBJIHRob3VnaHQgSSdkIGdldCBnb2luZyBieSBhc2tpbmcgdGhl
IENsYXVkZSBDTEkgdG8gd3JpdGUgbWUgc29tZSBSdXN0LiBUaGF0IHR1cm5lZCBvdXQgdG8gYmUg
YSBtdWNoLCBtdWNoIGJldHRlciBleHBlcmllbmNlIHRoYW4gSSBoYWQgYW50aWNpcGF0ZWQuIFdp
dGggQ2xhdWRlIEkgcGxheWVkIHdpdGggc2V2ZXJhbCBpbXBsZW1lbnRhdGlvbnMsIGtlZXBpbmcg
dHJhY2sgb2YgdGltaW5nLiBDbGF1ZGUgYWxzbyB3cm90ZSBzb21lIHRlc3RzLiBUbyBjb21wYXJl
IHdoYXQgSSB3YXMgc2VlaW5nIEkgZ290IENsYXVkZSB0byB3cml0ZSBhIHB1cmUgUHl0aG9uIHZl
cnNpb24sIGEgcHVyZSBDIHZlcnNpb24sIFB5dGhvbiBiaW5kaW5ncyB0byB0aGUgQywgYW5kIHRv
IGNyZWF0ZSBhIGJlbmNobWFyayBzdWl0ZS4gRnJvbSB3aGF0IEkgY2FuIHRlbGwsIHRoZSBSdXN0
L1B5dGhvbiAoYW5kIHRoZSBDL1B5dGhvbikgRkFTVEEgcmVhZGluZyBpcyB0d2ljZSBhcyBmYXN0
IGFzIEJpb1B5dGhvbiBhbmQgRkFTVFEgcmVhZGluZyBpcyBmb3VyIHRpbWVzIGFzIGZhc3QuIEkg
ZGlkbid0IHdyaXRlIGEgc2luZ2xlIGxpbmUgb2YgY29kZS4gSSBqdXN0IGRpZCBzb21lIG1pbmlt
YWwgY2xlYW5pbmcgdXAgd2hlbiB0aGluZ3Mgd2VyZSBhbHJlYWR5IGZhciBhbG9uZy4gSSd2ZSBi
ZWVuIHVzaW5nIHRoZSBjb2RlIGZvciB0aGUgbGFzdCBtb250aCBvciB0d28gd2l0aCBubyBwcm9i
bGVtcy4KPiA+Cj4gPiBUaGUgcmVwbyBpcyBhdCBodHRwczovL2dpdGh1Yi5jb20vVmlyb2xvZ3lD
aGFyaXRlL3Byc2VxICAocHJzZXEgPSBQeXRob24vUnVzdCBmb3Igc2VxdWVuY2VzKS4gWW91J2xs
IGZpbmQgdGhlIGJlbmNobWFyayByZXN1bHRzIG9uIHRoYXQgcGFnZS4gIFRoZXJlIGFyZSBzdGls
bCBzb21lIHNtYWxsIHRoaW5ncyBJIHdvdWxkIGFkanVzdCBpbiB0aGUgQVBJLiAgQlRXLCBDbGF1
ZGUgYWxzbyB3cm90ZSB0aGUgUkVBRE1FICh3aGljaCBzaG91bGQgZGVmaW5pdGVseSBiZSBpbXBy
b3ZlZCkuCj4gPgo+ID4gSSBhbSB3b25kZXJpbmcgaWYgdGhlcmUgbWlnaHQgYmUgaW50ZXJlc3Qg
aW4gaW5jb3Jwb3JhdGluZyB0aGlzIGludG8gQmlvUHl0aG9uLiBJIGRvbid0IGtub3cgaWYgdGhl
cmUgYXJlIGFueSBSdXN0IGRlcGVuZGVuY2llcyBpbiBCaW9QeXRob24gYnV0IEkga25vdyB0aGF0
IHRoZXJlIGFyZSBzb21lIEMgZXh0ZW5zaW9ucy4gV2UgY291bGQgdXNlIGVpdGhlciwgYXMgdGhl
aXIgc3BlZWRzIGFyZSBjb21wYXJhYmxlLiBJZiB0aGVyZSdzIGludGVyZXN0LCBJJ2QgYmUgaGFw
cHkgdG8gaGVscCAob3IgdG8gZG8gaXQgYWxsLCBhZnRlciBzb21lIGRpc2N1c3Npb24gYW5kIG1h
eWJlIHdpdGggc29tZSBndWlkYW5jZSkuCj4gPgo+ID4gVGhhbmtzIHZlcnkgbXVjaCBmb3IgYWxs
IHRoZSB3b3JrIG9uIEJpb1B5dGhvbi4gSXQncyByZWFsbHkgYmVlbiBhIHBsZWFzdXJlIHRvIHVz
ZSB0aGUgY29kZSBvdmVyIHRoZSBsYXN0IGRvemVuIHllYXJzIG9yIHNvLgo+ID4KPiA+IFRlcnJ5
IEpvbmVzCj4gPgo+ID4KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCj4gPiBCaW9weXRob24gbWFpbGluZyBsaXN0ICAtICBCaW9weXRob25AYmlvcHl0
aG9uLm9yZwo+ID4gaHR0cHM6Ly9tYWlsbWFuLm9wZW4tYmlvLm9yZy9tYWlsbWFuL2xpc3RpbmZv
L2Jpb3B5dGhvbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpCaW9weXRob24gbWFpbGluZyBsaXN0ICAtICBCaW9weXRob25AYmlvcHl0aG9uLm9yZwpodHRw
czovL21haWxtYW4ub3Blbi1iaW8ub3JnL21haWxtYW4vbGlzdGluZm8vYmlvcHl0aG9uCg==