SoftwareXPub Date : 2025-02-01DOI: 10.1016/j.softx.2024.101998
Saman Barakat , Alberto Martin-Lopez , Carlos Müller , Sergio Segura , Antonio Ruiz-Cortés
{"title":"The IDL tool suite: Specifying and analyzing inter-parameter dependencies in web APIs","authors":"Saman Barakat , Alberto Martin-Lopez , Carlos Müller , Sergio Segura , Antonio Ruiz-Cortés","doi":"10.1016/j.softx.2024.101998","DOIUrl":"10.1016/j.softx.2024.101998","url":null,"abstract":"<div><div>Web APIs may include inter-parameter dependencies that limit how input parameters can be combined to call services correctly. These dependencies are extremely common, appearing in 4 out of every 5 APIs. This paper presents the IDL tool suite, a set of software tools for managing inter-parameter dependencies in web APIs. The suite includes a specification language (IDL), an OpenAPI Specification extension (IDL4OAS), an analysis engine (IDLReasoner), a web API, a playground, an AI chatbot, and a website. We also highlight several contributions by different groups of authors where the IDL tool suite has proven useful in the domains of automated testing, code generation, and API gateways. To date, the IDL tool suite has contributed to the detection of more than 200 bugs in industrial APIs, including GitHub, Spotify, and YouTube, among others. Also, IDL has been used to boost automated code generation, generating up to 10 times more code than state-of-the-art generators for web APIs.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 101998"},"PeriodicalIF":2.4,"publicationDate":"2025-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143092973","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SoftwareXPub Date : 2025-02-01DOI: 10.1016/j.softx.2024.102027
Luis Vincent Tejada Martinez , Ibrahim Coulibaly , Jean-François Witz , Antoine Weisrock , François Lesaffre , Xavier Boidin , Denis Najjar
{"title":"ASAHM: A Python module for hybrid FFF (Fused Filament Fabrication)/CNC (computer numerically controlled) manufacturing","authors":"Luis Vincent Tejada Martinez , Ibrahim Coulibaly , Jean-François Witz , Antoine Weisrock , François Lesaffre , Xavier Boidin , Denis Najjar","doi":"10.1016/j.softx.2024.102027","DOIUrl":"10.1016/j.softx.2024.102027","url":null,"abstract":"<div><div>In this article we introduce a Python module named’ ASAHM’ (Automated Subtractive Additive Hybrid Manufacturing) that generates G-code files for hybrid FFF (Fused Filament Fabrication)/CNC (Computer Numerical Control) manufacturing, which can be used on multi-tool 3D printers from files generated by slicers such as Cura, Prusa Slicer, or Simplify3D. The module is based on the Trimesh library, which allows for common 3D mesh manipulations, and the Shapely library, used for the manipulation and analysis of 2D geometric shapes. By integrating contouring and surfacing operations that enable the machining of the entire 3D-printed geometries, ASAHM represents a first step towards the large-scale adoption of a hybrid FFF/CNC process.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 102027"},"PeriodicalIF":2.4,"publicationDate":"2025-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143093070","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SoftwareXPub Date : 2025-02-01DOI: 10.1016/j.softx.2024.102009
Alejandro Fernández-Fraga, Jorge González-Domínguez, María J. Martín
{"title":"BetaGPU: Harnessing GPU power for parallelized beta distribution functions","authors":"Alejandro Fernández-Fraga, Jorge González-Domínguez, María J. Martín","doi":"10.1016/j.softx.2024.102009","DOIUrl":"10.1016/j.softx.2024.102009","url":null,"abstract":"<div><div>The efficient computation of Beta distribution functions, particularly the Probability Density Function (PDF) and Cumulative Distribution Function (CDF), is critical in various scientific fields, including bioinformatics and data analysis. This work presents BetaGPU, a high-performance software package written in C++ and CUDA that leverages the parallel processing capabilities of Graphics Processing Units (GPUs) to significantly accelerate these computations, with an OpenMP version for multiCPU systems, and integrated seamlessly with popular statistical programming languages R and Python. This open-source package provides an accessible, accurate, and scalable solution for researchers and practitioners. By offloading intensive calculations to the GPU, this software is significantly faster than traditional single-core CPU-based methods, facilitating faster data analysis and enabling real-time applications. The software’s high performance and ease of use make it an invaluable tool for users in bioinformatics and other data-intensive domains.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 102009"},"PeriodicalIF":2.4,"publicationDate":"2025-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143127868","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SoftwareXPub Date : 2025-02-01DOI: 10.1016/j.softx.2024.102015
Osman Caglar , Cem Baglum , Ugur Yayan
{"title":"CleanAI: Deep neural network model quality evaluation tool","authors":"Osman Caglar , Cem Baglum , Ugur Yayan","doi":"10.1016/j.softx.2024.102015","DOIUrl":"10.1016/j.softx.2024.102015","url":null,"abstract":"<div><div>The growing deployment of AI systems in high-risk environments, along with the increasing necessity of integrating AI into portable devices, emphasizes the need to rigorously assess their quality and reliability. Existing tools for analyzing Deep Neural Network (DNN) models' strength, safety, and quality are limited. CleanAI addresses this gap, serving as an advanced testing system to evaluate the robustness, quality, and dependability of DNN models. It incorporates eleven coverage testing methods, providing developers with insights into DNN quality, enabling analysis of model performance, and generating comprehensive output reports. This study compares various ResNet models using activation metrics, boundary metrics, and interaction metrics, revealing qualitative differences. This comparative analysis informs developers, setting a critical benchmark to tailor AI solutions adhering to stringent quality standards. Ultimately, it encourages reconsideration of model complexity and memory footprint for optimized designs, enhancing overall performance and efficiency. Additionally, by simplifying models and reducing their size, CleanAI facilitates the acceleration of AI models, resulting in significant time and cost savings. The findings from the comparative analysis also demonstrate the potential for substantial optimization in model complexity and size. By leveraging CleanAI's comprehensive coverage metrics, developers can identify areas for refinement, leading to streamlined models with reduced memory requirements. This approach not only enhances computational efficiency but also supports the growing demand for lightweight AI systems suitable for deployment on portable devices. CleanAI's role in bridging the gap between robustness and efficiency makes it a crucial tool for advancing AI development while maintaining high standards of quality and reliability.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 102015"},"PeriodicalIF":2.4,"publicationDate":"2025-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143127872","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SoftwareXPub Date : 2025-02-01DOI: 10.1016/j.softx.2025.102071
Andres Felipe Ruiz-Hurtado , Juliana Perez Bolaños , Darwin Alexis Arrechea-Castillo , Juan Andres Cardoso
{"title":"TreeEyed: A QGIS plugin for tree monitoring in silvopastoral systems using state of the art AI models","authors":"Andres Felipe Ruiz-Hurtado , Juliana Perez Bolaños , Darwin Alexis Arrechea-Castillo , Juan Andres Cardoso","doi":"10.1016/j.softx.2025.102071","DOIUrl":"10.1016/j.softx.2025.102071","url":null,"abstract":"<div><div>Tree monitoring is a challenging task due to the labour-intensive and time-consuming data collection methods required. We present TreeEyed, a QGIS plugin designed to facilitate the monitoring of trees using remote sensing RGB imagery and artificial intelligence models. The plugin offers several tools including tree inference process for tree segmentation and detection. This tool was implemented to facilitate the manipulation and processing of Geographical Information System (GIS) data from different sources, allowing multi resolution, variable extent, and generating results in a standard GIS format (georeferenced raster and vector). Additional options like postprocessing, dataset generation, and data validation are also incorporated.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 102071"},"PeriodicalIF":2.4,"publicationDate":"2025-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143127999","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SoftwareXPub Date : 2025-02-01DOI: 10.1016/j.softx.2024.102016
Daniel Huici, Ricardo J. Rodríguez, Eduardo Mena
{"title":"APOTHEOSIS: An efficient approximate similarity search system","authors":"Daniel Huici, Ricardo J. Rodríguez, Eduardo Mena","doi":"10.1016/j.softx.2024.102016","DOIUrl":"10.1016/j.softx.2024.102016","url":null,"abstract":"<div><div><span>APOTHEOSIS</span> is a tool for efficiently identifying and comparing data similarity in large datasets, addressing challenges faced by traditional methods such as scalability and speed. <span>APOTHEOSIS</span> overcomes them by combining advanced algorithms and data structures, enabling fast and accurate similarity analysis. Specifically, it uses a custom hierarchical small navigation world as an approximate <span><math><mi>K</mi></math></span>-nearest neighbors search method, and approximate similarity digests algorithms to find common features between similar data items, also supporting various distance metrics beyond vector-based approaches. Our software tool is designed for seamless integration into research workflows, improving reproducibility and facilitating the comparison of large-scale, high-dimensional data comparison across multiple domains.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 102016"},"PeriodicalIF":2.4,"publicationDate":"2025-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143092981","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SoftwareXPub Date : 2025-02-01DOI: 10.1016/j.softx.2024.102024
José L. Garrido-Labrador, Jesús M. Maudes-Raedo, Juan J. Rodríguez, César I. García-Osorio
{"title":"SSLearn: A Semi-Supervised Learning library for Python","authors":"José L. Garrido-Labrador, Jesús M. Maudes-Raedo, Juan J. Rodríguez, César I. García-Osorio","doi":"10.1016/j.softx.2024.102024","DOIUrl":"10.1016/j.softx.2024.102024","url":null,"abstract":"<div><div>SSLearn is an open-source Python-based library that advances semi-supervised learning (SSL) with a focus on wrapper algorithms and restricted set classification (RSC), a novel paradigm. It fosters innovation by allowing researchers to modify methods or create new ones, facilitating access to state-of-the-art algorithms and comparative studies. As the only library incorporating RSC for constrained classification, SSLearn fills an important gap in SSL tools. Fully compatible with Scikit-Learn, it integrates seamlessly into research workflows, lowering the barrier to entry to SSL and catalyzing its adoption in diverse domains. This makes SSLearn a critical resource for advancing SSL research and applications.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 102024"},"PeriodicalIF":2.4,"publicationDate":"2025-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143093069","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SoftwareXPub Date : 2025-02-01DOI: 10.1016/j.softx.2024.102002
Raphaël Gass , Zhongliang Li , Rachid Outbib , Samir Jemei , Daniel Hissel
{"title":"AlphaPEM: An open-source dynamic 1D physics-based PEM fuel cell model for embedded applications","authors":"Raphaël Gass , Zhongliang Li , Rachid Outbib , Samir Jemei , Daniel Hissel","doi":"10.1016/j.softx.2024.102002","DOIUrl":"10.1016/j.softx.2024.102002","url":null,"abstract":"<div><div>The urgency of the energy transition requires improving the performance and longevity of hydrogen technologies. AlphaPEM is a dynamic one-dimensional (1D) physics-based PEM fuel cell system simulator, programmed in Python and experimentally validated. It offers a good balance between accuracy and execution speed. The modular architecture allows for addition of new features, and it has a user-friendly graphical interface. An automatic calibration method is proposed to match the model to the studied fuel cell. The software provides information on the internal states of the system in response to any current density and can produce polarization and EIS curves. AlphaPEM facilitates the use of a model in embedded conditions, allowing real-time modification of the fuel cell’s operating conditions.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 102002"},"PeriodicalIF":2.4,"publicationDate":"2025-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143093374","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SoftwareXPub Date : 2025-02-01DOI: 10.1016/j.softx.2024.102020
Lucas A. Polson , Roberto Fedrigo , Chenguang Li , Maziar Sabouri , Obed Dzikunu , Shadab Ahamed , Nicolas Karakatsanis , Sara Kurkowska , Peyman Sheikhzadeh , Pedro Esquinas , Arman Rahmim , Carlos Uribe
{"title":"PyTomography: A python library for medical image reconstruction","authors":"Lucas A. Polson , Roberto Fedrigo , Chenguang Li , Maziar Sabouri , Obed Dzikunu , Shadab Ahamed , Nicolas Karakatsanis , Sara Kurkowska , Peyman Sheikhzadeh , Pedro Esquinas , Arman Rahmim , Carlos Uribe","doi":"10.1016/j.softx.2024.102020","DOIUrl":"10.1016/j.softx.2024.102020","url":null,"abstract":"<div><div>There is a need for open-source libraries in emission tomography that (i) use modern and popular backend code to encourage community contributions and (ii) offer support for the multitude of reconstruction techniques available in recent literature, such as those that employ artificial intelligence. The purpose of this research was to create and evaluate a GPU-accelerated, open-source, and user-friendly image reconstruction library, designed to serve as a central platform for the development, validation, and deployment of various tomographic reconstruction algorithms. PyTomography was developed using Python and inherits the GPU-accelerated functionality of PyTorch and parallelproj for fast computations. Its flexible and modular design decouples system matrices, likelihoods, and reconstruction algorithms, simplifying the process of integrating new imaging modalities using various python tools. Example use cases demonstrate the software capabilities in parallel hole SPECT and listmode PET imaging. Overall, we have developed and publicly share PyTomography, a highly optimized and user-friendly software for medical image reconstruction, with a class hierarchy that fosters the development of novel imaging applications.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 102020"},"PeriodicalIF":2.4,"publicationDate":"2025-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143127767","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SoftwareXPub Date : 2025-02-01DOI: 10.1016/j.softx.2025.102050
Margareta J. Hellmann, Bruno M. Moerschbacher, Stefan Cord-Landwehr
{"title":"LCP simulator: An easy-to-use web tool to simulate pattern analysis and enzymatic cleavage of binary linear copolymers","authors":"Margareta J. Hellmann, Bruno M. Moerschbacher, Stefan Cord-Landwehr","doi":"10.1016/j.softx.2025.102050","DOIUrl":"10.1016/j.softx.2025.102050","url":null,"abstract":"<div><div>The composition and enzymatic cleavage of binary linear copolymers (LCPs) composed of two different units, such as the glycans chitosan, homogalacturonan, alginate, or hyaluronan, are widely investigated by researchers from various disciplines including biomedicine, material sciences, and biotechnology. The LCP Simulator is a user-friendly free web tool available to anyone without registration at <span><span>https://lcp-simulator.anvil.app</span><svg><path></path></svg></span>. The objective is to provide support for LCP-researchers, including those lacking experience in <em>in silico</em> analyses, by offering a low-threshold possibility to simulate a) the analysis of distributions of the two units within LCPs, and b) the influence of LCP properties on the composition of products after cleavage with enzymes of defined subsite specificities.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 102050"},"PeriodicalIF":2.4,"publicationDate":"2025-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143127778","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}