List of projects | Portfolio 2010 - 2024

Project Name: Tempered Adapted Markov Chain Monte Carlo for Stellar Physics (TAMCMC)
Goal: Provide a program that act as a test platform for researching best physical models that can explain observational data
Language: C++
>> More <<
Other Knowledge: Bayesian Statistics, Likelihood-based Optimisation problem, Physics
Contributor: Othman Benomar
Users: Othman Benomar, Academic researchers and students in France (IRAP, Toulouse), India (TIFR, Mumbai), UAE (NYUAD, Abu Dhabi)
History: Started in 2009. First functional version in 2010. Still maintained as of today
Github: https://github.com/OthmanB/TAMCMC-C
Inputs: Configurations files, Input Data in ASCII format (2-column format)
Outputs: Binary data files, diagnostics plots and files, results summary files
Details:
This is a modular Bayesian fitting algorithm initially developed in IDL and converted in C++ for efficiency reason. The core of the algorithm is using research done by Y. Atchade 2005 (https://pdfs.semanticscholar.org/0f0c/30a5bb83291007915f5b23614d0be62cd304.pdf). The premises of the fit is that the Posterior Probability Distribution is providing an unbiased result (unbiased estimator) and that the smallest theoretical uncertainty given by the lower bound of the Cramer-Rao inequality (ie, minimize the Fisher Information Matrix) can be reached.
The code includes three core algorithms:
     - A Metropolis-Hasting algorithm to perform the MCMC sampling.
     - A Robbins-Monroe algorithm to perform reinforcement learning of the MCMC sampling covariance matrix using the observed data.
     - A Parallel-Tempering algorithm to enhance the sampling.
Several modules for setup and physical model definitions are also available, allowing the user to implement and test various possible physical models that may explain the observational data.


Project Name: TAMCMC-Replay
Goal: Provide a visualization tool of all the essential statistical outputs of the TAMCMC project in a video format
Language: Python 3
>> More <<
Other Knowledge: Statistics. Understanding the outputs of the TAMCMC project
Contributor: Othman Benomar
Users: Othman Benomar
History: First functional version in 2021. In use as of today
Github: https://github.com/OthmanB/Replay_MCMC
Inputs: TAMCMC project output files
Outputs: JPG frames and associated movies
Details:
This is a tool that allows you to see all the statistical outputs of an analysis using the TAMCMC project. This is mostly for debug purpose or to create visual demonstrations of a MCMC fitting process.
Example: A video showcasing this program, using some TAMCMC results project is available at: https://othmanbenomar.dev/blog/2022/12/21/how-to-make-a-video-from-individual-frames-in-python/


Project Name: Spectrum Simulator
Goal: Provide synthetics asteroseismic data to train deep neuronal networks or evaluate statistical performances (benchmarking) of stellar physics data analysis
Language: C++ using cmake for compilation
>> More <<
Other Knowledge: Physics, Mathematics
Contributor: Othman Benomar (main), Shatanik Bhattacharya (magnetic effects)
Users: Othman Benomar, Academic researchers and students in India (TIFR, Mumbai) and UAE (NYUAD, Abu Dhabi)
History: Started in 2014. First functional version in 2015. Still maintained as of today
Github: https://github.com/OthmanB/Spectra-Simulator-C
Inputs: Plain text configurations files
Outputs: ASCII files
Details:


Project Name: Frequency rescaler
Goal: Rescaling seismic observables using asymptotic physics while preserving residuals
Language: C++ using cmake for compilation
>> More <<
Other Knowledge: Physics, Mathematics
Contributor: Othman Benomar
Users: Othman Benomar, Academic researchers and students in India (TIFR, Mumbai) and UAE (NYUAD, Abu Dhabi)
History: First version in 2020
Github: https://github.com/OthmanB/Replay_MCMC
Inputs: api/json or configuration file
Outputs: api/json or ASCII file
Details:
A function that can decompose a frequency into Dnu,epsilon,d0l,O2 terms and reconstruct a new star using user-provided new Dnu, epsilon,d0l. In this case O2 is kept (but rescaled with Dnu_new/Dnu)

Project Name: Alm compute
Goal: Spherical harmonics integration for stellar activity effects
Language: C++ (core functions, tests) / Python 3 (visualisation tools, tests)
>> More <<
Other Knowledge: Physics, Mathematics
Contributor: Othman Benomar
Users: Othman Benomar, Academic researchers and students in India (TIFR, Mumbai) and UAE (NYUAD, Abu Dhabi)
History: Started in 2019. First version in 2020. Still maintained as of today
Github: https://github.com/OthmanB/Alm
Inputs: command line arguments
Outputs: terminal ASCII outputs
Details:
Computes a 2-dimension integration of the stellar activity function Alm(theta, phi) using using Gaussian Legendre Quadrature for integration. And decompose it into a-coefficient (pseudo-Legendre decomposition)

The code comes with unit and property-based tests in the test directory. The code also comes with a suite of tests and visualisation tools in python in ../python_rendering.

Project Name: Data Mining of Kepler Space Data
Goal: This is an end-to-end set of tools to mine essential information from analyses made using the TAMCMC project
Language: Python 3
>> More <<
Other Knowledge: Physics, Mathematics, understanding the outputs of TAMCMC. Having in hands the custom database of all of the Kepler analyses made using the TAMCMC project
Contributor: Othman Benomar
Users: Othman Benomar
History: Started on 2023. Still in progress (first “beta” version operational)
Github: https://github.com/OthmanB/ajAlm_2024
Inputs: Kepler space data
Outputs: multilayered outputs: global and individual statistics, physical model significances in the form of summary ASCII text files, SQL database and jpg images.
Details:
This code is a set of tools used to call the programs of the TAMCMC project to perform a comprehensive analysis and data extraction of relevant information on rotation, shape and magnetism of stars observed by the Kepler instrument. The tools analyze a Terrabyte-size data set based on computation made on more than 60 days using the High Performance Computer at NYU Abu Dhabi. It requires that structured database of analyses in order to properly work.

Project Name: Data Feed Binance
Goal: Regularly enquires about price, volume, order books of a selected set of cryptocurrencies listed in Binance
Language: Python 3
>> More <<
Other Knowledge: Blockchain, Binance API
Contributor: Othman Benomar
Users: Othman Benomar
History: Started in 2018. Last update in 2020
Github: Not available
Inputs: Binance api outputs
Outputs: tar.gz files with timestamps
Details:
This is a program that collect some crucial information about price, volume and the status of the order book for a selected set of cryptocurrencies listed on Binance. The cadence of enquiry is currently adjusted to 10sec and for pairs BTC/USDT, ETH/BTC, ETH/USDT, ADA/BTC, ADA/USDT, BNB/BTC, BNB/USDT. But these can be changed upon configuration. These data are crucial for training using Machine Learning trading bots. Or to get regularly updated custom statistics on the crypto market, e.g., using Graphana.

Project Name: BNB buy bot
Goal: Buy BNB on Binance in quantities depending on the price statistics relative to “perceived” price
Language: Python 3
>> More <<
Other Knowledge: Blockchain, Binance API
Contributor: Othman Benomar
Users: Othman Benomar
History: Started in 2018. Last update in 2020
Github: https://github.com/Tomahna81/buyBNB4fees
Inputs: Binance api outputs
Outputs: api/json format following Binance API specifications
Details:
This is a automaton designed for handling the Binance API and that ensure that there is always a suficient balance of BNB to have the Binance fee discount. It can also be used to accumulate BNB at cheaper price than the average trend. The automaton buys BNB using two other currency chosen by the user and following some set of rules that should avoid to buy a too large quantity of BNB at too high price (compared to historical prices) and would buy preferentially at lower price.

Project Name: ETC mining pool ssh
Goal: Fork of the open-etc-pool program with enhanced security (SSL connection)
Language: Go
>> More <<
Other Knowledge: Blockchain PoW mining concepts
Contributor: Othman Benomar
Users:
History:
Github: https://github.com/Tomahna81/open-etc-pool
Inputs: ETC blockchain hash data from an ETC full node
Outputs: ETC blockchain data (stratum SSL json communication standard)
Details:
This is a fork of the original open-etc-pool program, but with the capability of handling SSL inputs/outputs for miner clients and to an ETC master pool. Multiple miner instances can be federated using the proxy of this pool by a secure SSL channel. The miner hashing data is then forwarded to the ETC node. Records are saved in a Redis server.

Project Name: Resto Analytics
Goal: Given some parameters such as the population density, staff configuration, and item prices, provides an analytical model of expected sales and benefits for a restaurant
Language: Python 3
>> More <<
Other Knowledge: Physics, Restaurant management
Contributor: Othman Benomar
Users:
History: Started in December 2022
Github: https://github.com/OthmanB/Restaurant
Inputs: json configuration files
Outputs: graphs
Details:
The goal of this program is to provide an analytical model describing how much a restaurant will get as benefits, based on a parametric description of the sales and of expenses. Details on the model are given at https://github.com/OthmanB/Restaurant/blob/main/docs/Restaurant_plan.pdf. This work is motivated by the fact that while researching about how modeling of incomes and expenses should be performed in the academic literature, I could not find such simple parametric model.
Note that contrary to many academic studies available, this model does not involve Machine Learning for sales prediction. The sale model is exclusively a parametric model for which data are required to support its underlying assumptions (in particular choice of the distributions).