scieee Science in your language
[en] (orig)

BigSeqKit: a parallel Big Data toolkit to process FASTA and FASTQ files at scale

Abstract

Background High-throughput sequencing technologies have led to an unprecedented explosion in the amounts of sequencing data available, which are typically stored using FASTA and FASTQ files. We can find in the literature several tools to process and manipulate those type of files with the aim of transforming sequence data into biological knowledge. However, none of them are well fitted for processing efficiently very large files, likely in the order of terabytes in the following years, since they are based on sequential processing. Only some routines of the well-known seqkit tool are partly parallelized. In any case, its scalability is limited to use few threads on a single computing node. Results Our approach, BigSeqKit, takes advantage of a high-performance computing–Big Data framework to parallelize and optimize the commands included in seqkit with the aim of speeding up the manipulation of FASTA/FASTQ files. In this way, in most cases, it is from tens to hundreds of times faster than several state-of-the-art tools. At the same time, our toolkit is easy to use and install on any kind of hardware platform (local server or cluster), and its routines can be used as a bioinformatics library or from the command line. Conclusions BigSeqKit is a very complete and ultra-fast toolkit to process and manipulate large FASTA and FASTQ files. It is publicly available at https://github.com/citiususc/BigSeqKit.

Read accessible full text

BigSeqKit: a parallel Big Data toolkit to process FASTA and FASTQ files at scale

