SCORE Project: Slayer
Title: A Thin Layer Chromatogrpahy Analyzer for Smart Phones
Sponsor: Nazareno Aguirre
Thin Layer Chromatography is a process that can be used to analyze the chemical composition of oils, among other applications. It essentially consists of applying a sample of the substance being analyzed on a plate that is then put in contact with a solvent; through capillary action, the solvent ascends on the plate, decomposing the substance in a number of spots. A thin layer chromatography analyzer processes these spots, according to their size and intensity, to estimate the mass of each of the compounds in the substance.
The goal of this project is to develop an application for thin layer chromatography analysis, for smart phones. The application should allow the user to take a picture (with the phone's camera) of the plate, perform basic cutting and rotating facilities to adjust the picture, and then process the image to quantitatively analyze the compounds of the sampled substance, present the results to the user as area graphs, besides other simpler functions, such as saving images and analysis results for future reference.
The goal of this project is to develop an application for home brewers thats allows them to maintain a list of recipes, and adapt existing ones. The application must also maintain a list of available ingredients, update this list after a batch and when new ingredients are bought, and produce shopping lists for the next batch. A special characteristic of the application is the "what should I brew today?" feature: it goes through the recipes, and taking into account the available ingredients and brewing capacity of the equipment selects a recipe that can be brewed with the available ingredients, maximizing the use of the ingredients, and the batch size.
The Thin Layer Chromatography process can be used to analyze the chemical composition of substances, in particuar of oils. Despite its relative imprecision, compared with very expensive and very accurate equipment, thin layer chromatography is a useful process, employed by many chemists due to its reduced cost, and adequate precision in many practical applications. The process consists of disolving a sample of the substance being analyzed through a solvent, that by capillary action "drags" the different compounds on a plate, forming spots that correspond to the compounds, and whose size and intensity indicate the amount that each compound contributes to the original substance. An example of the result of the substance being decomposed by a solvent on a plate can be found in:https://openi.nlm.nih.gov/imgs/512/84/3742216/PMC3742216_ijms-14-13763f2.png?keywords=methanol
Thin layer chromatography processes these kinds of images, and according to the area occupied by each of the spots, calculates how much each compound contributes to the substance. This demands some image processing (alignment, separation of different experiments on the same plate, correction of background color, etc.), and some standard area calculation mechanisms.
The purpose of this project is to develop a thin layer chromatography application, that runs entirely on a smart phone, and allows users to perform the whole analysis process, from taking a picture (with the phone's camera) of the plate, processing the obtained image, performing the quantitative analyses, and saving the results as well as allowing the user to add notes and comments to the experiment, for future reference.
The project must implement the features described above, i.e., image capture, image editing and preprocessing, parameters settings for the quantitative analysis, the quantitative analysis itself and presentation of the results. All these features must necessarily run entirely on the smart phone. Moreover, the application should allow users to save analyses, with custom notes and comments, for future reference, although these latter features are optional in this project.
The choice of the development platform, including tools and programming languages to use, is left to the teams. The only mandatory requirement in this respect is that the whole processs must run on the smart phone. Besides the development of the software, teams must provide accompanying documentation, including a requirements document, a design document, and a brief user manual (installation and usage of the application).
Teams can use any development process, although agile methodologies are suggested. All project artifacts must be hosted on a public repository with issue tracking facilities (e.g., GitHub). No particular methodology enforcing sufficient testing is suggested, but the project's functionalities must be thoroughly tested (at least, (near to) full statement coverage), and tests must be systematized using suitable unit testing libraries.
In order to track the project's activity and progress, the following rules should be followed:
- For each major set of development tasks, a milestone characterising them must be defined.
- For each development task, an issue describing it must be defined, within the corresponding milestone.
- Task granularity is up to the teams. For larger teams a small granularity is better (work units may be method implementations, method documentation/contract provision, unit tests for methods, etc.).
- Prior to creating a new issue, users must check if the same issue has been previously created (important for large teams) to avoid work redundancy.
- The use of branches for working on partial solutions or larger issues is recommended.
- All users must make sure their partial solutions do not break the system (tests that passed before must still pass, project must compile, etc.).
Level of Sponsor Involvement
The sponsor of this project will accept questions about the project topic at any time. As questions arise during development, these will be gathered and made available in the FAQ section, to help developers.
Sponsor contact: naguirre (at) dc (dot) exa (dot) unrc (dot) edu (dot) ar
Answers to selected questions will appear here.