Links to Exploration step
Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en">Developing eThread Pipeline Using SAGA-Pilot Abstraction for Large-Scale Structural Bioinformatics</title>
<author><name sortKey="Ragothaman, Anjani" sort="Ragothaman, Anjani" uniqKey="Ragothaman A" first="Anjani" last="Ragothaman">Anjani Ragothaman</name>
<affiliation><nlm:aff id="I1">RADICAL, ECE, Rutgers University, New Brunswick, NJ 08901, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Boddu, Sairam Chowdary" sort="Boddu, Sairam Chowdary" uniqKey="Boddu S" first="Sairam Chowdary" last="Boddu">Sairam Chowdary Boddu</name>
<affiliation><nlm:aff id="I2">Center for Computation and Technology, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Kim, Nayong" sort="Kim, Nayong" uniqKey="Kim N" first="Nayong" last="Kim">Nayong Kim</name>
<affiliation><nlm:aff id="I2">Center for Computation and Technology, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Feinstein, Wei" sort="Feinstein, Wei" uniqKey="Feinstein W" first="Wei" last="Feinstein">Wei Feinstein</name>
<affiliation><nlm:aff id="I3">Department of Biological Sciences, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Brylinski, Michal" sort="Brylinski, Michal" uniqKey="Brylinski M" first="Michal" last="Brylinski">Michal Brylinski</name>
<affiliation><nlm:aff id="I2">Center for Computation and Technology, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
<affiliation><nlm:aff id="I3">Department of Biological Sciences, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Jha, Shantenu" sort="Jha, Shantenu" uniqKey="Jha S" first="Shantenu" last="Jha">Shantenu Jha</name>
<affiliation><nlm:aff id="I1">RADICAL, ECE, Rutgers University, New Brunswick, NJ 08901, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Kim, Joohyun" sort="Kim, Joohyun" uniqKey="Kim J" first="Joohyun" last="Kim">Joohyun Kim</name>
<affiliation><nlm:aff id="I2">Center for Computation and Technology, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">PMC</idno>
<idno type="pmid">24995285</idno>
<idno type="pmc">4066679</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4066679</idno>
<idno type="RBID">PMC:4066679</idno>
<idno type="doi">10.1155/2014/348725</idno>
<date when="2014">2014</date>
<idno type="wicri:Area/Pmc/Corpus">000505</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en" level="a" type="main">Developing eThread Pipeline Using SAGA-Pilot Abstraction for Large-Scale Structural Bioinformatics</title>
<author><name sortKey="Ragothaman, Anjani" sort="Ragothaman, Anjani" uniqKey="Ragothaman A" first="Anjani" last="Ragothaman">Anjani Ragothaman</name>
<affiliation><nlm:aff id="I1">RADICAL, ECE, Rutgers University, New Brunswick, NJ 08901, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Boddu, Sairam Chowdary" sort="Boddu, Sairam Chowdary" uniqKey="Boddu S" first="Sairam Chowdary" last="Boddu">Sairam Chowdary Boddu</name>
<affiliation><nlm:aff id="I2">Center for Computation and Technology, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Kim, Nayong" sort="Kim, Nayong" uniqKey="Kim N" first="Nayong" last="Kim">Nayong Kim</name>
<affiliation><nlm:aff id="I2">Center for Computation and Technology, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Feinstein, Wei" sort="Feinstein, Wei" uniqKey="Feinstein W" first="Wei" last="Feinstein">Wei Feinstein</name>
<affiliation><nlm:aff id="I3">Department of Biological Sciences, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Brylinski, Michal" sort="Brylinski, Michal" uniqKey="Brylinski M" first="Michal" last="Brylinski">Michal Brylinski</name>
<affiliation><nlm:aff id="I2">Center for Computation and Technology, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
<affiliation><nlm:aff id="I3">Department of Biological Sciences, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Jha, Shantenu" sort="Jha, Shantenu" uniqKey="Jha S" first="Shantenu" last="Jha">Shantenu Jha</name>
<affiliation><nlm:aff id="I1">RADICAL, ECE, Rutgers University, New Brunswick, NJ 08901, USA</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Kim, Joohyun" sort="Kim, Joohyun" uniqKey="Kim J" first="Joohyun" last="Kim">Joohyun Kim</name>
<affiliation><nlm:aff id="I2">Center for Computation and Technology, Louisiana State University, Baton Rouge, LA 70803, USA</nlm:aff>
</affiliation>
</author>
</analytic>
<series><title level="j">BioMed Research International</title>
<idno type="ISSN">2314-6133</idno>
<idno type="eISSN">2314-6141</idno>
<imprint><date when="2014">2014</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc><textClass></textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en"><p>While most of computational annotation approaches are sequence-based, threading methods are becoming increasingly attractive because of predicted structural information that could uncover the underlying function. However, threading tools are generally compute-intensive and the number of protein sequences from even small genomes such as prokaryotes is large typically containing many thousands, prohibiting their application as a genome-wide structural systems biology tool. To leverage its utility, we have developed a pipeline for eThread—a meta-threading protein structure modeling tool, that can use computational resources efficiently and effectively. We employ a pilot-based approach that supports seamless data and task-level parallelism and manages large variation in workload and computational requirements. Our scalable pipeline is deployed on Amazon EC2 and can efficiently select resources based upon task requirements. We present runtime analysis to characterize computational complexity of eThread and EC2 infrastructure. Based on results, we suggest a pathway to an optimized solution with respect to metrics such as time-to-solution or cost-to-solution. Our eThread pipeline can scale to support a large number of sequences and is expected to be a viable solution for genome-scale structural bioinformatics and structure-based annotation, particularly, amenable for small genomes such as prokaryotes. The developed pipeline is easily extensible to other types of distributed cyberinfrastructure.</p>
</div>
</front>
<back><div1 type="bibliography"><listBibl><biblStruct><analytic><author><name sortKey="Chen, R" uniqKey="Chen R">R Chen</name>
</author>
<author><name sortKey="Snyder, M" uniqKey="Snyder M">M Snyder</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Feng, X" uniqKey="Feng X">X Feng</name>
</author>
<author><name sortKey="Liu, X" uniqKey="Liu X">X Liu</name>
</author>
<author><name sortKey="Luo, Q" uniqKey="Luo Q">Q Luo</name>
</author>
<author><name sortKey="Liu, B F" uniqKey="Liu B">B-F Liu</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Schuster, Sc" uniqKey="Schuster S">SC Schuster</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Furey, Ts" uniqKey="Furey T">TS Furey</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Chen, R" uniqKey="Chen R">R Chen</name>
</author>
<author><name sortKey="Snyder, M" uniqKey="Snyder M">M Snyder</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Mardis, Er" uniqKey="Mardis E">ER Mardis</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Wang, Z" uniqKey="Wang Z">Z Wang</name>
</author>
<author><name sortKey="Gerstein, M" uniqKey="Gerstein M">M Gerstein</name>
</author>
<author><name sortKey="Snyder, M" uniqKey="Snyder M">M Snyder</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Shendure, J" uniqKey="Shendure J">J Shendure</name>
</author>
<author><name sortKey="Aiden, El" uniqKey="Aiden E">EL Aiden</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Mcpherson, Jd" uniqKey="Mcpherson J">JD McPherson</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Juncker, As" uniqKey="Juncker A">AS Juncker</name>
</author>
<author><name sortKey="Jensen, Lj" uniqKey="Jensen L">LJ Jensen</name>
</author>
<author><name sortKey="Pierleoni, A" uniqKey="Pierleoni A">A Pierleoni</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Loewenstein, Y" uniqKey="Loewenstein Y">Y Loewenstein</name>
</author>
<author><name sortKey="Raimondo, D" uniqKey="Raimondo D">D Raimondo</name>
</author>
<author><name sortKey="Redfern, Oc" uniqKey="Redfern O">OC Redfern</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Skolnick, J" uniqKey="Skolnick J">J Skolnick</name>
</author>
<author><name sortKey="Fetrow, Js" uniqKey="Fetrow J">JS Fetrow</name>
</author>
<author><name sortKey="Kolinski, A" uniqKey="Kolinski A">A Kolinski</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Schnoes, Am" uniqKey="Schnoes A">AM Schnoes</name>
</author>
<author><name sortKey="Brown, Sd" uniqKey="Brown S">SD Brown</name>
</author>
<author><name sortKey="Dodevski, I" uniqKey="Dodevski I">I Dodevski</name>
</author>
<author><name sortKey="Babbitt, Pc" uniqKey="Babbitt P">PC Babbitt</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Skolnick, J" uniqKey="Skolnick J">J Skolnick</name>
</author>
<author><name sortKey="Brylinski, M" uniqKey="Brylinski M">M Brylinski</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Capra, Ja" uniqKey="Capra J">JA Capra</name>
</author>
<author><name sortKey="Laskowski, Ra" uniqKey="Laskowski R">RA Laskowski</name>
</author>
<author><name sortKey="Thornton, Jm" uniqKey="Thornton J">JM Thornton</name>
</author>
<author><name sortKey="Singh, M" uniqKey="Singh M">M Singh</name>
</author>
<author><name sortKey="Funkhouser, Ta" uniqKey="Funkhouser T">TA Funkhouser</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Glaser, F" uniqKey="Glaser F">F Glaser</name>
</author>
<author><name sortKey="Rosenberg, Y" uniqKey="Rosenberg Y">Y Rosenberg</name>
</author>
<author><name sortKey="Kessel, A" uniqKey="Kessel A">A Kessel</name>
</author>
<author><name sortKey="Pupko, T" uniqKey="Pupko T">T Pupko</name>
</author>
<author><name sortKey="Ben Tal, N" uniqKey="Ben Tal N">N Ben-Tal</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Brylinski, M" uniqKey="Brylinski M">M Brylinski</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Altschul, Sf" uniqKey="Altschul S">SF Altschul</name>
</author>
<author><name sortKey="Gish, W" uniqKey="Gish W">W Gish</name>
</author>
<author><name sortKey="Miller, W" uniqKey="Miller W">W Miller</name>
</author>
<author><name sortKey="Myers, Ew" uniqKey="Myers E">EW Myers</name>
</author>
<author><name sortKey="Lipman, Dj" uniqKey="Lipman D">DJ Lipman</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Gunarathne, T" uniqKey="Gunarathne T">T Gunarathne</name>
</author>
<author><name sortKey="Wu, T L" uniqKey="Wu T">T-L Wu</name>
</author>
<author><name sortKey="Choi, Jy" uniqKey="Choi J">JY Choi</name>
</author>
<author><name sortKey="Bae, S" uniqKey="Bae S">S Bae</name>
</author>
<author><name sortKey="Qiu, J" uniqKey="Qiu J">J Qiu</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Jha, S" uniqKey="Jha S">S Jha</name>
</author>
<author><name sortKey="Katz, Ds" uniqKey="Katz D">DS Katz</name>
</author>
<author><name sortKey="Luckow, A" uniqKey="Luckow A">A Luckow</name>
</author>
<author><name sortKey="Merzky, A" uniqKey="Merzky A">A Merzky</name>
</author>
<author><name sortKey="Stamou, K" uniqKey="Stamou K">K Stamou</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Taylor, Rc" uniqKey="Taylor R">RC Taylor</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Gurtowski, J" uniqKey="Gurtowski J">J Gurtowski</name>
</author>
<author><name sortKey="Schatz, Mc" uniqKey="Schatz M">MC Schatz</name>
</author>
<author><name sortKey="Langmead, B" uniqKey="Langmead B">B Langmead</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Schatz, Mc" uniqKey="Schatz M">MC Schatz</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Baker, M" uniqKey="Baker M">M Baker</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Kim, J" uniqKey="Kim J">J Kim</name>
</author>
<author><name sortKey="Maddineni, S" uniqKey="Maddineni S">S Maddineni</name>
</author>
<author><name sortKey="Jha, S" uniqKey="Jha S">S Jha</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Mantha, Pk" uniqKey="Mantha P">PK Mantha</name>
</author>
<author><name sortKey="Kim, N" uniqKey="Kim N">N Kim</name>
</author>
<author><name sortKey="Luckow, A" uniqKey="Luckow A">A Luckow</name>
</author>
<author><name sortKey="Kim, J" uniqKey="Kim J">J Kim</name>
</author>
<author><name sortKey="Jha, S" uniqKey="Jha S">S Jha</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Brylinski, M" uniqKey="Brylinski M">M Brylinski</name>
</author>
<author><name sortKey="Lingam, D" uniqKey="Lingam D">D Lingam</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Brylinski, M" uniqKey="Brylinski M">M Brylinski</name>
</author>
<author><name sortKey="Feinstein, Wp" uniqKey="Feinstein W">WP Feinstein</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Luckow, A" uniqKey="Luckow A">A Luckow</name>
</author>
<author><name sortKey="Santcroos, M" uniqKey="Santcroos M">M Santcroos</name>
</author>
<author><name sortKey="Merzky, A" uniqKey="Merzky A">A Merzky</name>
</author>
<author><name sortKey="Weidner, O" uniqKey="Weidner O">O Weidner</name>
</author>
<author><name sortKey="Mantha, P" uniqKey="Mantha P">P Mantha</name>
</author>
<author><name sortKey="Jha, S" uniqKey="Jha S">S Jha</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Luckow, A" uniqKey="Luckow A">A Luckow</name>
</author>
<author><name sortKey="Lacinski, L" uniqKey="Lacinski L">L Lacinski</name>
</author>
<author><name sortKey="Jha, S" uniqKey="Jha S">S Jha</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Luckow, A" uniqKey="Luckow A">A Luckow</name>
</author>
<author><name sortKey="Santcroos, M" uniqKey="Santcroos M">M Santcroos</name>
</author>
<author><name sortKey="Weidner, O" uniqKey="Weidner O">O Weidner</name>
</author>
<author><name sortKey="Zebrowski, A" uniqKey="Zebrowski A">A Zebrowski</name>
</author>
<author><name sortKey="Jha, S" uniqKey="Jha S">S Jha</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Maddineni, S" uniqKey="Maddineni S">S Maddineni</name>
</author>
<author><name sortKey="Kim, J" uniqKey="Kim J">J Kim</name>
</author>
<author><name sortKey="El Khamra, Y" uniqKey="El Khamra Y">Y El-Khamra</name>
</author>
<author><name sortKey="Jha, S" uniqKey="Jha S">S Jha</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article"><pmc-dir>properties open_access</pmc-dir>
<front><journal-meta><journal-id journal-id-type="nlm-ta">Biomed Res Int</journal-id>
<journal-id journal-id-type="iso-abbrev">Biomed Res Int</journal-id>
<journal-id journal-id-type="publisher-id">BMRI</journal-id>
<journal-title-group><journal-title>BioMed Research International</journal-title>
</journal-title-group>
<issn pub-type="ppub">2314-6133</issn>
<issn pub-type="epub">2314-6141</issn>
<publisher><publisher-name>Hindawi Publishing Corporation</publisher-name>
</publisher>
</journal-meta>
<article-meta><article-id pub-id-type="pmid">24995285</article-id>
<article-id pub-id-type="pmc">4066679</article-id>
<article-id pub-id-type="doi">10.1155/2014/348725</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject>
</subj-group>
</article-categories>
<title-group><article-title>Developing eThread Pipeline Using SAGA-Pilot Abstraction for Large-Scale Structural Bioinformatics</article-title>
</title-group>
<contrib-group><contrib contrib-type="author"><name><surname>Ragothaman</surname>
<given-names>Anjani</given-names>
</name>
<xref ref-type="aff" rid="I1"><sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author"><contrib-id contrib-id-type="orcid">http://orcid.org/0000-0003-0990-3321</contrib-id>
<name><surname>Boddu</surname>
<given-names>Sairam Chowdary</given-names>
</name>
<xref ref-type="aff" rid="I2"><sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author"><contrib-id contrib-id-type="orcid">http://orcid.org/0000-0003-3412-9956</contrib-id>
<name><surname>Kim</surname>
<given-names>Nayong</given-names>
</name>
<xref ref-type="aff" rid="I2"><sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Feinstein</surname>
<given-names>Wei</given-names>
</name>
<xref ref-type="aff" rid="I3"><sup>3</sup>
</xref>
</contrib>
<contrib contrib-type="author"><contrib-id contrib-id-type="orcid">http://orcid.org/0000-0002-6204-2869</contrib-id>
<name><surname>Brylinski</surname>
<given-names>Michal</given-names>
</name>
<xref ref-type="aff" rid="I2"><sup>2</sup>
</xref>
<xref ref-type="aff" rid="I3"><sup>3</sup>
</xref>
<xref ref-type="corresp" rid="cor1">*</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Jha</surname>
<given-names>Shantenu</given-names>
</name>
<xref ref-type="aff" rid="I1"><sup>1</sup>
</xref>
<xref ref-type="corresp" rid="cor2">*</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Kim</surname>
<given-names>Joohyun</given-names>
</name>
<xref ref-type="aff" rid="I2"><sup>2</sup>
</xref>
<xref ref-type="corresp" rid="cor3">*</xref>
</contrib>
</contrib-group>
<aff id="I1"><sup>1</sup>
RADICAL, ECE, Rutgers University, New Brunswick, NJ 08901, USA</aff>
<aff id="I2"><sup>2</sup>
Center for Computation and Technology, Louisiana State University, Baton Rouge, LA 70803, USA</aff>
<aff id="I3"><sup>3</sup>
Department of Biological Sciences, Louisiana State University, Baton Rouge, LA 70803, USA</aff>
<author-notes><corresp id="cor1">*Michal Brylinski: <email>mbrylinski@lsu.edu</email>
</corresp>
<corresp id="cor2">*Shantenu Jha: <email>shantenu.jha@rutgers.edu</email>
and </corresp>
<corresp id="cor3">*Joohyun Kim: <email>jhkim@cct.lsu.edu</email>
</corresp>
<fn fn-type="other"><p>Academic Editor: Daniele D'Agostino</p>
</fn>
</author-notes>
<pub-date pub-type="ppub"><year>2014</year>
</pub-date>
<pub-date pub-type="epub"><day>9</day>
<month>6</month>
<year>2014</year>
</pub-date>
<volume>2014</volume>
<elocation-id>348725</elocation-id>
<history><date date-type="received"><day>6</day>
<month>3</month>
<year>2014</year>
</date>
<date date-type="accepted"><day>8</day>
<month>5</month>
<year>2014</year>
</date>
</history>
<permissions><copyright-statement>Copyright © 2014 Anjani Ragothaman et al.</copyright-statement>
<copyright-year>2014</copyright-year>
<license license-type="open-access"><license-p>This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<abstract><p>While most of computational annotation approaches are sequence-based, threading methods are becoming increasingly attractive because of predicted structural information that could uncover the underlying function. However, threading tools are generally compute-intensive and the number of protein sequences from even small genomes such as prokaryotes is large typically containing many thousands, prohibiting their application as a genome-wide structural systems biology tool. To leverage its utility, we have developed a pipeline for eThread—a meta-threading protein structure modeling tool, that can use computational resources efficiently and effectively. We employ a pilot-based approach that supports seamless data and task-level parallelism and manages large variation in workload and computational requirements. Our scalable pipeline is deployed on Amazon EC2 and can efficiently select resources based upon task requirements. We present runtime analysis to characterize computational complexity of eThread and EC2 infrastructure. Based on results, we suggest a pathway to an optimized solution with respect to metrics such as time-to-solution or cost-to-solution. Our eThread pipeline can scale to support a large number of sequences and is expected to be a viable solution for genome-scale structural bioinformatics and structure-based annotation, particularly, amenable for small genomes such as prokaryotes. The developed pipeline is easily extensible to other types of distributed cyberinfrastructure.</p>
</abstract>
<funding-group><award-group><funding-source>http://dx.doi.org/10.13039/100000002 National Institutes of Health</funding-source>
<award-id>P20 GM103458-10</award-id>
</award-group>
<award-group><funding-source>Louisiana Board of Regents</funding-source>
<award-id>LEQSF (2012-15)-RD-A-05 to MB</award-id>
</award-group>
</funding-group>
</article-meta>
</front>
<body><sec id="sec1"><title>1. Introduction</title>
<p>Modern systems biology holds a significant promise to accelerate the development of personalized drugs, namely, tailor-made pharmaceuticals adapted to each person's own genetic makeup. Consequently, it helps transform symptom-based disease diagnosis and treatment to “personalized medicine,” in which effective therapies are selected and optimized for individual patients [<xref rid="B1" ref-type="bibr">1</xref>
]. This process is facilitated by various experimental high-throughput technologies such as genome sequencing, gene expression profiling, ChIP-chip/ChIP-seq assays, protein-protein interaction screens, and mass spectrometry [<xref rid="B2" ref-type="bibr">2</xref>
–<xref rid="B4" ref-type="bibr">4</xref>
]. Complemented by computational and data analytics techniques, these methods allow for the comprehensive investigation of genomes, transcriptomes, proteomes, and metabolomes, with an ultimate goal to perform a global profiling of health and disease in unprecedented detail [<xref rid="B5" ref-type="bibr">5</xref>
].</p>
<p>High-throughput DNA sequencing, such as Next-Generation Sequencing (NGS) [<xref rid="B6" ref-type="bibr">6</xref>
–<xref rid="B8" ref-type="bibr">8</xref>
], is undoubtedly one of the most widely used techniques in systems biology. By providing genome-wide details on gene sequence, organization, variation, and regulation, NGS provides means to fully comprehend the repertoire of biological processes in a living cell. Importantly, continuing advances in genome sequencing technologies result in rapidly decreasing costs of experiments making them affordable for individual researchers as well as small research groups [<xref rid="B8" ref-type="bibr">8</xref>
]. Nevertheless, the substantial volume of biological data adds computational complexity to downstream analyses including functional annotation of gene sequences of a donor genome [<xref rid="B9" ref-type="bibr">9</xref>
]. Consequently, bioinformatics components of systems biology pipelines are subject of intense research oriented on improving their accuracy in interpreting and analyzing raw NGS data, as well as on the development of effective computing strategies for processing large amounts of data.</p>
<p>One of the major challenges in NGS analytics is a reliable proteome-wide function inference of gene products. This is traditionally accomplished using sequence-based methods, which annotate target proteins by transferring molecular function directly from homologous sequences [<xref rid="B10" ref-type="bibr">10</xref>
, <xref rid="B11" ref-type="bibr">11</xref>
]. Despite a high accuracy of these methods within the “safe zone” of sequence similarity, their applicability to the “twilight zone” is more complicated due to ambiguous and equivocal relationships among protein sequence, structure, and function [<xref rid="B12" ref-type="bibr">12</xref>
]. It has been shown that relaxing sequence similarity thresholds in function inference inevitably leads to high levels of misannotation [<xref rid="B13" ref-type="bibr">13</xref>
]. Therefore, low false positive rates can be maintained only at the expense of a significantly reduced coverage, which, in turn, hinders the development of systems-level applications. To address this issue, combined evolution/structure-based approaches to protein functional annotation have been developed [<xref rid="B14" ref-type="bibr">14</xref>
–<xref rid="B16" ref-type="bibr">16</xref>
]. Integrating sequence and structural information yields an improved performance within the “twilight zone” of sequence similarity, which significantly extends the coverage of targeted gene products. Furthermore, these methods consider many aspects of protein molecular function including binding to small organic molecules, inorganic groups, for example, iron-sulfur clusters and metal ions, and interactions with nucleic acids and other proteins [<xref rid="B17" ref-type="bibr">17</xref>
]. Structural bioinformatics approaches offer certain advantages over pure sequence-based methods; however, these algorithms also present significant challenges in the context of their practical implementation. Compared to ultra-fast sequence alignments and database searches using, for example, BLAST [<xref rid="B18" ref-type="bibr">18</xref>
], protein threading and metathreading that include structure-based components put significantly higher demands for computing resources, which becomes an issue particularly in large, proteome-scale projects.</p>
<p>The last decade has seen a growing interest in using distributed cyberinfrastructure (DCI) for various bioinformatics applications [<xref rid="B19" ref-type="bibr">19</xref>
–<xref rid="B21" ref-type="bibr">21</xref>
]. For example, the MapReduce programming model along with Hadoop, introduced initially for massive distributed data processing, was explored [<xref rid="B21" ref-type="bibr">21</xref>
–<xref rid="B23" ref-type="bibr">23</xref>
]. Also, cloud environments are increasingly becoming popular as a solution for massive data management, processing, and analysis [<xref rid="B19" ref-type="bibr">19</xref>
, <xref rid="B20" ref-type="bibr">20</xref>
, <xref rid="B24" ref-type="bibr">24</xref>
]. Previously, SAGA-Pilot-based MapReduce and data parallelization strategies were demonstrated for life science problems, in particular, such as alignment of NGS reads [<xref rid="B20" ref-type="bibr">20</xref>
, <xref rid="B25" ref-type="bibr">25</xref>
, <xref rid="B26" ref-type="bibr">26</xref>
]. Despite the successful cloud-oriented implementations of various bioinformatics tools, significantly fewer studies focused on the porting of complex structural bioinformatics algorithms to distributed computing platforms.</p>
<p>In this work, we present a pilot-based implementation of metathreading for the structural and functional characterization of large datasets of gene products. Specifically, we developed a pipeline for eThread, a recently developed metathreading approach [<xref rid="B27" ref-type="bibr">27</xref>
], tailored primarily for the Amazon EC2 distributed computing infrastructure and also easily extensible for other types of DCIs. eThread integrates ten state-of-the-art single threading algorithms to accurately identify template proteins, which can be subsequently used in both structure modeling and functional annotation. The latter covers a broad spectrum of protein molecular function, including ligand, metal, inorganic cluster, protein, and nucleic acid binding [<xref rid="B17" ref-type="bibr">17</xref>
]. Since eThread features a diverse collection of algorithms, its deployment on large multicore systems necessarily requires comprehensive profiling to design an efficient execution strategy. In our previous study, we performed a rigorous profiling of eThread in terms of time-to-solution and memory footprint, focusing on the optimal utilization of resources provided by homogeneous high-performance computing (HPC) clusters [<xref rid="B28" ref-type="bibr">28</xref>
]. In contrast to HPC machines, which are typically composed of a large number of identical nodes, modern cloud computing infrastructures, such as Amazon EC2, provide a wide selection of instance types comprising varying combinations of CPU, memory, storage, and networking capacity. These on-demand instances have different hourly rates; therefore, in addition to time-to-solution, the efficient processing of large biological datasets using commercial cloud computing platforms should take account of the overall cost-to-solution as well. In this study, we report an effective implementation of metathreading using a pilot-based multilevel scheduling. This approach offers significant advantages in terms of the data, job, and failure management in large-scale structural bioinformatics applications.</p>
<p>This paper is organized as follows. Introductions of eThread, Amazon EC2, and SAGA-based pilot framework are presented. Then, our pipeline is described along with key strategies for parallelization. Benchmark results revealing characteristics of computational tasks required for the eThread pipeline as well as those associated with EC2 infrastructure are presented. We, then, discuss our contributions and future directions, which are followed by concluding remarks.</p>
</sec>
<sec id="sec2"><title>2. Materials and Methods</title>
<p>As schematically shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>
, the eThread pipeline on EC2 aims to carry out genome-scale structural bioinformatics analysis efficiently using the SAGA-based pilot framework. Here, we describe our methods and backgrounds for the developed pipeline and benchmark experiments.</p>
<sec id="sec2.1"><title>2.1. eThread, a Scientific Application Comprising Multiple Standalone Tools</title>
<p>eThread is a metathreading tool and was developed for predicting protein structure and function, whose input is a protein sequence [<xref rid="B17" ref-type="bibr">17</xref>
, <xref rid="B27" ref-type="bibr">27</xref>
]. Unlike other tools based on sequence-based approaches, eThread is template-based. Template structures are identified in the PDB library using metathreading that combines the 10 individual threading/fold recognition algorithms. The machine-learning-based meta-analysis is carried out using all outputs from these 10 threading programs. The overall pipeline of eThread is, therefore, a two-step pipeline. The first step runs the 10 state-of-the-art threading/fold recognition algorithms, CS/CSI-BLAST, COMPASS, HHpred, HMMER, pfTools, pGenTHREADER, SAM-T2K, SP3, SPARKS, and THREADER. NCBI BLAST is also needed for construction of sequence profiles for most of tools and PSIPRED is required for the prediction of secondary structure that is a preprocessing task for THREADER. We summarize the ten tools in <xref ref-type="table" rid="tab1">Table 1</xref>
. While three-dimensional structures can be constructed by either MODELLER or TASSER-Lite using the output from eThread metathreading analysis, in this work, we only confine our focus on the metathreading analysis. The effective combination of multiple algorithms considerably extends the coverage of target sequences by distantly related templates and increases the overall modeling accuracy. According to the previous work [<xref rid="B27" ref-type="bibr">27</xref>
], eThread systematically detects more structure templates than any single algorithm producing reliable structural models for 60–70% of all gene products across a given proteome.</p>
<p>Due to nature of the key strategy, that is, metathreading, eThread is a complicated tool requiring the execution of the 10 different threading tools that also could contain other tools and have dependency for the template library. Note that these tools were developed by different developers and their implementation strategies are all different and heterogeneous, which challenges an efficient execution of eThread. Previously, profiling of the individual tools using a single system was reported [<xref rid="B28" ref-type="bibr">28</xref>
], and here we briefly summarize the results. The computational loads and the memory requirement for each threading tool were examined using a set of 110 sequences whose length is distributed between 50 and 600 amino acids. According to the results, we categorize each tool as “High,” “Medium,” and “Low” for each category as summarized in <xref ref-type="table" rid="tab1">Table 1</xref>
. For the computational load, a tool is assigned as “Low” if the running time for 110 sequences is less than 1-2 hours, “Medium” is for tools taking about 10 hours, and “High” is for tools taking more than 10 hours. Notably, THREADER requires about 5–19 hours for the data set, which makes the tool stand out in terms of the running time denoted as “Highest.” For the memory requirement, “High” is for tools needing more than 3 GB, “Medium” requires between 0.6 and 3 GB, and “Low” is tools requiring up to 0.6 GB. Interestingly, the memory requirement is highly dependent upon the use of BLAST in each tool. The reason why THREADER does not need a lot of memory is that we use our modified version that separates BLAST tasks out of the tool.</p>
<p>The basic structure of eThread is further illustrated with the simplest serial algorithm in <xref ref-type="fig" rid="alg1">Algorithm 1</xref>
. First of all, all threading tools have a similar internal workflow, comprising preprocessing, two main tasks performed against chain and domain template libraries, and postprocessing tasks. The preprocessing step varies among the tools, and, again, some require running other tools such as BLAST or PSIPRED to prepare their input for the main tasks. Notably, all of threading tools are not developed to support any parallelism for multicore or multinode systems, implying that data parallelization would be a good strategy in the case of multiple sequences and that task-level parallelization that runs concurrently independent subtasks is desirable as indicated in the loops of <xref ref-type="fig" rid="alg1">Algorithm 1</xref>
. BLAST has been available as multithreading or MPI-based, but for the simplicity and a practical reason (relatively low portion for the total time-to-solution), a single or two-thread execution is only considered. Regarding BLAST tasks, it is worth noting that tools such as THREADER, COMPASS, and SAMT2K invoke BLAST as a one-time preprocessing step, whereas HHpred, SP3/SPARKS, and pGenTHREADER are implemented to contain it within iterative tasks. This means that BLAST can run separately for the former three tools, whereas the latter three tools are difficult to separate BLAST. Taken together, in spite of common structures among the 10 threading tools, significant challenges exist for an optimal execution due to the difficulty of customizing possible task-level and data parallelization for each tool, which is further complicated by significant overhead stemming from the heterogeneous nature of EC2 infrastructure.</p>
</sec>
<sec id="sec2.2"><title>2.2. Amazon EC2 Infrastructure</title>
<p>Amazon provides the EC2 cloud computing environment which is an IaaS cloud [<xref rid="B20" ref-type="bibr">20</xref>
]. This infrastructure is, in many ways, promising for large-scale scientific applications such as eThread, but distinctively different from traditional HPC environments. For example, Amazon Machine Image (AMI) is easily created, reusable, and maintained, consequently lowering the cost of installation and maintenance of required standalone tools. This is greatly beneficial for most of bioinformatics pipelines that are often composed of many open source tools whose development, update, and extension are nonuniform and frequent and have no connection to each other. For instance, threading tools are often developed with a specific OS environment, mostly Linux-like Oss, but developers could not test many different OS variants. We found that some tools such as SP3, SPARKS, and SAMT2K were not easily installed with Ubuntu but had no issue with CentOS or RedHat. Therefore, an easy way to avoid hassles associated with a compatibility issue is to create a specific AMI best for each threading tool with the most favorable Linux distro, which is likely to be the same one used by the developers, and then to reuse it for upcoming new releases of the tool.</p>
<p>For the eThread pipeline development, we chose to build one AMI configured for each single threading tool along with other additional programs needed, but it is also possible to install multiple tools in a single AMI. EC2 provides multiple types of instances and an end user is charged depending upon types of instances, running times, and storage options. Instance types are different in types of cores, the number of cores, memory sizes, instance storage, and network performance. The instances we used for this study are summarized in <xref ref-type="table" rid="tab2">Table 2</xref>
and are chosen to represent several different categories such as economical, general, memory-optimized, compute-optimized, and storage-optimized cases. The external storage option is also a factor for the payment, and we need to use S3 and EBS as described in more detail later. It is also noted that while instances as a cluster are available from EC2, the developed pipeline, as powered by SAGA-Pilot, is able to execute large-scale calculations by coordinating individual VMs without a cluster environment. In summary, on-demand computing promised by IaaS cloud such as EC2 has a great potential for large-scale scientific applications and a lot of benefits once a user considers carefully the effective use of complex and heterogeneous infrastructure comprising many different instance types.</p>
</sec>
<sec id="sec2.3"><title>2.3. SAGA-Pilot Abstraction</title>
<p>An efficient utilization of distributed cyberinfrastructure is essential for a distributed application such as our eThread pipeline [<xref rid="B20" ref-type="bibr">20</xref>
]. SAGA-Pilot abstraction provides an effective decoupling between the compute oriented tasks and associated data management [<xref rid="B29" ref-type="bibr">29</xref>
, <xref rid="B30" ref-type="bibr">30</xref>
]. This alleviates the burden of the application to be confined with a particular resource for scheduling compute and data units. BigJob is a SAGA- (Simple API for Grid Applications-) based pilot framework which utilizes a Master-Worker coordination model [<xref rid="B31" ref-type="bibr">31</xref>
]. It comprises high-level and easy-to-use APIs for accessing distributed resources and provisioning of job submission, monitoring, and more. It has been successfully utilized for efficient executions of loosely coupled and embarrassingly parallel applications on distributed cyberinfrastructure [<xref rid="B25" ref-type="bibr">25</xref>
, <xref rid="B26" ref-type="bibr">26</xref>
]. BigJob has three major components. First, Pilot-Manager is responsible for the orchestration of pilots (Pilot-Compute and Pilot-Data) which run locally or on remote resources for assigned tasks. Pilot-Manager maps a data unit to a compute unit. BigJob is built upon SAGA Job API which invokes SAGA adaptors for submitting jobs to target resources while all details are hidden to BigJob level API. For this work, we use the Amazon Web Services adaptor, one of the many available SAGA adaptors. Second component is Pilot-Agent that collects local information of a system and is responsible for executing the compute unit(s) and placing the data units appropriately on the resource where the tasks are submitted. Finally, a coordination service, employing a redis server, helps in coordination and communication to facilitate the control flow and data exchange between Pilot-Manager and Pilot-Agent [<xref rid="B32" ref-type="bibr">32</xref>
].</p>
<p>With Amazon EC2 infrastructure, a current SAGA-Pilot implementation handles the data management between tasks and S3 is configured to be used for the data store as default. In other words, any task once completed deposits predefined output into S3 storage and the next task is able to locate the output as its input.</p>
<p>Application workload management is also provided by Pilot APIs as follows. Pilot APIs comprise compute-unit and data-unit classes as primary abstraction. Using these, a distributed application can specify a computational task with input and output files [<xref rid="B29" ref-type="bibr">29</xref>
, <xref rid="B32" ref-type="bibr">32</xref>
]. Once compute-units and data-units are submitted, they are queued at the redis-based coordination service and are processed recurrently by a scheduler. Importantly, Pilot-Manger's asynchronous interface allows an instantaneous response without delay, which facilities BigJob to complete the placement of compute/data-unit and thus is effective for dealing with a large number of tasks.</p>
</sec>
<sec id="sec2.4"><title>2.4. Benchmark Data Set</title>
<p>For all benchmarking experiments, manually curated 110 protein gene sequences whose lengths are distributed between 51 and 600 aa (amino acids) are prepared (see <xref ref-type="table" rid="tab3">Table 3</xref>
). These 110 sequences were used for runtime analysis of the EC2 instances against the 10 threading tools, the two additional tools, PSIPRED and BLAST, and meta-analysis similar to the previous work [<xref rid="B28" ref-type="bibr">28</xref>
]. Most of benchmark experiments with the developed pipeline powered by SAGA-Pilot are carried out using 20 sequences chosen among 110 as described in <xref ref-type="table" rid="tab3">Table 3</xref>
.</p>
</sec>
</sec>
<sec id="sec3"><title>3. Results</title>
<sec id="sec3.1"><title>3.1. Development of Pilot-Based eThread Pipeline</title>
<p>The schematic workflow of our developed pipeline is shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>
. The pipeline carries out four major steps that need to be taken sequentially for each input sequence. They are VM-launch, preprocessing, main processing, and eThread meta-analysis. Data transfer is needed between tasks and compute resources involved and is not examined in this work due to relatively insignificant contribution to the time-to-solution or the charge. For example, only less than 5 seconds are needed for moving 20 input sequences into EC2 and managed by the main script in the beginning of a pipeline job.</p>
<p>The main script of the pipeline, located in a local machine owned by a user, starts with an initialization of Pilot service instances, each of whom manages an EC2 VM creation, job submissions to the Pilot instance(s), and data transfer if needed. Importantly, SAGA-Pilot allows the pipeline to monitor the status of individual subtasks constituting eThread and thus can conduct the workflow efficiently to maximize the use of available resources on the fly while supporting various optimization scenarios. By exploiting this feature, data parallelization and task-level parallelization are easily implemented. For example, a simple task-level parallelism could be designed as shown in <xref ref-type="fig" rid="alg2">Algorithm 2</xref>
. Multiple VMs are created and each VM or the number of VMs is assigned for tasks of each threading tool. By considering required workloads and computational requirements such as memory footprints, threading tools can be executed concurrently on proper VM(s). On the other hand, this simple parallelism scenario is likely to be inefficient if differences in threading tools and instances are significant. In this work, our primary contribution is to examine those multifaceted parameters associated with EC2, using 110 sequences as well as its subset, 20 sequences, and to demonstrate our pipeline capabilities toward the optimization solution of eThread execution.</p>
</sec>
<sec id="sec3.2"><title>3.2. Profiling EC2 Infrastructure Using 110 Sequence Benchmark</title>
<p>How to run eThread on EC2 is critically important since the cost and the time-to-solution will increase considerably without optimization, and to some extent, making the pipeline unpractically expensive or time consuming for genome-scale analysis. Note that, due to the charging scheme from Amazon, two conditions for the optimization are not equivalent. For example, in <xref ref-type="fig" rid="fig3">Figure 3</xref>
, the time-to-solution and the cost are compared when different instance types are used. The data shown is with pfTools and the 110 data set is used. We also report CPU utilization with error bars. The results are obtained by running command line scripts for each tool in a specific VM and thus reflect how a CPU core in each instance performs with respect to the time-to-solution and the cost. HMMER, CS/CSI-BLAST, THREADER, and pfTools are only tools requiring relatively small memory footprint and thus could run on all instances including t1.micro as shown. Our benchmark was completely carried out for 10 threading and two standalone tools, PSIPRED and BLAST. We found that the same trend is observed consistently among the results obtained for other tools (not shown). First of all, different cores in different instances are not the same; in particular, t1.micro is the slowest. While hi1.4xlarge is the most expensive one, obtained results indicate that a core in this instance seems to be slower than those in other instances such as the two c1 instances and even than m1.medium and m1.large. On the other hand, in terms of cost, hi1.4xlarge is worse, while t1.micro and two c1 instances ranked in the top list. Interestingly, the utilization of CPU is not always 100% as shown in the third figure of <xref ref-type="fig" rid="fig3">Figure 3</xref>
, for which we will discuss more details later for possible explanations. t1.micro instance is somewhat different from other instances in many ways. It costs a lot less, and is often free with special promotion from Amazon, thus being adequate for running many subtasks, but the small memory, 0.6 GB, prohibits running many tools including SAM-T2K, pGenTHREADER, COMPASS, SPARKS, and SP3. Also, in spite of a possible execution for THREADER, the huge computing load, due to its underpowered capacity, prohibits practically its usage with this instance.</p>
</sec>
<sec id="sec3.3"><title>3.3. Profiling Computational Tasks for the eThread Pipeline on EC2</title>
<p>Contrast to the execution mode of eThread using a single computer system or a cluster system, the eThread pipeline implemented with SAGA-Pilot cannot avoid an overhead due to its underlying Master-Worker model. The overhead, first of all, arises from the data transfer between a local machine that runs the main script and remote compute resources in EC2 (indicated as orange in <xref ref-type="fig" rid="fig2">Figure 2</xref>
) and the data exchange between elementary tasks managed by SAGA-Pilot, which is insignificant (data is not shown).</p>
<p>The coordination mechanism with SAGA-Pilot for tasks running in distributed resources is generally insignificant compared to main tasks associated with target applications of interest [<xref rid="B20" ref-type="bibr">20</xref>
, <xref rid="B25" ref-type="bibr">25</xref>
, <xref rid="B30" ref-type="bibr">30</xref>
]. On the other hand, VM launch takes a certain amount of times and is unavoidable in our pilot-based implementations, which is, therefore, measured as a part of runtime analysis.</p>
<p>Profiling elementary subtasks in the workflow of the eThread pipeline is important for parallelization strategies. Using the pipeline, we conducted benchmark experiments to gain insights into relative computing loads across the tools against all instances we consider for this work. In <xref ref-type="fig" rid="fig4">Figure 4</xref>
, we present the results comparing time-to-solutions across those tools when using m1.large and hi1.4xlarge. The input sequences are 20 sequences. In accordance with the previous work [<xref rid="B28" ref-type="bibr">28</xref>
], the pipeline-based execution reveals a broad distribution of computational loads and memory requirements across the tools. Also, expected speed-ups, due to multicore utilization, are indicated. In particular, the execution of THREADER is, when hi1.4xlarge (16 cores) is used, now much reasonably down to about 1,660 min that becomes just two or three times more than time-to-solution of tools grouped as “High” in terms of computational loads. As reported in the previous work, the meta-analysis step of eThread does not need significant computing resource and is not expected to change much with different infrastructure. In fact, this step is not expected to be more optimized internally with task-level parallelism except data parallelization of input sequences. We will focus, primarily, on the optimization of the first step before this meta-analysis that comprises 10 threading tools and preprocessing steps.</p>
<p>Here, we would like to stress a possible future strategy, in order to gain more insights into the current underlying structure of eThread pipeline. As stated in the previous section, some tools such as THREADER, COMPASS, and SAMT2K need to run BLAST, but also further can be modified to run it in a separate subtask. In fact, THREADER, since the previous work [<xref rid="B5" ref-type="bibr">5</xref>
], is already modified, resulting in, compared to COMPASS and SAMT2K, the fact that THREADER requires relatively lower memory footprint.</p>
<p>Additionally, the two main processing tasks of each treading tool against chain and domain libraries could be run separately, and this possible parallelization helps to achieve the overall optimization easily and significantly. We measure the portion of chain and domain tasks, and the results in the case of pfTools are presented in <xref ref-type="table" rid="tab4">Table 4</xref>
. Times for their postprocessing tasks as well as VM launch times are also reported. First of all, the relative portion between chain and domain is consistently found as 60% versus 40% across all instances, which is in accordance with the previous work [<xref rid="B28" ref-type="bibr">28</xref>
]. However, t1.micro shows an exception such that the ratio is changed to 49% versus 51%. VM launch times are a bit fluctuating but its portion is insignificant except the cases with two expensive instances, c1.xlarge and hi1.4xlarge, since the speed-up for the main tasks is now decreased a lot due to multiple cores. In fact, the number of sequences, 20 in this benchmark, is far less than the number of sequences for a genome-scale analysis, and pfTools is a relatively less compute-intensive tool, implying the insignificant contribution from relative portions of VM launch as well as postprocessing tasks, compared to the main processing tasks.</p>
</sec>
<sec id="sec3.4"><title>3.4. VM Launch Time</title>
<p>While parallelization provides a chance of optimized execution, it is also true that the SAGA-Pilot-based pipeline running on EC2 cannot avoid some amounts of overhead associated with the use of distributed cyberinfrastructure and thus it is important to know how much they contribute. We carried out the dedicated experiments for measuring VM launch time and obtained results are presented in <xref ref-type="table" rid="tab5">Table 5</xref>
. In fact, VM launch time is affected by many factors and thus varies depending upon the conditions (e.g., compare the values reported in <xref ref-type="table" rid="tab4">Table 4</xref>
), but the range of fluctuations is typically a couple of minutes in general.</p>
<p>Overall, according to the experimental results, our benchmarks clearly show that the overhead arising from the use of SAGA-Pilot and the remote EC2 infrastructure is seemingly not significant, which is, in particular, becoming more justifiable as the size of computation with the pipeline is scaled up with more sequences and longer sequences.</p>
</sec>
<sec id="sec3.5"><title>3.5. eThread Pipeline and Its Optimal Execution</title>
<p>Presumably, the key question on how to implement an efficient execution of the eThread pipeline on EC2 infrastructure is directly related to the question on how to distribute subtasks on a heterogeneous resource pool.</p>
<p>To demonstrate the agile capacity of our pipeline, we conducted more complex parallelization scenarios. First of all, two VMs are launched for each tool and results with 20 sequences are shown in <xref ref-type="fig" rid="fig5">Figure 5</xref>
. As expected, more gains in time-to-solution are obtained since more cores from both VMs and the separate execution of the two main tasks are utilized to run multiple sequence calculations.</p>
<p>Apparently, it is not difficult to understand why the case of t1.micro-c1.xlarge outperforms other cases considering the inclusion of high performance 8-core c1.xlarge. On the other hand, the performance difference among other cases is not easy to predict, because the performance depends upon how subtasks are distributed and executed. When multiple sequences and multiple instances are considered, the key is to consider an efficient job distribution.</p>
</sec>
</sec>
<sec id="sec4"><title>4. Discussion</title>
<sec id="sec4.1"><title>4.1. eThread on EC2</title>
<p>Scientific applications such as eThread need large-scale computation as shown with 110 sequences. While often traditional HPC systems could be effective for such computational demands, many life science applications including eThread could find more benefits with cloud environments. Indeed, unlike scientific applications in other scientific domains, applications in life sciences are likely to be data-intensive and need to be implemented as pipelines, which makes HPC environments somewhat unfit. On-demand computing provided by EC2 is readily beneficial for data parallelization and task-level parallelization as examined with our pipeline for eThread in this work. Furthermore, the use of AMIs provides advantages for installation and maintenance of standalone tools and the AMIs are later reusable for other IaaS environment such as OpenStack-based clouds. SAGA-Pilot is an ideal solution to build such pipelines since it allows a rapid, powerful, and agile implementation for various and changing goals and strategies.</p>
<p>One of important challenges for the use of EC2 for eThread is to understand various factors of the IaaS infrastructure that affect the time-to-solution and the cost. For that purpose, we conducted benchmark experiments for estimating computational loads and corresponding costs and demonstrated the capability of our pipeline toward the optimization of its execution for massive input sequences.</p>
<p>First of all, in <xref ref-type="table" rid="tab6">Table 6</xref>
, the overall summary of benchmark results with respect to time-to-solution and cost-to-solution is presented. We conducted all possible combinations of threading tools and instance types shown in Tables <xref ref-type="table" rid="tab1">1</xref>
and <xref ref-type="table" rid="tab2">2</xref>
, among which three threading tools are chosen for the table. Again, the benchmark is conducted with the 20 sequences and all cores in a VM are being utilized by SAGA-Pilot. Obviously, an optimal execution with respect to cost-to-solution is very different from the one with time-to-solution. Also, the results suggest that an optimal solution is not easily achieved unless the parallelization is fully managed. For example, SAGA-Pilot, as default, takes multiple subtasks as a single pilot job and executes them by using all cores available at the moment. Therefore, it is hi1.4xlarge that wastes a lot of computing resources, that is, cores in the second round for 20 subtasks. Nonetheless, the results obtained and shown in <xref ref-type="table" rid="tab6">Table 6</xref>
suggest that the optimization can be pursued by considering the main factor, cost, or computing time, independently. Here, we also note that the real cost could be different from the estimation in <xref ref-type="table" rid="tab6">Table 6</xref>
due to the fact that the pricing scheme is changing over the time and that there is a promotional pricing with free tier. In addition, Amazon pricing, which is per instance-hour for each instance and thus does not allow partial hour usage, could result in slightly more costs. Finally, RHEL pricing is a little bit higher than other open source linux OSs and other costs including the use of EBS volume could be added.</p>
<p>In <xref ref-type="table" rid="tab7">Table 7</xref>
, we compare experimental results using SAGA-Pilot and estimated ideal limits using the same 20 sequences out of 110 benchmarks (see <xref ref-type="fig" rid="fig3">Figure 3</xref>
for the results with 110 sequences with pfTools). The ideal limit is the time when the benchmark time-to-solution of 20 sequences is divided by the number of cores. The difference shows how the simple parallel implementation using the default parallelism support with SAGA-Pilot works. As expected, our pilot-based results take more time than ideal limits, implying simply the mix of unattainable conditions with the finite number of subtasks and the need of improving the current parallel implementation for further speed-up, in particular, with the instances having multiple cores.</p>
<p>The most significant factor for such discrepancy is understandable with the current implementation for concurrent executions of subtasks. With the efficient job monitoring capacity provided by SAGA-Pilot, all available cores in multicore instances are guaranteed to be utilized and thus contribute speed-up, but there still exists an inefficient utilization of resources. For example, when subtasks corresponding to 20 sequences are distributed into 16 cores, it is highly likely to have idling cores that complete assigned tasks early but need to wait until the last task to be ended by other cores. This is apparently indicated with the fact that the difference from the ideal limit is less significant with the single core instance, m1.small, compared to the dual core c1.large and more apparently to 16-core hi1.4xlarge. This suggests strongly that a better strategy is needed to fully utilize all cores during the time-to-solution. Less computationally demanding tasks with certain tools are more likely affected by nonmajor tasks such as VM launch and another overhead, but overall the expected portion is minimal, suggesting that, to optimize the entire eThread, the key strategy should be the combination of efficient input data parallelization as well as speed-up of tools such as THREADER and “high” computation tools. As we demonstrated, if the case is with mixed instances (see <xref ref-type="fig" rid="fig6">Figure 6</xref>
), more complicated underlying mechanisms should be considered arising from different CPU performance, the number of cores, and others such as memory. Finally, many features associated with EC2 are not easy to understand with respect to the performance. For example, we observed that the performance of t1.micro is difficult to predict, which can be glimpsed with the two different experiments presented in <xref ref-type="fig" rid="fig5">Figure 5</xref>
and <xref ref-type="table" rid="tab4">Table 4</xref>
. Two data sets clearly show that t1.micro produces very different outcomes from other instances, in particular, indicated with the relative ratio between chain and domain. Also, in many cases, t1.micro produced unpredictable performance and we suspect, and the information from the explanation from Amazon website, that this is due to a special configuration for this instance to be optimized for low throughput and to be cheaper but not appropriate for computation requiring consistent performance.</p>
</sec>
<sec id="sec4.2"><title>4.2. Toward Efficient Dynamic Scheduling-Based eThread Pipeline for Genome-Scale Structural Genomics Analysis</title>
<p>Ideally, the best strategy is to implement dynamic scheduling, illustrated in <xref ref-type="fig" rid="alg3">Algorithm 3</xref>
, that exploits task-level parallelism and data parallelization effectively by dynamically identifying the best resource mapping for upcoming tasks and data transfer. When such an algorithm for dynamic resource mapping exists, SAGA-Pilot can implement it in a straightforward fashion into the pipeline.</p>
<p>Here, to give some insights into such an idea, we describe our exemplary dynamic scheduling, which is currently being evaluated and will be reported as a part of our service elsewhere (see the high-level concept in <xref ref-type="fig" rid="alg4">Algorithm 4</xref>
). First, by using the obtained 110 sequences benchmark results against each instance type, we train the model for time-to-solution and memory requirement of all threading tools and subtasks relevant for EC2 instance types. This trained model is being used for estimating prospective running times of input sequences. After sorting all input sequences based on their prospective time-to-solution as well as the optimized solution of scheduling all tasks, we start to run them from the longest one in a sorted order. Whenever a subtask is finished, we compare the difference between the real one and the predicted one. If the difference is large enough to leading to the change in an entire time-to-solution, we rearrange the order of remaining tasks to achieve a lower time-to-solution. Therefore, an optimized execution of the pipeline could be achieved by dynamically seeking the best resource mapping.</p>
</sec>
<sec id="sec4.3"><title>4.3. Future Directions</title>
<p>In addition to the implementation of dynamics scheduling, to further achieve more optimized executions of eThread on EC2 or similar DCI, we could consider other task-level parallelization and data parallelization ideas that we do not present in this work. For example, since BLAST has been developed as multicore or multinode (i.e., MPI support) implementations and data parallelization with BLAST to distribute chain and domain library searches are possible, we can further divide into many subtasks from each elementary task. This gives also a benefit for memory footprint and thus is beneficial to use less power but more number of instances. For example, SAMT2K requires 6 GB RAM due to its BLAST task and could be implemented with such parallel BLAST. Our approach is mostly scale-out at this point but needs to consider scale-up approaches with advanced accelerator techniques such as GPGPU, Intel Phi, and other emerging technologies including IBM Coherence Attach Processor Interface (CAPI).</p>
</sec>
</sec>
<sec id="sec5"><title>5. Conclusion</title>
<p>eThread is expected to play an important role for genome-scale structural bioinformatics analysis. In spite of its better performance and structural information, in particular, for annotation purposes, required computational demands hinder its usage. To address such a challenge, we developed the SAGA-Pilot-based eThread pipeline and conducted benchmarks aiming at the efficient use of Amazon EC2 infrastructure. With demonstrative examples, we show the support of various data and task-level parallelization scenarios on heterogeneous resources available from Amazon EC2, implying that further optimization ideas including dynamic scheduling could lead to eThread as a practically powerful tool. Other IaaS cloud environments, employing open standards such as OpenStack, are immediately ready to run the eThread pipeline.</p>
<p>Among many potential uses, the eThread pipeline has been developed as a genome-scale annotation tool as a part of an integrative Next-Generation Sequencing (NGS) data analytics. Our continuing effort to build NGS data analytics science gateway, which focuses on utilization of scalable distributed computing and storage resources, is underway (see <ext-link ext-link-type="uri" xlink:href="http://dare.cct.lsu.edu/">http://dare.cct.lsu.edu/</ext-link>
), which provides a service of the eThread pipeline [<xref rid="B33" ref-type="bibr">33</xref>
]. Based on our benchmark results and demonstrative experiments, our eThread pipeline is expected to be a viable solution for genome-scale structural bioinformatics and structure-based annotation, particularly, amenable for small genomes such as prokaryotes, even at this moment in a whole-genome scale or personalized medicine for predicting the consequence of mutations occurring in individuals, and easily extensible to utilize other types of distributed cyberinfrastructure (DCI).</p>
</sec>
</body>
<back><ack><title>Acknowledgments</title>
<p>The authors are grateful for Amazon computing award that enabled this work. Joohyun Kim and Sairam Chowdary Boddu are grateful for partial support by the Center for Experimental Infectious Disease Research Institutional Development Award (IDeA) from the National Institute of General Medical Sciences of the National Institutes of Health under Grant no. P20 GM103458-10. This research was supported in part by the Louisiana Board of Regents through the Board of Regents Support Fund (Contract LEQSF (2012-15)-RD-A-05 to MB).</p>
</ack>
<sec sec-type="conflict"><title>Conflict of Interests</title>
<p>The authors declare that there is no conflict of interests regarding the publication of this paper.</p>
</sec>
<sec><title>Authors' Contribution</title>
<p>Anjani Ragothaman and Sairam Chowdary Boddu equally contributed to this paper.</p>
</sec>
<ref-list><ref id="B1"><label>1</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname>
<given-names>R</given-names>
</name>
<name><surname>Snyder</surname>
<given-names>M</given-names>
</name>
</person-group>
<article-title>Systems biology: personalized medicine for the future?</article-title>
<source><italic>Current Opinion in Pharmacology</italic>
</source>
<year>2012</year>
<volume>12</volume>
<issue>5</issue>
<fpage>623</fpage>
<lpage>628</lpage>
<pub-id pub-id-type="other">2-s2.0-84867331897</pub-id>
<pub-id pub-id-type="pmid">22858243</pub-id>
</element-citation>
</ref>
<ref id="B2"><label>2</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Feng</surname>
<given-names>X</given-names>
</name>
<name><surname>Liu</surname>
<given-names>X</given-names>
</name>
<name><surname>Luo</surname>
<given-names>Q</given-names>
</name>
<name><surname>Liu</surname>
<given-names>B-F</given-names>
</name>
</person-group>
<article-title>Mass spectrometry in systems biology: an overview</article-title>
<source><italic>Mass Spectrometry Reviews</italic>
</source>
<year>2008</year>
<volume>27</volume>
<issue>6</issue>
<fpage>635</fpage>
<lpage>660</lpage>
<pub-id pub-id-type="other">2-s2.0-57249100557</pub-id>
<pub-id pub-id-type="pmid">18636545</pub-id>
</element-citation>
</ref>
<ref id="B3"><label>3</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Schuster</surname>
<given-names>SC</given-names>
</name>
</person-group>
<article-title>Next-generation sequencing transforms today’s biology</article-title>
<source><italic>Nature Methods</italic>
</source>
<year>2008</year>
<volume>5</volume>
<issue>1</issue>
<fpage>16</fpage>
<lpage>18</lpage>
<pub-id pub-id-type="other">2-s2.0-37749031255</pub-id>
<pub-id pub-id-type="pmid">18165802</pub-id>
</element-citation>
</ref>
<ref id="B4"><label>4</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Furey</surname>
<given-names>TS</given-names>
</name>
</person-group>
<article-title>ChIP-seq and beyond: new and improved methodologies to detect and characterize protein-DNA interactions</article-title>
<source><italic>Nature Reviews Genetics</italic>
</source>
<year>2012</year>
<volume>13</volume>
<issue>12</issue>
<fpage>840</fpage>
<lpage>852</lpage>
<pub-id pub-id-type="other">2-s2.0-84869502241</pub-id>
</element-citation>
</ref>
<ref id="B5"><label>5</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname>
<given-names>R</given-names>
</name>
<name><surname>Snyder</surname>
<given-names>M</given-names>
</name>
</person-group>
<article-title>Promise of personalized omics to precision medicine</article-title>
<source><italic>Wiley Interdisciplinary Reviews: Systems Biology and Medicine</italic>
</source>
<year>2013</year>
<volume>5</volume>
<issue>1</issue>
<fpage>73</fpage>
<lpage>82</lpage>
<pub-id pub-id-type="other">2-s2.0-84871391969</pub-id>
<pub-id pub-id-type="pmid">23184638</pub-id>
</element-citation>
</ref>
<ref id="B6"><label>6</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Mardis</surname>
<given-names>ER</given-names>
</name>
</person-group>
<article-title>Next-generation DNA sequencing methods</article-title>
<source><italic>Annual Review of Genomics and Human Genetics</italic>
</source>
<year>2008</year>
<volume>9</volume>
<fpage>387</fpage>
<lpage>402</lpage>
<pub-id pub-id-type="other">2-s2.0-52949096084</pub-id>
</element-citation>
</ref>
<ref id="B7"><label>7</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname>
<given-names>Z</given-names>
</name>
<name><surname>Gerstein</surname>
<given-names>M</given-names>
</name>
<name><surname>Snyder</surname>
<given-names>M</given-names>
</name>
</person-group>
<article-title>RNA-Seq: a revolutionary tool for transcriptomics</article-title>
<source><italic>Nature Reviews Genetics</italic>
</source>
<year>2009</year>
<volume>10</volume>
<issue>1</issue>
<fpage>57</fpage>
<lpage>63</lpage>
<pub-id pub-id-type="other">2-s2.0-57749195712</pub-id>
</element-citation>
</ref>
<ref id="B8"><label>8</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Shendure</surname>
<given-names>J</given-names>
</name>
<name><surname>Aiden</surname>
<given-names>EL</given-names>
</name>
</person-group>
<article-title>The expanding scope of DNA sequencing</article-title>
<source><italic>Nature Biotechnology</italic>
</source>
<year>2012</year>
<volume>30</volume>
<issue>11</issue>
<fpage>1084</fpage>
<lpage>1094</lpage>
<pub-id pub-id-type="other">2-s2.0-84869457261</pub-id>
</element-citation>
</ref>
<ref id="B9"><label>9</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>McPherson</surname>
<given-names>JD</given-names>
</name>
</person-group>
<article-title>Next-generation gap</article-title>
<source><italic>Nature Methods</italic>
</source>
<year>2009</year>
<volume>6</volume>
<issue>11, supplement</issue>
<fpage>S2</fpage>
<lpage>S5</lpage>
<pub-id pub-id-type="other">2-s2.0-70449698364</pub-id>
<pub-id pub-id-type="pmid">19844227</pub-id>
</element-citation>
</ref>
<ref id="B10"><label>10</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Juncker</surname>
<given-names>AS</given-names>
</name>
<name><surname>Jensen</surname>
<given-names>LJ</given-names>
</name>
<name><surname>Pierleoni</surname>
<given-names>A</given-names>
</name>
<etal></etal>
</person-group>
<article-title>Sequence-based feature prediction and annotation of proteins</article-title>
<source><italic>Genome Biology</italic>
</source>
<year>2009</year>
<volume>10</volume>
<issue>2, article 206</issue>
<pub-id pub-id-type="other">2-s2.0-60749104295</pub-id>
</element-citation>
</ref>
<ref id="B11"><label>11</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Loewenstein</surname>
<given-names>Y</given-names>
</name>
<name><surname>Raimondo</surname>
<given-names>D</given-names>
</name>
<name><surname>Redfern</surname>
<given-names>OC</given-names>
</name>
<etal></etal>
</person-group>
<article-title>Protein function annotation by homology-based inference</article-title>
<source><italic>Genome Biology</italic>
</source>
<year>2009</year>
<volume>10</volume>
<issue>2, article 207</issue>
<pub-id pub-id-type="other">2-s2.0-60749125063</pub-id>
</element-citation>
</ref>
<ref id="B12"><label>12</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Skolnick</surname>
<given-names>J</given-names>
</name>
<name><surname>Fetrow</surname>
<given-names>JS</given-names>
</name>
<name><surname>Kolinski</surname>
<given-names>A</given-names>
</name>
</person-group>
<article-title>Structural genomics and its importance for gene function analysis</article-title>
<source><italic>Nature Biotechnology</italic>
</source>
<year>2000</year>
<volume>18</volume>
<issue>3</issue>
<fpage>283</fpage>
<lpage>287</lpage>
<pub-id pub-id-type="other">2-s2.0-0034060287</pub-id>
</element-citation>
</ref>
<ref id="B13"><label>13</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Schnoes</surname>
<given-names>AM</given-names>
</name>
<name><surname>Brown</surname>
<given-names>SD</given-names>
</name>
<name><surname>Dodevski</surname>
<given-names>I</given-names>
</name>
<name><surname>Babbitt</surname>
<given-names>PC</given-names>
</name>
</person-group>
<article-title>Annotation error in public databases: misannotation of molecular function in enzyme superfamilies</article-title>
<source><italic>PLoS Computational Biology</italic>
</source>
<year>2009</year>
<volume>5</volume>
<issue>12</issue>
<pub-id pub-id-type="other">2-s2.0-74549221383</pub-id>
<pub-id pub-id-type="publisher-id">e1000605</pub-id>
</element-citation>
</ref>
<ref id="B14"><label>14</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Skolnick</surname>
<given-names>J</given-names>
</name>
<name><surname>Brylinski</surname>
<given-names>M</given-names>
</name>
</person-group>
<article-title>FINDSITE: a combined evolution/structure-based approach to protein function prediction</article-title>
<source><italic>Briefings in Bioinformatics</italic>
</source>
<year>2009</year>
<volume>10</volume>
<issue>4</issue>
<fpage>378</fpage>
<lpage>391</lpage>
<pub-id pub-id-type="other">2-s2.0-67449108422</pub-id>
<pub-id pub-id-type="pmid">19324930</pub-id>
</element-citation>
</ref>
<ref id="B15"><label>15</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Capra</surname>
<given-names>JA</given-names>
</name>
<name><surname>Laskowski</surname>
<given-names>RA</given-names>
</name>
<name><surname>Thornton</surname>
<given-names>JM</given-names>
</name>
<name><surname>Singh</surname>
<given-names>M</given-names>
</name>
<name><surname>Funkhouser</surname>
<given-names>TA</given-names>
</name>
</person-group>
<article-title>Predicting protein ligand binding sites by combining evolutionary sequence conservation and 3D structure</article-title>
<source><italic>PLoS Computational Biology</italic>
</source>
<year>2009</year>
<volume>5</volume>
<issue>12</issue>
<pub-id pub-id-type="other">2-s2.0-74549149999</pub-id>
<pub-id pub-id-type="publisher-id">e1000585</pub-id>
</element-citation>
</ref>
<ref id="B16"><label>16</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Glaser</surname>
<given-names>F</given-names>
</name>
<name><surname>Rosenberg</surname>
<given-names>Y</given-names>
</name>
<name><surname>Kessel</surname>
<given-names>A</given-names>
</name>
<name><surname>Pupko</surname>
<given-names>T</given-names>
</name>
<name><surname>Ben-Tal</surname>
<given-names>N</given-names>
</name>
</person-group>
<article-title>The ConSurf-HSSP database: the mapping of evolutionary conservation among homologs onto PDB structures</article-title>
<source><italic>Proteins: Structure, Function and Genetics</italic>
</source>
<year>2005</year>
<volume>58</volume>
<issue>3</issue>
<fpage>610</fpage>
<lpage>617</lpage>
<pub-id pub-id-type="other">2-s2.0-12944257228</pub-id>
</element-citation>
</ref>
<ref id="B17"><label>17</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Brylinski</surname>
<given-names>M</given-names>
</name>
</person-group>
<article-title>Unleashing the power of metathreading for evolution/structure-based function inference of proteins</article-title>
<source><italic>Frontiers in Genetics</italic>
</source>
<year>2013</year>
<volume>4, article 118</volume>
</element-citation>
</ref>
<ref id="B18"><label>18</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Altschul</surname>
<given-names>SF</given-names>
</name>
<name><surname>Gish</surname>
<given-names>W</given-names>
</name>
<name><surname>Miller</surname>
<given-names>W</given-names>
</name>
<name><surname>Myers</surname>
<given-names>EW</given-names>
</name>
<name><surname>Lipman</surname>
<given-names>DJ</given-names>
</name>
</person-group>
<article-title>Basic local alignment search tool</article-title>
<source><italic>Journal of Molecular Biology</italic>
</source>
<year>1990</year>
<volume>215</volume>
<issue>3</issue>
<fpage>403</fpage>
<lpage>410</lpage>
<pub-id pub-id-type="other">2-s2.0-0025183708</pub-id>
<pub-id pub-id-type="pmid">2231712</pub-id>
</element-citation>
</ref>
<ref id="B19"><label>19</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gunarathne</surname>
<given-names>T</given-names>
</name>
<name><surname>Wu</surname>
<given-names>T-L</given-names>
</name>
<name><surname>Choi</surname>
<given-names>JY</given-names>
</name>
<name><surname>Bae</surname>
<given-names>S</given-names>
</name>
<name><surname>Qiu</surname>
<given-names>J</given-names>
</name>
</person-group>
<article-title>Cloud computing paradigms for pleasingly parallel biomedical applications</article-title>
<source><italic>Concurrency Computation Practice and Experience</italic>
</source>
<year>2011</year>
<volume>23</volume>
<issue>17</issue>
<fpage>2338</fpage>
<lpage>2354</lpage>
<pub-id pub-id-type="other">2-s2.0-80054919303</pub-id>
</element-citation>
</ref>
<ref id="B20"><label>20</label>
<element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Jha</surname>
<given-names>S</given-names>
</name>
<name><surname>Katz</surname>
<given-names>DS</given-names>
</name>
<name><surname>Luckow</surname>
<given-names>A</given-names>
</name>
<name><surname>Merzky</surname>
<given-names>A</given-names>
</name>
<name><surname>Stamou</surname>
<given-names>K</given-names>
</name>
</person-group>
<article-title>Understanding scientific applications for cloud environments</article-title>
<source><italic>Cloud Computing: Principles and Paradigms</italic>
</source>
<year>2011</year>
<fpage>p. 664</fpage>
</element-citation>
</ref>
<ref id="B21"><label>21</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Taylor</surname>
<given-names>RC</given-names>
</name>
</person-group>
<article-title>An overview of the Hadoop/MapReduce/HBase framework and its current applications in bioinformatics</article-title>
<source><italic>BMC Bioinformatics</italic>
</source>
<year>2010</year>
<volume>11</volume>
<issue>supplement 12, article S1</issue>
<pub-id pub-id-type="other">2-s2.0-78650811522</pub-id>
</element-citation>
</ref>
<ref id="B22"><label>22</label>
<element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Gurtowski</surname>
<given-names>J</given-names>
</name>
<name><surname>Schatz</surname>
<given-names>MC</given-names>
</name>
<name><surname>Langmead</surname>
<given-names>B</given-names>
</name>
</person-group>
<article-title>Genotyping in the cloud with crossbow</article-title>
<source><italic>Current Protocols in Bioinformatics</italic>
</source>
<year>2012</year>
<issue>chapter 15, unit 15.3</issue>
</element-citation>
</ref>
<ref id="B23"><label>23</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Schatz</surname>
<given-names>MC</given-names>
</name>
</person-group>
<article-title>CloudBurst: highly sensitive read mapping with MapReduce</article-title>
<source><italic>Bioinformatics</italic>
</source>
<year>2009</year>
<volume>25</volume>
<issue>11</issue>
<fpage>1363</fpage>
<lpage>1369</lpage>
<pub-id pub-id-type="other">2-s2.0-65649120715</pub-id>
<pub-id pub-id-type="pmid">19357099</pub-id>
</element-citation>
</ref>
<ref id="B24"><label>24</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Baker</surname>
<given-names>M</given-names>
</name>
</person-group>
<article-title>Next-generation sequencing: adjusting to data overload</article-title>
<source><italic>Nature Methods</italic>
</source>
<year>2010</year>
<volume>7</volume>
<issue>7</issue>
<fpage>495</fpage>
<lpage>499</lpage>
<pub-id pub-id-type="other">2-s2.0-77954975104</pub-id>
</element-citation>
</ref>
<ref id="B25"><label>25</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname>
<given-names>J</given-names>
</name>
<name><surname>Maddineni</surname>
<given-names>S</given-names>
</name>
<name><surname>Jha</surname>
<given-names>S</given-names>
</name>
</person-group>
<article-title>Advancing next-generation sequencing data analytics with scalable distributed infrastructure</article-title>
<source><italic>Concurrency Computation Practice and Experience</italic>
</source>
<year>2014</year>
<volume>26</volume>
<issue>4</issue>
<fpage>894</fpage>
<lpage>906</lpage>
<pub-id pub-id-type="other">2-s2.0-84879042421</pub-id>
</element-citation>
</ref>
<ref id="B26"><label>26</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Mantha</surname>
<given-names>PK</given-names>
</name>
<name><surname>Kim</surname>
<given-names>N</given-names>
</name>
<name><surname>Luckow</surname>
<given-names>A</given-names>
</name>
<name><surname>Kim</surname>
<given-names>J</given-names>
</name>
<name><surname>Jha</surname>
<given-names>S</given-names>
</name>
</person-group>
<article-title>Understanding MapReduce-based next-generation sequencing alignment on distributed cyberinfrastructure</article-title>
<conf-name>Proceedings of the 3rd International Emerging Computational Methods for the Life Sciences Workshop (ECMLS ’12)</conf-name>
<conf-date>June 2012</conf-date>
<publisher-name>ACM</publisher-name>
<fpage>3</fpage>
<lpage>12</lpage>
<pub-id pub-id-type="other">2-s2.0-84878488348</pub-id>
</element-citation>
</ref>
<ref id="B27"><label>27</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Brylinski</surname>
<given-names>M</given-names>
</name>
<name><surname>Lingam</surname>
<given-names>D</given-names>
</name>
</person-group>
<article-title>eThread: a highly optimized machine learning-based approach to meta-threading and the modeling of protein tertiary structures</article-title>
<source><italic>PLoS ONE</italic>
</source>
<year>2012</year>
<volume>7</volume>
<issue>11</issue>
<pub-id pub-id-type="other">2-s2.0-84869842288</pub-id>
<pub-id pub-id-type="publisher-id">e50200</pub-id>
</element-citation>
</ref>
<ref id="B28"><label>28</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Brylinski</surname>
<given-names>M</given-names>
</name>
<name><surname>Feinstein</surname>
<given-names>WP</given-names>
</name>
</person-group>
<article-title>Setting up a metathreading pipeline for high-throughput structural bioinformatics: eThread software distribution, walkthrough and resource profiling</article-title>
<source><italic>Journal of Computer Science and Systems Biology</italic>
</source>
<year>2012</year>
<volume>6</volume>
<issue>1</issue>
<fpage>001</fpage>
<lpage>010</lpage>
</element-citation>
</ref>
<ref id="B29"><label>29</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Luckow</surname>
<given-names>A</given-names>
</name>
<name><surname>Santcroos</surname>
<given-names>M</given-names>
</name>
<name><surname>Merzky</surname>
<given-names>A</given-names>
</name>
<name><surname>Weidner</surname>
<given-names>O</given-names>
</name>
<name><surname>Mantha</surname>
<given-names>P</given-names>
</name>
<name><surname>Jha</surname>
<given-names>S</given-names>
</name>
</person-group>
<article-title>P*: a model of pilot-abstractions</article-title>
<conf-name>Proceedings of the IEEE 8th International Conference on E-Science (e-Science ’12)</conf-name>
<conf-date>October 2012</conf-date>
<conf-loc>Chicago, Ill, USA</conf-loc>
<fpage>1</fpage>
<lpage>10</lpage>
<pub-id pub-id-type="other">2-s2.0-84873635388</pub-id>
</element-citation>
</ref>
<ref id="B30"><label>30</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Luckow</surname>
<given-names>A</given-names>
</name>
<name><surname>Lacinski</surname>
<given-names>L</given-names>
</name>
<name><surname>Jha</surname>
<given-names>S</given-names>
</name>
</person-group>
<article-title>SAGA BigJob: an extensible and interoperable Pilot-Job abstraction for distributed applications and systems</article-title>
<conf-name>Proceedings of the 10th IEEE/ACM International Symposium on Cluster, Cloud, and Grid Computing (CCGrid ’10)</conf-name>
<conf-date>May 2010</conf-date>
<conf-loc>Melbourne, Australia</conf-loc>
<fpage>135</fpage>
<lpage>144</lpage>
<pub-id pub-id-type="other">2-s2.0-77954888698</pub-id>
</element-citation>
</ref>
<ref id="B31"><label>31</label>
<element-citation publication-type="other"><collab>SAGA BigJob</collab>
<comment><ext-link ext-link-type="uri" xlink:href="http://saga-project.github.io/BigJob/">http://saga-project.github.io/BigJob/</ext-link>
</comment>
</element-citation>
</ref>
<ref id="B32"><label>32</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Luckow</surname>
<given-names>A</given-names>
</name>
<name><surname>Santcroos</surname>
<given-names>M</given-names>
</name>
<name><surname>Weidner</surname>
<given-names>O</given-names>
</name>
<name><surname>Zebrowski</surname>
<given-names>A</given-names>
</name>
<name><surname>Jha</surname>
<given-names>S</given-names>
</name>
</person-group>
<article-title>Pilot-data: an abstraction for distributed data</article-title>
<comment><italic>CoRR</italic>
, <ext-link ext-link-type="uri" xlink:href="http://arxiv.org/abs/1301.6228">http://arxiv.org/abs/1301.6228</ext-link>
</comment>
</element-citation>
</ref>
<ref id="B33"><label>33</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Maddineni</surname>
<given-names>S</given-names>
</name>
<name><surname>Kim</surname>
<given-names>J</given-names>
</name>
<name><surname>El-Khamra</surname>
<given-names>Y</given-names>
</name>
<name><surname>Jha</surname>
<given-names>S</given-names>
</name>
</person-group>
<article-title>Distributed application runtime environment (DARE): a standards-based middleware framework for science-gateways</article-title>
<source><italic>Journal of Grid Computing</italic>
</source>
<year>2012</year>
<volume>10</volume>
<issue>4</issue>
<fpage>647</fpage>
<lpage>664</lpage>
<pub-id pub-id-type="other">2-s2.0-84871654113</pub-id>
</element-citation>
</ref>
</ref-list>
</back>
<floats-group><fig id="fig1" orientation="portrait" position="float"><label>Figure 1</label>
<caption><p>Schematics of the pilot-based eThread pipeline on EC2. The eThread pipeline can accept a massive number of sequences, identified from genome-wide sequencing methods such as RNA-Seq, for example, as input, and carry out metathreading-based structural bioinformatics analysis including structure modeling. SAGA-Pilot enables its execution on Amazon EC2 cloud environment to be efficient by facilitating data and task-level parallelization.</p>
</caption>
<graphic xlink:href="BMRI2014-348725.001"></graphic>
</fig>
<fig id="fig2" orientation="portrait" position="float"><label>Figure 2</label>
<caption><p>Overall workflow of the pilot-based eThread pipeline on EC2.</p>
</caption>
<graphic xlink:href="BMRI2014-348725.002"></graphic>
</fig>
<fig id="fig3" orientation="portrait" position="float"><label>Figure 3</label>
<caption><p>Required total execution times for 110 sequences shown in (a) and corresponding cost shown in (b) for pfTools across different types of EC2 instances. CPU utilization is also shown in (c).</p>
</caption>
<graphic xlink:href="BMRI2014-348725.003"></graphic>
</fig>
<fig id="fig4" orientation="portrait" position="float"><label>Figure 4</label>
<caption><p>Pilot-based profiling of tools using different EC2 instances. Comparison of time-to-solution for the 10 threading tools, two standalone tools, BLAST and PSIPRED, and meta-analysis step is presented. Cases with m1.large (red) and hi1.4xlarge (blue) are shown and 20 sequences are used. Note that THREADER with m1.large takes 2897 mins which is not fully shown.</p>
</caption>
<graphic xlink:href="BMRI2014-348725.004"></graphic>
</fig>
<fig id="fig5" orientation="portrait" position="float"><label>Figure 5</label>
<caption><p>Time-to-solution of each elementary step in the pipeline using 2 VMs. Results are obtained with 20 sequences and pfTools are used. The times for VM launch (black), threading against chain library (red), threading against domain library (blue), postprocessing for chain (green), and postprocessing for domain (yellow) are shown together.</p>
</caption>
<graphic xlink:href="BMRI2014-348725.005"></graphic>
</fig>
<fig id="fig6" orientation="portrait" position="float"><label>Figure 6</label>
<caption><p>Time-to-solution of each elementary step in the pipeline using 2 heterogeneous VMs (a). Single VM results are presented for comparison (b). Results are obtained with 20 sequences and pfTools are used.</p>
</caption>
<graphic xlink:href="BMRI2014-348725.006"></graphic>
</fig>
<fig id="alg1" orientation="portrait" position="float"><label>Algorithm 1</label>
<caption><p>Serial algorithm for eThread.</p>
</caption>
<graphic xlink:href="BMRI2014-348725.alg.001"></graphic>
</fig>
<fig id="alg2" orientation="portrait" position="float"><label>Algorithm 2</label>
<caption><p>Task-level parallel algorithm for eThread.</p>
</caption>
<graphic xlink:href="BMRI2014-348725.alg.002"></graphic>
</fig>
<fig id="alg3" orientation="portrait" position="float"><label>Algorithm 3</label>
<caption><p>Proposed algorithm combining task-level parallelism and dynamic scheduling for eThread on EC2.</p>
</caption>
<graphic xlink:href="BMRI2014-348725.alg.003"></graphic>
</fig>
<fig id="alg4" orientation="portrait" position="float"><label>Algorithm 4</label>
<caption><p>Simple dynamic scheduling implementation for eThread on EC2.</p>
</caption>
<graphic xlink:href="BMRI2014-348725.alg.004"></graphic>
</fig>
<table-wrap id="tab1" orientation="portrait" position="float"><label>Table 1</label>
<caption><p>Threading tools incorporated in eThread and their workflow structures. For the categorization of computational loads and memory requirement, see the text.</p>
</caption>
<table frame="hsides" rules="groups"><thead><tr><th align="left" rowspan="1" colspan="1">Program name (version)</th>
<th align="center" rowspan="1" colspan="1">Number of subtasks</th>
<th align="center" rowspan="1" colspan="1">Prerequisite</th>
<th align="center" rowspan="1" colspan="1">Computational load</th>
<th align="center" rowspan="1" colspan="1">Memory requirement</th>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">THREADER (3.5)</td>
<td align="center" rowspan="1" colspan="1">4</td>
<td align="center" rowspan="1" colspan="1">PSIPRED (3.2.1), BLAST (2.2.5)</td>
<td align="center" rowspan="1" colspan="1">Highest</td>
<td align="center" rowspan="1" colspan="1">Low</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">SAM-T2K (3.5)</td>
<td align="center" rowspan="1" colspan="1">9</td>
<td align="center" rowspan="1" colspan="1">BLAST</td>
<td align="center" rowspan="1" colspan="1">High</td>
<td align="center" rowspan="1" colspan="1">High</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">HHpred (2.0)</td>
<td align="center" rowspan="1" colspan="1">7</td>
<td align="center" rowspan="1" colspan="1">BLAST</td>
<td align="center" rowspan="1" colspan="1">High</td>
<td align="center" rowspan="1" colspan="1">Medium</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">CS/CSI-BLAST (2.1.0)</td>
<td align="center" rowspan="1" colspan="1">4</td>
<td align="center" rowspan="1" colspan="1"> </td>
<td align="center" rowspan="1" colspan="1">Low</td>
<td align="center" rowspan="1" colspan="1">Low</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">COMPASS (3.1)</td>
<td align="center" rowspan="1" colspan="1">7</td>
<td align="center" rowspan="1" colspan="1">BLAST</td>
<td align="center" rowspan="1" colspan="1">High</td>
<td align="center" rowspan="1" colspan="1">High</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">pfTools (2.3.4)</td>
<td align="center" rowspan="1" colspan="1">4</td>
<td align="center" rowspan="1" colspan="1"> </td>
<td align="center" rowspan="1" colspan="1">Medium</td>
<td align="center" rowspan="1" colspan="1">Low</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">pGenTHREADER (8.9)</td>
<td align="center" rowspan="1" colspan="1">4</td>
<td align="center" rowspan="1" colspan="1">BLAST</td>
<td align="center" rowspan="1" colspan="1">High</td>
<td align="center" rowspan="1" colspan="1">Low</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">HMMER (3.1.b1)</td>
<td align="center" rowspan="1" colspan="1">4</td>
<td align="center" rowspan="1" colspan="1"> </td>
<td align="center" rowspan="1" colspan="1">Low</td>
<td align="center" rowspan="1" colspan="1">Low</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">SPARKS (20050315)</td>
<td align="center" rowspan="1" colspan="1">4</td>
<td align="center" rowspan="1" colspan="1">BLAST</td>
<td align="center" rowspan="1" colspan="1">High</td>
<td align="center" rowspan="1" colspan="1">Medium</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">SP3 (20050315)</td>
<td align="center" rowspan="1" colspan="1">4</td>
<td align="center" rowspan="1" colspan="1">BLAST</td>
<td align="center" rowspan="1" colspan="1">High</td>
<td align="center" rowspan="1" colspan="1">Medium</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab2" orientation="portrait" position="float"><label>Table 2</label>
<caption><p>The summary of EC2 instance types used for this study. For the instance type, E stands for economical, G for general purpose, M for memory-optimized, C for compute-optimized, and S for storage-optimized, following the description from Amazon. Nonsupporting threading tools are identified based on the profiling results of the previous work [<xref rid="B28" ref-type="bibr">28</xref>
]. The cost information is obtained from the AWS site as of this writing and the unit is $0.02 which is the pricing for t1.micro.</p>
</caption>
<table frame="hsides" rules="groups"><thead><tr><th align="left" rowspan="1" colspan="1">Instance</th>
<th align="center" rowspan="1" colspan="1">Type</th>
<th align="center" rowspan="1" colspan="1">Number of cores</th>
<th align="center" rowspan="1" colspan="1">Memory (GB)</th>
<th align="center" rowspan="1" colspan="1">Nonsupport threading tools</th>
<th align="center" rowspan="1" colspan="1">Relative cost</th>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">t1.micro</td>
<td align="center" rowspan="1" colspan="1">E </td>
<td align="center" rowspan="1" colspan="1">1</td>
<td align="center" rowspan="1" colspan="1">0.613</td>
<td align="center" rowspan="1" colspan="1">HHpred, COMPASS, SAM-T2K, pGenThreader, SPARKS, SP3</td>
<td align="center" rowspan="1" colspan="1">1</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">m1.small</td>
<td align="center" rowspan="1" colspan="1">G</td>
<td align="center" rowspan="1" colspan="1">1</td>
<td align="center" rowspan="1" colspan="1">1.7</td>
<td align="center" rowspan="1" colspan="1">COMPASS, SAM-T2K, pGenThreader</td>
<td align="center" rowspan="1" colspan="1">3</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">m1.medium</td>
<td align="center" rowspan="1" colspan="1">G</td>
<td align="center" rowspan="1" colspan="1">1</td>
<td align="center" rowspan="1" colspan="1">3.7</td>
<td align="center" rowspan="1" colspan="1">SAM-T2K</td>
<td align="center" rowspan="1" colspan="1">6</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">m1.large</td>
<td align="center" rowspan="1" colspan="1">M</td>
<td align="center" rowspan="1" colspan="1">2</td>
<td align="center" rowspan="1" colspan="1">7.5</td>
<td align="center" rowspan="1" colspan="1">None</td>
<td align="center" rowspan="1" colspan="1">12</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">c1.medium</td>
<td align="center" rowspan="1" colspan="1">C</td>
<td align="center" rowspan="1" colspan="1">2</td>
<td align="center" rowspan="1" colspan="1">1.7</td>
<td align="center" rowspan="1" colspan="1">COMPASS, SAM-T2K, pGenThreader</td>
<td align="center" rowspan="1" colspan="1">7.25</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">c1.xlarge</td>
<td align="center" rowspan="1" colspan="1">C</td>
<td align="center" rowspan="1" colspan="1">8</td>
<td align="center" rowspan="1" colspan="1">7 </td>
<td align="center" rowspan="1" colspan="1">None</td>
<td align="center" rowspan="1" colspan="1">29</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">hi1.4xlarge</td>
<td align="center" rowspan="1" colspan="1">S</td>
<td align="center" rowspan="1" colspan="1">16</td>
<td align="center" rowspan="1" colspan="1">60.5</td>
<td align="center" rowspan="1" colspan="1">None</td>
<td align="center" rowspan="1" colspan="1">155</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab3" orientation="portrait" position="float"><label>Table 3</label>
<caption><p>Benchmark data sets.</p>
</caption>
<table frame="hsides" rules="groups"><thead><tr><th align="left" rowspan="1" colspan="1">Length range (aa)</th>
<th align="center" rowspan="1" colspan="1">110 sequences</th>
<th align="center" rowspan="1" colspan="1">20 sequences</th>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">51–100</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">2</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">101–150</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">2</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">151–200</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">2</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">201–250</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">2</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">251–300</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">2</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">301–350</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">2</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">351–400</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">2</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">401–450</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">2</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">451–500</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">1</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">501–550</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">1</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">551–600</td>
<td align="center" rowspan="1" colspan="1">10</td>
<td align="center" rowspan="1" colspan="1">2</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab4" orientation="portrait" position="float"><label>Table 4</label>
<caption><p>Breaking the time-to-solutions of the main processing step into subtasks. Four subtasks corresponding chain and domain libraries and their postprocessing are measured along with VM launch times. Results are with pfTools. Units are in minutes.</p>
</caption>
<table frame="hsides" rules="groups"><thead><tr><th align="left" rowspan="1" colspan="1">VM launch</th>
<th align="center" rowspan="1" colspan="1">Chain</th>
<th align="center" rowspan="1" colspan="1">Domain</th>
<th align="center" rowspan="1" colspan="1">Chain postprocessing</th>
<th align="center" rowspan="1" colspan="1">Domain postprocessing</th>
</tr>
</thead>
<tbody><tr><td align="left" colspan="5" rowspan="1">t1.micro</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">1.9</td>
<td align="center" rowspan="1" colspan="1">316.5</td>
<td align="center" rowspan="1" colspan="1">331.6</td>
<td align="center" rowspan="1" colspan="1">33.4</td>
<td align="center" rowspan="1" colspan="1">21.5</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1"><hr></hr>
</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1">m1.small</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">1.3</td>
<td align="center" rowspan="1" colspan="1">137.1</td>
<td align="center" rowspan="1" colspan="1">90.1</td>
<td align="center" rowspan="1" colspan="1">9.7</td>
<td align="center" rowspan="1" colspan="1">7.9</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1"><hr></hr>
</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1">m1.medium</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">1.3</td>
<td align="center" rowspan="1" colspan="1">62.2</td>
<td align="center" rowspan="1" colspan="1">42.9</td>
<td align="center" rowspan="1" colspan="1">6.1</td>
<td align="center" rowspan="1" colspan="1">4.4</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1"><hr></hr>
</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1">m1.large</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">1.2</td>
<td align="center" rowspan="1" colspan="1">31.1</td>
<td align="center" rowspan="1" colspan="1">21.5</td>
<td align="center" rowspan="1" colspan="1">3.4</td>
<td align="center" rowspan="1" colspan="1">2.7</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1"><hr></hr>
</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1">c1.medium</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">1.3</td>
<td align="center" rowspan="1" colspan="1">32.8</td>
<td align="center" rowspan="1" colspan="1">22.5</td>
<td align="center" rowspan="1" colspan="1">3.9</td>
<td align="center" rowspan="1" colspan="1">3.1</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1"><hr></hr>
</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1">c1.xlarge</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">1.3</td>
<td align="center" rowspan="1" colspan="1">9.5</td>
<td align="center" rowspan="1" colspan="1">6.5</td>
<td align="center" rowspan="1" colspan="1">1.1</td>
<td align="center" rowspan="1" colspan="1">1.2</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1"><hr></hr>
</td>
</tr>
<tr><td align="left" colspan="5" rowspan="1">hi1.4xlarge</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">1.5</td>
<td align="center" rowspan="1" colspan="1">7.7</td>
<td align="center" rowspan="1" colspan="1">5.3</td>
<td align="center" rowspan="1" colspan="1">1.3</td>
<td align="center" rowspan="1" colspan="1">1.2</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab5" orientation="portrait" position="float"><label>Table 5</label>
<caption><p>Time for launching an instance. Averaged values of 6 repeated experiments are shown with standard deviation.</p>
</caption>
<table frame="hsides" rules="groups"><thead><tr><th align="left" rowspan="1" colspan="1">Instance</th>
<th align="center" rowspan="1" colspan="1">Launching time (min)<break></break>
(standard deviation)</th>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">t1.micro</td>
<td align="center" rowspan="1" colspan="1">1.99 (0.2)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">m1.small</td>
<td align="center" rowspan="1" colspan="1">1.86 (0.08)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">m1.medium</td>
<td align="center" rowspan="1" colspan="1">1.80 (0.15)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">m1.large</td>
<td align="center" rowspan="1" colspan="1">1.70 (0.08)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">c1.medium</td>
<td align="center" rowspan="1" colspan="1">1.68 (0.17)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">c1.xlarge</td>
<td align="center" rowspan="1" colspan="1">1.69 (0.08)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">hi1.4xlarge</td>
<td align="center" rowspan="1" colspan="1">2.01 (0.16)</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab6" orientation="portrait" position="float"><label>Table 6</label>
<caption><p>Summary of benchmark results for time-to-solution (TTS) and cost-to-solution (CTS). The 20-sequence data set is used. Among the complete benchmark experimental results obtained for all threading tools, we chose three threading tools here for the sake of space. TTS is in minutes and CTS is in US dollars based on the pricing as of this writing.</p>
</caption>
<table frame="hsides" rules="groups"><thead><tr><th align="left" rowspan="2" colspan="1">VM type</th>
<th align="center" rowspan="1" colspan="1">TTS</th>
<th align="center" rowspan="1" colspan="1">CTS</th>
<th align="center" rowspan="1" colspan="1">TTS</th>
<th align="center" rowspan="1" colspan="1">CTS</th>
<th align="center" rowspan="1" colspan="1">TTS</th>
<th align="center" rowspan="1" colspan="1">CTS</th>
</tr>
<tr><th align="center" colspan="2" rowspan="1">HMMER</th>
<th align="center" colspan="2" rowspan="1">SP3</th>
<th align="center" colspan="2" rowspan="1">THREADER</th>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">t1.micro</td>
<td align="center" rowspan="1" colspan="1">33.1</td>
<td align="center" rowspan="1" colspan="1">0.01</td>
<td align="center" rowspan="1" colspan="1">N/A</td>
<td align="center" rowspan="1" colspan="1">N/A</td>
<td align="center" rowspan="1" colspan="1">96905.8</td>
<td align="center" rowspan="1" colspan="1">32.30</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">m1.small</td>
<td align="center" rowspan="1" colspan="1">29.0</td>
<td align="center" rowspan="1" colspan="1">0.03</td>
<td align="center" rowspan="1" colspan="1">1312.3</td>
<td align="center" rowspan="1" colspan="1">1.31</td>
<td align="center" rowspan="1" colspan="1">27842.2</td>
<td align="center" rowspan="1" colspan="1">27.84</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">m1.medium</td>
<td align="center" rowspan="1" colspan="1">19.6</td>
<td align="center" rowspan="1" colspan="1">0.04</td>
<td align="center" rowspan="1" colspan="1">670.7</td>
<td align="center" rowspan="1" colspan="1">1.34</td>
<td align="center" rowspan="1" colspan="1">11551.2</td>
<td align="center" rowspan="1" colspan="1">23.10</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">m1.large</td>
<td align="center" rowspan="1" colspan="1">9.8</td>
<td align="center" rowspan="1" colspan="1">0.04</td>
<td align="center" rowspan="1" colspan="1">458.0</td>
<td align="center" rowspan="1" colspan="1">1.83</td>
<td align="center" rowspan="1" colspan="1">2897.2</td>
<td align="center" rowspan="1" colspan="1">11.59</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">c1.medium</td>
<td align="center" rowspan="1" colspan="1">10.6</td>
<td align="center" rowspan="1" colspan="1">0.03</td>
<td align="center" rowspan="1" colspan="1">356.7</td>
<td align="center" rowspan="1" colspan="1">0.86</td>
<td align="center" rowspan="1" colspan="1">6833.8</td>
<td align="center" rowspan="1" colspan="1">16.52</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">c1.xlarge</td>
<td align="center" rowspan="1" colspan="1">6.1</td>
<td align="center" rowspan="1" colspan="1">0.06</td>
<td align="center" rowspan="1" colspan="1">118.6</td>
<td align="center" rowspan="1" colspan="1">1.15</td>
<td align="center" rowspan="1" colspan="1">2019.3</td>
<td align="center" rowspan="1" colspan="1">19.52</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">hi1.4xlarge</td>
<td align="center" rowspan="1" colspan="1">5.8</td>
<td align="center" rowspan="1" colspan="1">0.30</td>
<td align="center" rowspan="1" colspan="1">105.7</td>
<td align="center" rowspan="1" colspan="1">5.46</td>
<td align="center" rowspan="1" colspan="1">1552.2</td>
<td align="center" rowspan="1" colspan="1">80.20</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab7" orientation="portrait" position="float"><label>Table 7</label>
<caption><p>Comparison of pipeline-based time-to-solutions with ideal limits. Ideal limits are obtained from the benchmark results of 20 sequences divided by the number of cores in an instance. Units are minutes.</p>
</caption>
<table frame="hsides" rules="groups"><thead><tr><th align="left" rowspan="2" colspan="1">Tools</th>
<th align="center" rowspan="1" colspan="1">Pipeline</th>
<th align="center" rowspan="1" colspan="1">Ideal limit</th>
<th align="center" rowspan="1" colspan="1">Pipeline</th>
<th align="center" rowspan="1" colspan="1">Ideal limit</th>
<th align="center" rowspan="1" colspan="1">Pipeline</th>
<th align="center" rowspan="1" colspan="1">Ideal limit</th>
</tr>
<tr><th align="center" colspan="2" rowspan="1">m1.small</th>
<th align="center" colspan="2" rowspan="1">c1.xlarge</th>
<th align="center" colspan="2" rowspan="1">hi1.4xlarge</th>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">SAMT2K</td>
<td align="center" rowspan="1" colspan="1">1271.0</td>
<td align="center" rowspan="1" colspan="1">1055.7</td>
<td align="center" rowspan="1" colspan="1">224.5</td>
<td align="center" rowspan="1" colspan="1">65.6</td>
<td align="center" rowspan="1" colspan="1">168.3</td>
<td align="center" rowspan="1" colspan="1">35.7</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">SP3</td>
<td align="center" rowspan="1" colspan="1">1312.2</td>
<td align="center" rowspan="1" colspan="1">1124.4</td>
<td align="center" rowspan="1" colspan="1">118.6</td>
<td align="center" rowspan="1" colspan="1">68.1</td>
<td align="center" rowspan="1" colspan="1">105.7</td>
<td align="center" rowspan="1" colspan="1">33.0</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">CSBLAST</td>
<td align="center" rowspan="1" colspan="1">25.2</td>
<td align="center" rowspan="1" colspan="1">15.4</td>
<td align="center" rowspan="1" colspan="1">6.0</td>
<td align="center" rowspan="1" colspan="1">1.23</td>
<td align="center" rowspan="1" colspan="1">4.4</td>
<td align="center" rowspan="1" colspan="1">0.47</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">HMMER</td>
<td align="center" rowspan="1" colspan="1">29.0</td>
<td align="center" rowspan="1" colspan="1">16.0</td>
<td align="center" rowspan="1" colspan="1">6.1</td>
<td align="center" rowspan="1" colspan="1">1.0</td>
<td align="center" rowspan="1" colspan="1">5.8</td>
<td align="center" rowspan="1" colspan="1">0.6</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">pfTools</td>
<td align="center" rowspan="1" colspan="1">244.8</td>
<td align="center" rowspan="1" colspan="1">226.0</td>
<td align="center" rowspan="1" colspan="1">18.3</td>
<td align="center" rowspan="1" colspan="1">12.8</td>
<td align="center" rowspan="1" colspan="1">15.5</td>
<td align="center" rowspan="1" colspan="1">9.2</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">THREADER</td>
<td align="center" rowspan="1" colspan="1">27842.2</td>
<td align="center" rowspan="1" colspan="1">23744.0</td>
<td align="center" rowspan="1" colspan="1">2019.3</td>
<td align="center" rowspan="1" colspan="1">1488.0</td>
<td align="center" rowspan="1" colspan="1">1552.2</td>
<td align="center" rowspan="1" colspan="1">1090.4</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">SPARKS</td>
<td align="center" rowspan="1" colspan="1">1021.8</td>
<td align="center" rowspan="1" colspan="1">1037.7</td>
<td align="center" rowspan="1" colspan="1">80.0</td>
<td align="center" rowspan="1" colspan="1">54.3</td>
<td align="center" rowspan="1" colspan="1">73.3</td>
<td align="center" rowspan="1" colspan="1">41.8</td>
</tr>
</tbody>
</table>
</table-wrap>
</floats-group>
</pmc>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/CyberinfraV1/Data/Pmc/Corpus
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 0005050 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd -nk 0005050 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Ticri/CIDE |area= CyberinfraV1 |flux= Pmc |étape= Corpus |type= RBID |clé= |texte= }}
![]() | This area was generated with Dilib version V0.6.25. | ![]() |