Author: Piñeiro Pomar, César Alfredo; Pichel Campos, Juan Carlos
Publisher: Oxford University Press
Year: 2023
DOI: 10.1093/gigascience/giad062
Source: https://minerva.usc.es/bitstreams/9ce9e0e3-88a6-4c6a-a374-427a64405fc9/download
GigaScience , 2023, 12 , 1–12
DOI: 10.1093/gigascience/giad062
Technical No e
BigSeqKi : a pa allel Big Da a oolki o p ocess FASTA
and FASTQ iles a scale
Césa Piñei o and Juan C. Pichel *
CiTIUS, Uni e sidade de San iago de Compos ela, San iago de Compos ela 15782, Spain
∗Co espondence add ess . J uan C . Pichel, CiTIUS , Uni e sidade de San ia go de Compos ela, San ia go de Compos ela 15782, Spain. E-mail: juanca los.pic [email p o ec ed]
Abs ac
Bac kg ound: High- h oughpu sequencing echnologies ha e led o an unp eceden ed explosion in he amoun s o sequencing da a
a aila b le , whic h a e ypicall y s o ed using F ASTA and F ASTQ iles. W e can ind in he li e a u e se e al ools o p ocess and manipula e
hose ype o iles wi h he aim o ans o ming sequence da a in o biolog ical knowledg e . How e e , none o hem a e well i ed
o p ocessing e icien ly e y la ge iles, likely in he o de o e aby es in he ollowing yea s, since hey a e based on sequen ial
p ocessing. Onl y some ou ines o he well-known seqki ool a e pa ly pa allelized. In any case, i s scalabili y is limi ed o use ew
h eads on a single compu ing node.
Resul s: Ou app oach, BigSeqKi , akes ad an a ge o a high-pe o mance compu ing–Big Da a amewo k o pa allelize and op imize
he commands included in seqki wi h he aim o speeding up he manipula ion o F ASTA/F ASTQ iles. In his way, in mos cases, i
is om ens o hund eds o imes as e han se e al s a e-o - he-a ools. A he same ime, ou oolki is easy o use and ins all on
any kind o ha dw a e pla o m (local se e o clus e ), and i s ou ines can be used as a bioin o ma ics lib a y o om he command
line.
Conclusions: BigSeqKi is a e y comple e and ul a- as oolki o p ocess and manipula e la ge F ASTA and F ASTQ iles. I is pub licl y
a aila b le a h ps://gi hub.com/ci iususc/BigSeqKi .
Ke yw o ds: F ASTA/F ASTQ iles, Pe o mance, Pa allelism, Big Da a
In oduc ion
The his o y o mode n DNA sequencing s a ed se e al decades
ago and, since hen, has seen as ounding g ow h in sequencing
capaci y and speed. F om he i s genomes wi h a ew housand
bases, DNA sequencing has ad anced o sequence he human
genome o 3 billion bases. In ecen yea s, nex -gene a ion se-
quencing (NGS) echnology, also known as massi e pa allel se-
quencing (MPS), has made i possible o expand he amoun o
sequencing da a a ailable . Fo example , he Illumina No aSeq
6000 [ 1 ] pla o m can gene a e a maximum ou pu o 6 Tb o da a
and ead abou 20 billion sequences pe un. No e ha sequences,
commonl y named eads , a e composed o ASCII c ha ac e s ep e-
sen ing a nucleo ide (base) om he sequence. In he DNA case,
we can only ind 4 possible bases (A—adenine , C—cy osine , G—
guanine, and T— hymine).
T he NGS a w da a a e mainly s o ed in FASTA [ 2 ] and FASTQ [ 3 ]
ex -based ile o ma s. In pa icula , nucleo ide and p o ein se-
quences a e ypically s o ed in he FASTA ile o ma , whe eas
FASTQ is he mos widely used o ma o sequencing ead da a.
An example o FASTA ile is shown in Fig. 1 . A sequence in FASTA
o ma begins wi h a single-line desc ip ion abou he sequence
in he subsequen lines . T he desc ip ion line is dis inguished om
he sequence da a by a g ea e - han ( > ) symbol a he beginning.
On he o he hand, he FASTQ o ma was designed o handle he
quali y me ics o he sequences ob ained om he sequence s. In
FASTQ, e e y 4 lines desc ibe a sequence o ead. An example is
displa yed in Fig. 2 . T he in o ma ion p o ided pe ead is as ollows:
iden i ie and an op ional desc ip ion ( i s line), sequence (second
line), and he quali y sco e o he ead ( ou h line). An ex a ield,
ep esen ed by symbol “+ ,” is used as sepa a o be ween he da a
and he quali y in o ma ion ( hi d line).
Manipula ing hese iles e icien ly is essen ial o analyze and
in e p e da a in any genomics pipeline. Common ope a ions
on F ASTA and F ASTQ iles include sea ching, il e ing, sampling,
deduplica ion, and so ing, among o he s. We can ind se e al
ools in he li e a u e o FASTA/Q ile manipula ion such as HT-
Seq [ 5 ], FASTX [ 6 ], q ools [ 7 ], seq k [ 8 ], Biopy hon [ 9 ], sam ools [ 10 ],
p y adix [ 11 ], p y as x [ 12 ], and seqki [ 13 ]. These ools can be clas-
si ied acco ding o how he sequences a e pa sed [ 12 ]. In he
i s ca ego y, sequences a e p ocessed in o de , whic h causes im-
po an o e heads when ex ac ing and andomly sampling se-
quences . T ha is he case o HTSeq , FASTX , q ools , and seq k . In
he second ca ego y, we ind ools ha suppo andom access o
sequences by es ablishing an index ile. Tools belonging o his
ca ego y a e mo e e icien in e ms o pe o mance and memo y
consump ion. Ho w e e , none o hem a e well i ed o p ocess-
ing e y la ge iles o hund eds o GB (likel y TBs in he nea u u e)
since hey a e based on sequen ial p ocessing. The excep ion is
seqki ha allows some ou ines o use a ew h eads, bu in any
case, i s scalabili y is e y limi ed.
To deal wi h his issue, in his a icle, we in oduce BigSeqKi ,
a pa allel oolki o manipula e FASTA and FASTQ iles a scale
wi h speed and scalabili y a i s co e. BigSeqKi akes ad an a ge
o IgnisHPC [ 14 , 15 ], a compu ing engine ha uni ies he de elop-
men , combina ion, and execu ion o high-pe o mance compu -
ing (HPC) and Big Da a pa allel asks using di e en languages
Recei ed: Ma c h 7, 2023. Re ised: May 25, 2023. Accep ed: July 10, 2023
©The Au ho (s) 2023. Published by Ox o d Uni e si y P ess GigaScience. This is an Open Access a icle dis ibu ed unde he e ms o he C ea i e Commons
A ibu ion License ( h ps://c ea i ecommons.o g/licenses/by/4.0/ ), which pe mi s un es ic ed euse, dis ibu ion, and ep oduc ion in any medium, p o ided
he o iginal wo k is p ope l y ci ed.
Downloaded om h ps://academic.oup.com/gigascience/a icle/doi/10.1093/gigascience/giad062/7233988 by UDC - Uni e sidade da Co una use on 26 Oc obe 2023
2 | GigaScience , 2023, Vol. 12, No. 1
Figu e 1: Example o FASTA ile showing he i s pa o he PAX6 gene (ob ained om [ 4 ]).
Figu e 2: Example o FASTQ ile o ma (ob ained om [ 4 ]).
and p og amming models. As i was demons a ed, IgnisHPC ou -
pe o ms he s a e-o - he-a ame wo k Spa k [ 16 ] in e ms o
pe o mance and scalabili y unning applica ions ha ep esen
he mos ypical algo i hmic pa e ns in Big Da a and scien i ic
compu ing.
BigSeqKi uses he seqki ou ines as basis since ha oolki co -
e s a wide ange o u ili ies and is one o he mos used by he
bioin o ma ics esea c h comm uni y. As a consequence, BigSeqKi
will o e he same unc ionali ies and command in e ace [ 17 ].
BigSeqKi can be used om he command line, bu i is a he same
ime a lib a y, so i s ou ines can also be called om a C/C ++ ,
Py hon, Go, o Ja a applica ion.
Ano he impo an c ha ac e is ic o BigSeqKi is ha i is ully
con aine ized, which isola es he execu ion en i onmen om he
physical sys em and a oids dependenc y p oblems. As a conse-
quence, BigSeqKi is e y easy o ins all and can un on a local
se e o on any ype o clus e since i suppo s some o he mos
impo an esou ce and schedule manage s (e.g., Mesos [ 18 ], No-
mad [ 19 ], and Slu m [ 20 ]).
Bac kg ound
IgnisHPC [ 14 , 15 ] uni ies he execu ion o Big Da a and HPC wo k-
loads in he same compu ing engine. Unlike o he ame wo ks
such as Hadoop [ 21 ] and Spa k [ 16 ], IgnisHPC has na i e suppo
o m ul ilangua ge a pplica ions using bo h JVM (Ja a Vi ual Ma-
chine) and non-JVM-based languages. In his way, applica ions can
be implemen ed using 1 o se e al p og amming langua ges ol-
lowing an API inspi ed by Spa k’s one.
The p e ious e sion o IgnisHPC suppo ed na i el y C, C ++ ,
J a a, and Py hon. Ho w e e , seqki w as implemen ed using he
Go p og amming langua ge. Since BigSeqKi pa allelizes and op-
imizes he seqki ou ines using IgnisHPC, i was necessa y o
add suppo o his language in he ame wo k. Ano he solu-
ion would equi e o po he comple e oolki o a di e en lan-
gua ge, whic h is a di icul ask p one o e o s. I is wo h no -
ing ha , o he bes o ou kno wledge, no w adays IgnisHPC is
he i s pa allel compu ing amewo k o include na i e sup-
po o his language. Conside ing Spa k ins ead o IgnisHPC
is no an op ion because, as i was demons a ed in [ 14 ], when
using a nonna i e language code, da a ans e s be ween he
JVM and ex e nal p ocesses deg ade no iceabl y Spa k’s o e all
pe o mance.
Go is a p og amming langua ge wi h a simple syn ax ha was
designed o be easy o lea n and use. Wi h he elease o Go 1.18,
he language included suppo o Gene ics, which allows he c e-
a ion o unc ions , ypes , and me hods ha can wo k wi h any
da a ype . T his mak es Go an e ec i e and use - iendl y way o
implemen Big Da a in e aces . T he implemen a ion o Go in Ig-
nisHPC is simila o ha o C ++ , as bo h a e compiled and s a i-
cally yped languages. Ho w e e , Go eplaces he concep o inhe -
i ance wi h composi ion, which does no change he philosophy
o use in IgnisHPC. Big Da a unc ions a e s ill accessible h ough
he IgnisHPC API, and use s can c ea e hei own code by imple-
men ing he same in e aces.
One o he k e y ea u es o IgnisHPC is i s use o con aine s o
isola e and execu e code. Con aine s a e ligh weigh and po able,
making i easy o un IgnisHPC on a a ie y o di e en clus e s,
including bo h HPC and Big Da a. IgnisHPC is also ole an o ail-
u es, as he con aine s o p ocesses can be easil y es a ed i he e
a e issues. In pa icula , i some da a a e los , IgnisHPC has enough
in o ma ion abou how i was de i ed. In his way, only hose op-
e a ions needed o ecompu e he co esponding po ion o da a
a e pe o med.
We mus highligh ha al hough he IgnisHPC API [ 22 ] uses a
sequen ial no a ion, ope a ions on da a a e pe o med in pa allel.
As we poin ed ou , he IgnisHPC API was inspi ed by he Spa k
API in such a way ha IgnisHPC codes a e easily unde s and-
able by use s who a e amilia wi h Spa k. Table 1 shows a lis o
some o he mos impo an unc ions suppo ed by IgnisHPC. In
pa icula :
Map unc ions: The common c ha ac e is ic o ou ines belong-
ing o his ype is ha hey a ppl y he same unc ion o each
elemen in he da a. As a esul o he ans o ma ion, he
ou pu could be o di e en size wi h espec o he inpu .
Reduce unc ions: educe and eeReduce me hods a gg ega e
all he elemen s in he inpu da a using a unc ion. agg e-
ga e and eeAgg ega e a e a so o educ ion whe e he
ype o he inpu and ou pu da a is di e en . In his case,
2 unc ions a e necessa y; he i s one is applied o each
Downloaded om h ps://academic.oup.com/gigascience/a icle/doi/10.1093/gigascience/giad062/7233988 by UDC - Uni e sidade da Co una use on 26 Oc obe 2023
BigSeqKi | 3
Table 1: Some o he mos impo an IgnisHPC API unc ions
Type Func ions
Map map, la map, mapWi hIndex, il e , keyBy,
keys, alues, mapPa i ions, mapValues, e c.
Reduce educe, eeReduce, agg ega e, eeAgg ega e,
educeByKey, agg ega eByKey, e c.
G oup g oupBy, g oupByKey
So so , so By, so ByKey
I/O pa allelize,collec , op, ake,
sa eAsObjec File, sa eAsTex File,
sa eAsJsonFile, e c
SQL union, join, dis inc
Ma h sample, sampleByKey, ake, akeSample, coun ,
coun ByKey, coun ByValue, max, min, e c.
Balancing epa i ion, pa i ionByHash,
pa i ionByRandom, pa i ionBy
Pe sis ence pe sis , cache, unpe sis , uncache
elemen in a da a pa i ion, and he second one combines
he pa ial esul s ob ained o each pa i ion. educeByKey
and agg ega eByKey a e a ia ions whe e he ope a ion is
pe o med only among elemen s wi h he same k e y in such
a way ha he inal esul is a se o unique pai s wi h
alues calcula ed using educe o agg ega e ope a ions,
espec i el y.
G oup unc ions: These me hods g oup elemen s in a da a
ame acco ding o hei k e y alue ( g oupByKey ) o a use -
de ined unc ion ( g oupBy ).
So unc ions: In o de o so elemen s , IgnisHPC p o ides 3
unc ions: so , so ByKey , and so By . The i s me hod
uses he na u al o de and does no need any addi ional
unc ion. so ByKey so s he k e ys using hei na u al o de .
so By allows o use a use -de ined unc ion o speci y he o -
de o he elemen s. I he esul o applying ha unc ion o
2 elemen s is ue , hen he i s elemen should p ecede he
second one. All me hods suppo ascending and descending
o de .
SQL unc ions: These unc ions ope a e on da a ames. union
conca ena es 2 da a ames, join me ges elemen s o 2 da a
ames whose k e ys ma ch, and dis inc e u ns a new da a
ame a e emo ing he duplica e eco ds . T hese me hods
a e necessa y, o example, in many g aph p ocessing p ob-
lems.
O he unc ions: IgnisHPC implemen s se e al ope a ions ha
e u n a alue o he d i e code, bu hey do no modi y o
gene a e ne w s o ed da a. Spa k e e s o his ype o ope a-
ions as ac ions . Fo ins ance, IgnisHPC suppo s me hods such
as coun , ake , akeSample , and collec . The mos basic
ope a ion is coun ha e u ns he numbe o elemen s o a
s o ed da a collec ion. collec e u ns a collec ion wi h all
he elemen s s o ed in he execu o s o a ask. ake applies
a collec ope a ion bu ob ains only he i s n elemen s,
whe e n is chosen by he use . akeSample e u ns a an-
dom sample o n elemen s om he dis ibu ed da a, wi h
o wi hou eplacemen . Finall y, ano he in e es ing ou ine
is pa allelize , which dis ibu es he elemen s o a collec-
ion among he execu o s o o m a dis ibu ed da ase . In
his case, new s o ed da a a e c ea ed.
I is wo h no ing ha he IgnisHPC API unc ions allow use s
o pa allelize a code wi h a high le el o abs ac ion. In his way,
i is only necessa y o ocus on da a dependencies.
Table 2: Lis o commands included in bo h BigSeqKi and seqki .
Those commands wi h an as e isk suppo new unc ionali ies
no included in seqki
Basic commands
seq T ans o m sequences (ex ac ID, il e by leng h,
emo e ga ps, e e se complemen , e c.)
subseq Ge subsequences by egion/g /bed, including
lanking sequences
s a s Simple s a is ics o FASTA/Q iles: #seqs, min/max
leng h, N50, Q20%, Q30%, e c.
aidx
∗C ea e FASTA o FASTQ index ile and ex ac
subsequences
Fo ma con e sion
a2 q Re ie e co esponding FASTQ eco ds b y a FASTA
ile
q2 a Con e FASTQ ile o FASTA o ma
ansla e T ansla e DN A/RN A o p o ein sequence
Sea ching
g ep Sea ch sequences by
ID/name/sequence/sequence mo i s
loca e Loca e subsequences/mo i s
Se ope a ions
sample Sample sequences by numbe o p opo ion
mdup Remo e duplica ed sequences by
ID/name/sequence
common Find common sequences o mul iple iles by
ID/name/sequence
duplica e Duplica e sequences N imes
head P in i s N FASTA/Q eco ds
head-genome P in sequences o he i s genome wi h common
p e ixes in name
pai Ma ch up pai ed-end eads om 2 FASTQ iles
ange P in FASTA/Q eco ds in a ange (s a :end)
Edi
conca Conca ena e sequences wi h he same ID om
mul iple iles
eplace Replace name/sequence using a egula
exp ession
ename Rename duplica ed IDs
O de ing
so So sequences by ID/name/sequence/leng h
shu le Shu le sequences
Me hods
As we commen ed p e iousl y, BigSeqKi ( RRID:SCR _ 023592 ) speeds
up he seqki ou ines h ough pa alleliza ion and op imiza ion
echniques. Table 2 shows he ou ines suppo ed by he cu en
e sion o BigSeqKi . Despi e mos o he commands in seqki a e
sequen ial, we can classi y each command implemen a ion in o
3 ca ego ies acco ding o i s inhe en pa allelism:
Independen : i is a emba assingl y pa allel wo kload. As a
consequence, he compu a ion could be applied o all se-
quences in pa allel. An example is seq , a unc ion ha ans-
o ms sequences. In his case, he ans o ma ion onl y a ec s
each sequence indi idually.
P a iall y dependen : compu a ions could be done in pa allel,
bu he me hod equi es some ype o consensus o ob ain he
esul . Fo ins ance, s a s should me ge he pa ial esul s
compu ed o each sequence o calcula e some s a is ics o
he conside ed FASTA/Q ile.
De penden : de pendencies be ween sequences p e en he
me hod om being execu ed in pa allel. As a consequence,
Downloaded om h ps://academic.oup.com/gigascience/a icle/doi/10.1093/gigascience/giad062/7233988 by UDC - Uni e sidade da Co una use on 26 Oc obe 2023
4 | GigaScience , 2023, Vol. 12, No. 1
BigSeqKi equi es a comple e ne w algo i hm o pe o m
he same command in pa allel. mdup is a good example
because wi h he aim o emo ing duplica ed sequences,
i is necessa y o ead all o hem be o e gene a ing a
esul .
The in eg a ion, pa alleliza ion, and op imiza ion o each seqki
command in IgnisHPC will be di e en depending on i s ca ego y.
Mo e de ails a e p o ided below.
Independen ou ines
Fo hese commands, he compu a ion can be applied o all se-
quences in pa allel because he e a e no dependencies (commu-
nica ion) among hem. In o he w o ds, ou ines belonging o his
ca ego y can be p ocessed using an emba assingly pa allel ap-
p oac h. Conside ing he IgnisHPC (and Spa k) API, i is only nec-
essa y o use map unc ions o pa allelize he compu a ions. As
we poin ed ou , he common c ha ac e is ic o hese API unc-
ions is ha hey a ppl y he same ope a ion o each elemen in he
da a.
The ollowing BigSeqKi commands belong o his ca ego y: seq ,
subseq , s a s , q2 a , a2 q , ansla e , g ep , loca e , dupli-
ca e , and eplace (see Table 2 o de ails).
Pa ially dependen ou ines
As we men ioned, his ca ego y includes commands in which
compu a ions can be done in pa allel using map unc ions, bu
he me hods equi e some ype o consensus o ge he desi ed
ou come . T his consensus can be easily implemen ed using he
IgnisHPC API. The ollowing BigSeqKi commands belong o his
ca ego y:
s a s : s a is ics can be gene a ed in pa allel bu he i-
nal esul m us be unique, so all pa ial esul s m us be
me ged using a educ ion ( educe ope a ion in he IgnisHPC
API).
head : sequences should know hei posi ion inside he ile
o c hec k i hey a e inside he head window . T o do ha , i is
necessa y o use mapWi hIndex , a special map ope a ion in-
cluded in he IgnisHPC API ha allows each elemen o know
i s global index wi hin a da a s uc u e.
head-genome : simila o head , bu no all sequences a e alid.
In o de o de e mine he window, in alid sequences mus be
emo ed i s .
ange : also simila o head . Sequences should know hei
posi ion inside he ile o c hec k i hey a e wi hin he ange
window.
g ep : al hough his command was included in he p e ious
ca ego y, a command op ion ( --dele e-ma ched ) limi s he
numbe o esul s o jus 1 pe sea ch pa e n. In such cases,
i is necessa y o emo e he ex a esul s.
aidx : also simila o head , sequences compu e hei
o se s inside he inpu ile using mapPa i ionWi hIn-
dex and exchange he in o ma ion be ween execu o s
o pe o m a pa allel indexing ope a ion wi h a simple
map .
Dependen ou ines
Commands belonging o his ca ego y ha e an implemen a ion in
seqki ha by i s na u e canno be pa allelized. Ho w e e , IgnisHPC
allows us o de ine he implemen a ion a a high le el, whic h in-
c eases no iceabl y he p oduc i i y. Beha io s and unc ionali ies
will be p ese ed in BigSeqKi bu h ough a comple e ne w pa allel
implemen a ion. In pa icula :
sample : a sequen ial sampling can be pe o med in pa allel i
we spli he sequences and un a sample o each pa i ion. I
was ma hema ically p o en ha sampling wi hou eplace-
men ollows a hype geome ic unc ion [ 23 ]. In his way, we
can calcula e he p opo ion o he sample ha co esponds
o each pa i ion.
mdup : sequences a e g ouped ( g oupBy API unc ion) using
a hash wi h he ID, name, o sequence. In hose g oups con-
aining mo e han 1 elemen , a sea ch o duplica es is ca ied
ou o emo e hem.
pai and conca : sequences o he inpu iles gene a e k e y–
alue pai s whe e he k e y is he ID and he alue is he se-
quence wi h i s index ile ( map ). P ai s a e uni ied by means o
union and g ouped using g oupByKey . A e w a d, sequences
in he same g oup a e pai ed o conca ena ed i hey belong
o di e en iles.
common : he i s s age o he command is he same one ex-
plained abo e o pai and conca . Then i a sequence can be
ound in all iles, we c hec k i s index ile, o a oid i s dele ion.
ename : sequences a e g ouped ( g oupBy ) using hei ID, and
hen IDs in he same g oup a e enamed.
so : he sequen ial so algo i hm implemen ed in seqki is
eplaced by a sample Me geSo [ 24 ] algo i hm ha can be
e icien ly execu ed in pa allel in a dis ibu ed en i onmen .
shu le : sequences shu ling can be implemen ed using he
IgnisHPC API unc ion pa i ionByRandom .
Ano he implemen a ion de ails
In o de o pa allelize and in eg a e he seqki ou ines in o Ig-
nisHPC, i was necessa y o s a conside ing he sequence pa se .
I akes a s eam o c ha ac e s in F ASTA and F ASTQ o ma and
gene a es a da a s uc u e wi h he sequence ep esen a ion. In
seqki , his s eam can be ep esen ed by a ile o he s anda d in-
pu . In BigSeqKi , his s eam is implemen ed using he IgnisHPC
i e a o s, whic h g an he use s access o he da a pa i ions. In
his way, BigSeqKi will ead he da a om a ile and spli i in
m ul iple pa i ions, whic h acili a es hei pa allel p ocessing. In
pa icula , each wo ke eads a po ion o he inpu ile, so he
inpu /ou pu (I/O) ope a ion is pe o med in pa allel. The e is 1
wo ke pe compu ing node. Wi hin each wo ke , i s po ion o he
ile is u he di ided among he a ailable h eads , imp o ing he
o e all I/O pe o mance. As a esul , he seqki command a gu-
men s ha a ec ile p ocessing will ha e no e ec in BigSeqKi .
Fo example, he -- wo-pass op ion, which eads a ile mul iple
imes ins ead o s o ing all he sequences in memo y, does no
make sense in BigSeqKi . We mus highligh ha he ac o spli -
ing he inpu iles be ween se e al compu ing nodes in BigSeqKi
means ha he memo y consumed by node is also spli , which
allows ou ool o wo k wi h la ge da ase s. In addi ion, BigSeqKi
also educes he memo y oo p in by only s o ing he IDs and
indices o each sequence.
Ano he impo an ad an a ge o using IgnisHPC is how mem-
o y is handled. Use s can choose a ype o s o a ge acco ding o
hei pa icula case. Fo ins ance, i an inpu ile is oo la ge
o be k e p comple ely in he se e memo y, i could be s o ed
comp essed in memo y o in disk. Pe o mance would be lowe ,
bu i could be success ull y p ocessed. Tha scena io is no
conside ed by seqki ha simply would aise an “ou o mem-
o y” e o . In pa icula , BigSeqKi suppo s he ollowing s o a ge
op ions:
Downloaded om h ps://academic.oup.com/gigascience/a icle/doi/10.1093/gigascience/giad062/7233988 by UDC - Uni e sidade da Co una use on 26 Oc obe 2023
BigSeqKi | 5
In-Memo y: i is he bes pe o me since all da a a e s o ed in
memo y. I is he de aul op ion.
Raw memo y: da a a e s o ed in a memo y bu e using a se i-
alized bina y o ma . Ex a memo y consump ion is minimal
and he bu e is comp essed by Zlib.
Disk: simila o aw memo y bu he bu e is s o ed as a
POSIX ile. Al hough he pe o mance is signi ican ly wo se,
i enables wo king wi h as amoun s o da a ha canno be
en i el y k e p in memo y.
On he o he hand, mdup , common , and pai commands in
seqki use hash unc ions o c hec k duplica es. I is well known
ha hash unc ions can p oduce he same esul o di e en
alues . T his e en is commonly known as a hash collision. How-
e e , seqki does no c hec k o collisions, so i is possible o
gene a e inco ec esul s. BigSeqKi uses hashes o g oup se-
quences bu hen c hec ks o collisions by compa ing he eal
alues.
Finally, seqki and o he s a e-o - he-a ools build index iles
( aidx ou ine) o speed up some o he asks (e.g., sea ches). Al-
hough BigSeqKi is also capable o c ea ing hose index iles, i
does no equi e hem o imp o e i s pe o mance since da a
wi hin IgnisHPC a e al eady indexed. In o he w o ds, he index
is c ea ed while eading he inpu ile.
New unc ionali ies
BigSeqKi no only enables he pa alleliza ion o seqki unc ions
bu also imp o es i s algo i hms o p o ide bene i s e en o se-
quen ial execu ions and includes addi ional unc ionali ies. In
pa icula , he aidx command in seqki implemen s indexing
o FASTA iles using he sam ools o ma , bu FASTQ iles a e
no suppo ed. BigSeqKi adds suppo o his ype o iles and
gene a es an index ile using he sam ools o ma as well. No e
ha his is he mos widesp ead o ma and is also suppo ed
by o he s a e-o - he-a ools . T he e o e, BigSeqKi allows index-
ing o bo h FASTA and FASTQ iles using he same syn ax han
seqki .
How o Use BigSeqKi
BigSeqKi can be used in 2 di e en wa ys . T he i s one is by means
o a command-line in e ace (CLI). This a pp oac h is simila o he
“command subcommand” s uc u e adop ed by seqki [ 13 ]. In his
way, i is only necessa y o selec a subcommand o ou ine (see
a comple e lis in Table 2 ) and pass i s a gumen s h ough com-
mand line. As we men ioned p e iousl y, o imp o e he usabili y
and acili a e he adop ion o BigSeqKi , i implemen s he same
command in e ace as seqki .
Since BigSeqKi uns wi hin he IgnisHPC ame wo k, i is neces-
sa y o send he BigSeqKi ou ine h ough he IgnisHPC submi e .
Fo ins ance, i we a e unning BigSeqKi on a local se e , he ol-
lowing exp ession uses he ou ine seq o p in he name o he
sequences included in a FASTA ile o an ou pu ile:
The e o e, he syn ax should be: ignis-submi ig-
nishpc/ ull bigseqki < cmd > < a gumen s > .
In addi ion, use s can also speci y h ough a gumen s he num-
be o ins ances , co es , and memo y (in GB) o be used in he exe-
cu ion. By de aul , hose alues a e se o 1. Fo example, we can
execu e he p e ious command using 2 co es:
Figu e 3:
Example o Py hon code using he BigSeqKi ou ines.
Unlike he o he s a e-o - he-a ools, BigSeqKi can also
be execu ed on a pa allel clus e . Typical HPC clus e s ha e
Slu m [ 20 ] as he p e e ed esou ce mana ge and Singula i y [ 25 ]
as a con aine -based echnology. In his case, use s will send
he job using he ignis-slu m submi e ins ead o ignis-
submi .
On he o he hand, BigSeqKi can also be used as a bioin o ma -
ics lib a y. I is wo h no ing ha BigSeqKi was implemen ed in Go
language. Ho w e e , hanks o he mul ilanguage suppo p o ided
by IgnisHPC, i is possible o call BigSeqKi ou ines om C/C ++ ,
Py hon, Ja a, and Go applica ions wi hou addi ional o e head.
An example o Py hon code is shown in Fig. 3 . This example is
equi alen o he p e ious one used in he explana ion o he CLI.
Since BigSeqKi has been c ea ed as a lib a y, i only needs o be im-
po ed o be used. Func ions in BigSeqKi do no use iles as inpu ;
hey use Da aF ames ins ead, an abs ac ep esen a ion o pa al-
lel da a used by IgnisHPC (simila o RDDs in Spa k). P a ame e s
a e g ouped in a da a s uc u e whe e eac h ield ep esen s he
long names o a pa ame e . We mus highligh ha BigSeqKi unc-
ions can be link ed (lik e sys em pipes using “| ”), so he Da aF ame
gene a ed by one can be used as inpu o ano he . In his way,
in eg a ing BigSeqKi ou ines in a mo e complex code is eally
easy.
The code s a s ini ializing he IgnisHPC ame wo k (line 5 in
Fig. 3 ). Nex , a clus e o con aine s is con igu ed and buil (lines
om 7 o 15). Mul iple pa ame e s can be used o con igu e he en-
i onmen suc h as ima ge , numbe o con aine s , numbe o co es ,
and memo y pe con aine . In his example, we will use 1 node
(ins ances) and 2 co es by node. A e con igu ing he IgnisHPC ex-
ecu ion en i onmen , he BigSeqKi code ac ually s a s. Fi s , we
ead he inpu ile (line 17). The e is a di e en unc ion o ead-
ing F ASTA and F ASTQ iles. All he inpu sequences a e s o ed as a
single da a s uc u e . T he nex s age consis s o p in ing he name
o he sequences included in he FASTA ile (line 19). The unc ion
Downloaded om h ps://academic.oup.com/gigascience/a icle/doi/10.1093/gigascience/giad062/7233988 by UDC - Uni e sidade da Co una use on 26 Oc obe 2023

6 | GigaScience , 2023, Vol. 12, No. 1
akes as pa ame e s he sequences and he op ions ha speci y
i s beha io . Finally, he names o he sequences a e w i en o
disk. I is impo an o highligh ha lazy e alua ion is pe o med,
so unc ions a e onl y execu ed when he esul is equi ed o be
sa ed on disk.
Expe imen al Resul s
In his sec ion, we analyze he pe o mance esul s ob ained by
BigSeqKi wi h espec o o he s a e-o - he-a ools. In pa ic-
ula , we ha e conside ed sam ools , py as x , and seqki o hei
pe o mance and numbe o commands suppo ed. Expe imen s
we e conduc ed using up o 8 compu ing nodes o he FinisT e -
ae III [ 26 ] supe compu e ins alled a CESGA (Spain). Each node
con ains a 32-co e In el Xeon Ice Lake 8352Y @2.2 GHz p oces-
so and 256 GB o memo y in e connec ed wi h In iniband HDR
100. I is a Linux clus e unning Rocky Linux 8.4 (ke nel 4.18.0).
We ha e used Singula i yCE 3.9.7 (con aine s), IgnisHPC 2.2, py-
as x 0.8.4, sam ools 1.16.1, and seqki 2.3.1 (wi h Slu m as clus-
e manage and Lus e as dis ibu ed ile sys em).
The pe o mance e alua ion was ca ied ou using as inpu 6
di e en F ASTA/F ASTQ iles ha co e a wide a ie y o c ha ac e -
is ics and sizes . T he main ea u es o hese iles a e he ollowing:
D
1 ( m64013e_210227_222017.hi i_ eads —FASTA—
24 GB):
Numbe o sequences: 1.2M, Minimum leng h: 85, A e age
leng h: 19.7K, Maximum leng h: 48.5K.
D
2
( SRR642648_1. il —FASTQ—24.1 GB):
Numbe o sequences: 98.7M, Minimum leng h: 100, A e a ge
leng h: 100, Maximum leng h: 100.
D
3 ( Homo_sapiens.GRCh38.dna_sm. ople el —FASTA—
59.7 GB):
Numbe o sequences: 639, Minimum leng h: 970, A e a ge
leng h: 98.8M, Maximum leng h: 248.9M.
D
4
( ERR4667750 —FASTQ—79.1 GB):
Numbe o sequences: 318.1M, Minimum leng h: 101, A e a ge
leng h: 101, Maximum leng h: 101.
D
5
( unip o _ embl —FASTA—104 GB):
Numbe o sequences: 229.9M, Minimum leng h: 7, A e a ge
leng h: 351.6, Maximum leng h: 45.3K.
D
6
( DRR002180_2 —FASTQ—395 GB):
Numbe o sequences: 1.625B, Minimum leng h: 101, A e a ge
leng h: 101, Maximum leng h: 101.
As example o illus a e he bene i s o ou ool, we will e alu-
a e he ollowing u ili ies (see Table 2 o a comple e lis o com-
mands): aidx builds an index o F ASTA/F ASTQ iles, loca e
loca es sequences ollowing some sea ch pa e n, eplace e-
places a name/sequence using a egula exp ession, mdup e-
mo es duplica ed sequences , sample selec s sequences by num-
be o p opo ion, seq ans o ms sequences (ex ac ID, il e
by leng h, e c.) and emo es ga ps, and so so s sequences
by ID/name/sequence/leng h. We will also include he pe o -
mance esul s o he co esponding u ili ies, i hey exis , o sam-
ools , py as x , and seqki . Execu ion imes o all he ools con-
side ed include he o e head o loading sequences in o mem-
o y and he subsequen w i ing o esul s o disk. No e ha he
“2-pass” a gumen o seqki was no used in he expe imen s.
Eac h esul was compu ed as he median o 5 expe imen s. Fo
he sake o ep oducibili y, all he codes and sc ip s used o
pe o ming he benchma ks a e eely a ailable a he BigSeqKi
eposi o y.
Fi s , in o de o p o ide an o e all idea abou he scalabil-
i y and pe o mance o BigSeqKi wi h espec o he o he s a e-
o - he-a ools, we will show he speedups ob ained o he D
4
da ase using di e en numbe o co es . T he beha io is e y sim-
ila when conside ing he o he da ase s. Resul s in log scale a e
displayed in Fig. 4 . Speedups we e calcula ed using as e e ence
he sequen ial execu ion (1 co e) o he co esponding BigSeqKi
command. Acco ding o he esul s, se e al conclusions can be
made. I can be obse ed ha he scalabili y o BigSeqKi is qui e
good, eac hing speedups up o 27.7 ×and 95.7 ×( seq command)
using 1 se e (32 co es) and 8 compu ing nodes (256 co es), e-
spec i el y. No e ha speedups o some ou ines a e no highe
when using 256 co es due o a small ac ion o he code ha
should be execu ed sequen ially (Amdahl’s law).
While sam ools and py as x ou ines a e always p ocessed se-
quen ially, seqki uses a mul i h eaded app oach o (pa ly) pa -
allelize some commands. Ho w e e , i s scalabili y is limi ed o
use a ew h eads on a single se e (compu ing node). This
is he case o loca e . I s bes speedup onl y eac hes 11.3 ×(32
co es) while his alue inc eases un il 19.6 ×wi h BigSeqKi . I
8 nodes a e used, BigSeqKi is 49.9 × as e han he sequen ial
execu ion.
Fo all he commands s udied, BigSeqKi clea ly ou pe o ms
sam ools , py as x , and seqki . The e a e onl y a e w cases using 1 co e
whe e he speedups o hese ools a e sligh ly g ea e han 1 (e.g.,
execu ing he aidx ou ine wi h sam ools and py as x ). Ho w e e ,
o he commands such as so and sample a e p ocessed as e
wi h BigSeqKi e en using 1 co e.
Tables om 3 o 9 display, o all he da ase s, he execu ion
imes o BigSeqKi and he o he s a e-o - he-a ools when un-
ning aidx , loca e , eplace , mdup , sample , seq , and so u il-
i ies, espec i el y. Speedups wi h espec o he sequen ial exe-
cu ion o he co esponding BigSeqKi command a e shown be-
ween b ac ke s . Highligh ed is he as es ime o e all and he
co esponding speedup. No e ha BigSeqKi s o es comp essed
in memo y he la ges da ase D
6 when using 1 compu ing
node since i exceeds he memo y capaci y o an indi idual
se e (see he Raw memo y s o age op ion in he Backg ound
sec ion).
Fo all he expe imen s conduc ed, BigSeqKi is always he
as es ool bo h conside ing a single se e (1 node) o se e al
compu ing nodes. In any case, le ’s ake a look in de ail o he be-
ha io o each command:
aidx (Table 3 ): BigSeqKi speedups ange om 5.4 × o 27.4 ×
conside ing a single se e (32 co es) and om 7.2 × o 144 ×
wi h 8 nodes. I means, o example, building he index ile
o ou la ges da ase D
6 (395 GB) in jus 5.8 minu es (sin-
gle se e ), while sam ools and py as x equi e abou 2.1 hou s.
This ime dec eases o 1 minu e when BigSeqKi uses 8 nodes.
As men ioned p e iousl y, he aidx ou ine in seqki does no
suppo FASTQ iles (D
2
, D
4
, and D
6
).
loca e (Table 4 ): he sea ching ou ines, g ep and loca e ,
a e e y expensi e in e ms o compu a ions. No e ha
conside ing sequen ial p ocessing, loca e akes mo e han
3 hou s o p ocess ou smalles da ase D
1
independen ly o
he ool conside ed. This ime inc eases o mo e han 3 days
o compu a ion o D
6
. seqki has a m ul i h ead e sion o
loca e , which ob ains speedups om 10.5 × o 18.8 ×. These
speedups a e always lowe han he ones ob ained by BigSe-
qKi on a single se e . I is impo an o highligh ha seqki
aises an ou -o -memo y e o when p ocessing D
6
wi h 1, 2,
and 4 co es. On he o he hand, when using 8 nodes, BigSe-
Downloaded om h ps://academic.oup.com/gigascience/a icle/doi/10.1093/gigascience/giad062/7233988 by UDC - Uni e sidade da Co una use on 26 Oc obe 2023
BigSeqKi | 7
Figu e 4: Speedups (in log scale) ob ained by BigSeqKi and o he s a e-o - he-a ools wi h espec o he BigSeqKi sequen ial ime when execu ing
di e en commands using D
4
as inpu . No e ha loca e was pa allelized in seqki .
qKi ac hie es no iceable speedups up o 104.1 ×. In his way, i
is able o educe he ime necessa y o execu e he loca e
command wi h ou la ges da ase D
6 om 3 days o only
0.8 hou s.
eplace (Table 5 ): his ou ine (o an equi alen ) is no
suppo ed by sam ools and py as x . In his case, BigSeqKi is
om ens o hund eds o imes as e han seqki , eac hing
speedups up o 159.8 ×.
mdup (Table 6 ): his ou ine is also no suppo ed by sam ools
and py as x . In his case, BigSeqKi is ens o imes as e han
seqki , ac hie ing a maxim um speedup o 74.7 ×when emo -
ing he duplica ed sequences in D
5
.
sample (Table 7 ): ope a ion no suppo ed by sam ools . BigSe-
qKi is again as e han he o he ools, inc easing he
speedups as he inpu da a size g ows. I can be obse ed
ha BigSeqKi is able o sample sequences in seconds. Fo in-
s ance , p y as x and seqki ake abou 3 hou s o p ocess D
6
,
while BigSeqKi equi es jus 2 minu es.
seq (Table 8 ): ope a ion no suppo ed by sam ools . Pe o -
mance esul s a e simila o he sample ones in such a way
ha BigSeqKi il e s sequences by ID in a ew seconds, achie -
ing a no iceable speedup o 169.7 ×. I should be no ed ha
among he ou ines examined in his s udy, seq is he leas
compu a ionally demanding.
so (Table 9 ): his ou ine was no included in py as x . In
gene al, he pe o mance o sam ools and seqki is poo . And,
mos impo an ly, bo h ools p oduce memo y e o s when
p ocessing he la ges da ase D
6
, so i canno be so ed. How-
e e , BigSeqKi so s D
6
21.8 ×and 131.1 × as e han he se-
quen ial e sion using a single se e and 8 compu ing nodes,
espec i el y. I means ha he ime dec eases om 5 hou s o
ba el y 2 minu es.
Finall y, we m us highligh ha one o he main easons o he
di e ences in he speedups be ween da ase s unning he same
command wi h BigSeqKi is he load balance be ween h eads. I
will depend on he c ha ac e is ics o he da ase : numbe o se-
quences and hei leng h.
Conclusions
Cu en s a e-o - he-a ools such as seqki , py as x , and sam ools
a e no eady o p ocessing and manipula ing e y la ge FASTA
and FASTQ iles because all o hem a e mainl y based on sequen-
ial p ocessing. To ha end, we ha e p esen ed BigSeqKi , which
pa allelizes and op imizes he seqki ou ines using he IgnisHPC
compu ing ame w o k. Since seqki w as p og ammed in Go, Ig-
nisHPC was ex ended o suppo ha language. As a consequence,
IgnisHPC is no w adays he i s pa allel compu ing ame wo k ha
suppo s Go. BigSeqKi can be easily ins alled on a local se e o
on a clus e . In addi ion, i can be used om he command line
o as a lib a y. Thanks o he mul ilanguage suppo o IgnisHPC,
BigSeqKi ou ines can be called om C/C ++ , Py hon, Ja a, and Go
codes.
Downloaded om h ps://academic.oup.com/gigascience/a icle/doi/10.1093/gigascience/giad062/7233988 by UDC - Uni e sidade da Co una use on 26 Oc obe 2023
8 | GigaScience , 2023, Vol. 12, No. 1
Table 3: Execu ion imes (seconds) using di e en numbe o co es: aidx command. Highligh ed a e as es ime and numbe o imes
as e han sequen ial BigSeqKi
1 2 4 8 16 32 64 (2 nodes) 128 (4 nodes) 256 (8 nodes)
D
1
sam ools 86.2 [1.03 ×] – – – – – – – –
py as x 109.2 [0.81 ×] – – – – – – – –
seqki 75.4 [1.17 ×] – – – – – – – –
BigSeqKi 88.4 46.0 35.3 26.3 19.4 16.3 [5.4 ×] 13.6 12.3 [7.2 ×] 12.5
D
2
sam ools 165.6 [1.06 ×] – – – – – – – –
py as x 177.9 [0.99 ×] – – – – – – – –
BigSeqKi 175.9 90.8 67.4 50.3 39.1 31.4 [5.6 ×] 23.4 19.1 15.5 [11.3 ×]
D
3
sam ools 210.0 [0.77 ×] – – – – – – – –
py as x 131.2 [1.23 ×] – – – – – – – –
seqki 131.8 [1.23 ×] – – – – – – – –
BigSeqKi 161.9 83.9 61.7 24.5 17.5 15.7 [10.3 ×] 13.6 13.4 [12.1 ×] 14.7
D
4
sam ools 538.4 [1.27 ×] – – – – – – – –
py as x 615.5 [1.11 ×] – – – – – – – –
BigSeqKi 684.2 346.6 175.2 90.3 45.4 29.3 [23.3 ×] 19.6 15.3 12.5 [54.7 ×]
D
5
sam ools 771.0 [1.08 ×] – – – – – – – –
py as x 634.3 [1.31 ×] – – – – – – – –
seqki 1,096.2 [0.76 ×] – – – – – – – –
BigSeqKi 829.8 361.3 179.4 89.3 49.4 30.3 [27.4 ×] 23.6 19.3 16.5 [50.3 ×]
D
6
sam ools 7,651.6 [1.14 ×] – – – – – – – –
py as x 7,712.5 [1.13 ×] – – – – – – – –
BigSeqKi 8,712.3 4,423.3 2,282.2 1,191.9 640.2 350.4 [24.9 ×] 129.5 85.3 60.5 [144 ×]
Table 4: Execu ion imes (seconds) using di e en numbe o co es: loca e command. Highligh ed a e as es ime and numbe o imes
as e han sequen ial BigSeqKi
1 2 4 8 16 32 64 (2 nodes) 128 (4 nodes) 256 (8 nodes)
D
1
py as x 11,523.5 [1.0 ×] – – – – – – – –
seqki 12,822.9 6,385.0 3,210.9 1,731.4 940.5 612.4 [18.8 ×] – – –
BigSeqKi 11,486.2 6,286.1 3,180.0 1,637.3 850.9 470.6 [24.4 ×] 264.6 156.9 110.3 [104.1 ×]
D
2
py as x 8,841.2 [1.2 ×] – – – – – – – –
seqki 12,319.8 6,909.4 3,335.9 1,746.2 997.3 971.2 [10.5 ×] – – –
BigSeqKi 10,168.6 5,264.5 2,711.5 1,412.2 814.6 545.4 [18.6 ×] 384.7 293.5 234.9 [43.3 ×]
D
3
py as x 13,075.3 [1.1 ×] – – – – – – – –
seqki 14,281.6 8,161.7 5,009.6 3,184.1 1,832.4 1,054.9 [14.1 ×] – – –
BigSeqKi 14,834.2 8,223.3 4,572.8 2,585.6 1,494.6 872.1 [17.0 ×] 532.8 365.9 262.5 [56.5 ×]
D
4
py as x 30,028.3 [1.05 ×] – – – – – – – –
seqki 39,640.5 21,257.6 10,803.1 5,715.1 3,369.7 2,795.2 [11.3 ×] – – –
BigSeqKi 31,615.2 16,832.1 8,531.9 4,433.3 2,466.8 1,609.9 [19.6 ×] 1,074.7 794.6 633.5 [49.9 ×]
D
5
py as x 27,876.5 [1.06 ×] – – – – – – – –
seqki 31,301.8 16,884.7 9,141.1 4,698.4 2,971.8 2,802.9 [10.5 ×] – – –
BigSeqKi 29,540.7 15,431.3 8,120.2 4,401.4 2,454.5 1,443.9 [20.5 ×] 908.1 599.5 440.9 [67 ×]
D
6
py as x 270,214 [1.02 ×] – – – – – – – –
seqki Ou o Mem. Ou o Mem. Ou o Mem. 40,122 23,075 18,309 [15.0 ×] – – –
BigSeqKi 275,680 141,095 72,110 37,140 19,810 11,477 [24.0 ×] 7,003 4,422 3,080 [89.5 ×]
Downloaded om h ps://academic.oup.com/gigascience/a icle/doi/10.1093/gigascience/giad062/7233988 by UDC - Uni e sidade da Co una use on 26 Oc obe 2023
BigSeqKi | 9
Table 5: Execu ion imes (seconds) using di e en numbe o co es: eplace command. Highligh ed a e as es ime and numbe o
imes as e han sequen ial BigSeqKi
1 2 4 8 16 32 64 (2 nodes) 128 (4 nodes) 256 (8 nodes)
D
1
seqki 132.4 [1.02 ×] – – – – – – – –
BigSeqKi 134.5 69.5 36.1 25.0 18.7 12.7 [10.6 ×] 13.1 13.6 12.5 [10.8 ×]
D
2
seqki 395.7 [1.04 ×] – – – – – – – –
BigSeqKi 410.6 213.5 110.1 74.5 56.9 29.7 [13.8 ×] 16.8 13.9 13.5 [30.4 ×]
D
3
seqki 410.5 [0.99 ×] – – – – – – – –
BigSeqKi 406.7 209.5 109.4 74.0 56.1 29.5 [13.8 ×] 15.3 13.6 12.9 [31.5 ×]
D
4
seqki 543.7 [1.05 ×] – – – – – – – –
BigSeqKi 570.3 293.5 109.4 74.0 55.1 29.4 [19.4 ×] 20.3 13.5 12.5 [45.6 ×]
D
5
seqki 1,572.1 [1.03 ×] – – – – – – – –
BigSeqKi 1,621.7 819.9 420.1 217.2 115.1 62.9 [25.8 ×] 37.2 24.2 18.5 [87.7 ×]
D
6
seqki 8,980.8 [1.07 ×] – – – – – – – –
BigSeqKi 9,620.8 5,000.3 2,605.2 1,364.2 717.7 387.5 [24.8 ×] 142.1 90.5 60.2 [159.8 ×]
Table 6: Execu ion imes (seconds) using di e en numbe o co es: mdup command. Highligh ed a e as es ime and numbe o imes
as e han sequen ial BigSeqKi
1 2 4 8 16 32 64 (2 nodes) 128 (4 nodes) 256 (8 nodes)
D
1
seqki 178.9 [1.01 ×] – – – – – – – –
BigSeqKi 180.5 94.3 50.2 35.1 27.1 15.8 [11.4 ×] 14.8 14.4 13.8 [13.1 ×]
D
2
seqki 320.6 [1.04 ×] – – – – – – – –
BigSeqKi 333.3 174.7 93.5 65.9 49.9 26.5 [12.6 ×] 15.9 14.1 [23.6 ×] 15.0
D
3
seqki 515.5 [0.91 ×] – – – – – – – –
BigSeqKi 469.5 246.7 182.7 127.5 96.1 51.4 [9.1 ×] 27.4 20.9 20.6 [22.8 ×]
D
4
seqki 729.9 [0.99 ×] – – – – – – – –
BigSeqKi 720.5 378.5 197.5 139.7 102.9 54.0 [13.3 ×] 30.5 16.4 14.1 [51.1 ×]
D
5
seqki 2,173.6 [0.97 ×] – – – – – – – –
BigSeqKi 2,100.2 1,110.4 612.3 341.2 195.1 115.2 [18.2 ×] 70.5 43.2 28.1 [74.7 ×]
D
6
seqki 9,937.1 [1.11 ×] – – – – – – – –
BigSeqKi 11,022.3 5,578.5 3,006.7 1,709.6 1,004.1 600.1 [18.4 ×] 275.2 241.6 228.8 [48.2 ×]
Rega ding he expe imen al esul s, BigSeqKi clea ly ou pe -
o ms seqki , py as x , and sam ools o all he asks conside ed. On
a single se e , BigSeqKi is o e all ens o imes as e han hose
s a e-o - he-a ools, eac hing speedups wi h espec o he BigSe-
qKi sequen ial ime up o 27.7 ×. Conside ing an 8-node clus e ,
BigSeqKi is e en as e , eac hing speedups highe han 160 ×. I
means ha mos o he asks can be pe o med in jus a ew sec-
onds . Fo ins ance , ou oolki e ec i el y educes he execu ion
ime o he loca e command on ou la ges da ase om 3 days
o a me e 0.8 hou s. I is impo an o highligh ha seqki and
sam ools we e unable o p ocess ha da ase wi h some ou ines
due o memo y issues, which con i ms ha cu en s a e-o - he-
a ools a e no well i ed o p ocessing e y la ge iles.
As u u e w o k, w e plan o add also he emainde seqki com-
mands no included in he cu en e sion o BigSeqKi : sliding ,
sana , x2 ab , ab2 x , con e , amplicon , ish , spli , spli 2 ,
es a , and mu a e . No e ha all o hem a e independen ou-
ines, so hei implemen a ion using IgnisHPC will be s aigh o -
w a d.
A ailabili y o Sou ce Code and
Requi emen s
P ojec name: BigSeqKi
P ojec homepa ge: h ps://gi hub.com/ci iususc/BigSeqKi
Downloaded om h ps://academic.oup.com/gigascience/a icle/doi/10.1093/gigascience/giad062/7233988 by UDC - Uni e sidade da Co una use on 26 Oc obe 2023