It has been a while since I have published the qtlc library. Early in 2016 was more than a year of testing and bug fixing work and then I decided to share the code with R community via official CRAN repository. (Also, at that moment I was searching the right journal to publish my paper for which the library was designed as a tool to save my nerves.) Well, since then, not much of improvements I did about it, except a few ideas and many encouraging e-mails exchanged with fellows interested in the topic.
As the only developer of the qtlc library, and with limited time I could spent in real coding, I had to list the priorities. Well, it wasn’t a hard job to do, almost every contact has at least one issue – make a GUI for us.
This weekend I have spent in coding. (Here in Belgrade is real wintertime outside with temperatures in deep freeze minus for more than a month, so here is good times for endless hacking.) This very early version of the GUI is entirely written in the R utilizing RGtk2 library. It’s a simple (source of about 300 lines), but usable tool to ease the common qtlc library functions to load TIFF image, mark spots, and possibly remove noise for further quantification. I’ll attach several images to show how it looks like in these very early stage. (Labels are in Serbian, my native language and also a convenient way to test Unicode support of the interface.) For a month, or so, there is a plan to publish it as an minor version improvement in the CRAN, or maybe as a standalone GTK extension of the library.
I would like to hear some feedback, maybe as a “cool, keep updating” 😉 Cheers!
We mentioned in previous article that library converts TLC scanned image into two-dimensional matrix, where each pixel represents a matrix element with color intensity value. The same applies to user located spots with selected spots areas. Basically, each pixel has three dimensions, width, height, and color intensity. The library contains function showtlc3D which charts in 3D entire TLC plate, or specific spot. That is convenient for spot area inspection, because 3D map shows the surface in more details, than 2D intensity map. Continue reading
Noise is almost always present, whatever staining reagent was used. Such attitude is based on long experience with TLC, and highly accepted among more advanced experts in the field, than myself. Though, many methods produces low noise and thus do not interfere significantly in the samples densitometric quantification process, the most widely used sulfuric acid charring method produces heavy noise with random distribution across the plate. Sulfuric acid charring reagent that I’m using is composed of 8 % sulfuric acid in 99 % ethanol, and staining is performed as TLC plate dipping into the solution for a few seconds, then dried slowly and then charred using heat gun. Figure 1 shows one fully developed TLC plate in that manner. Shamefully ugly one, but still usable for qtlc library evaluation.
Figure 1: A TLC plate stained using sulfuric acid/charring technique
The qtlc package has strong S3 object oriented model. Thus, every TLC plate is a separate object, and has it’s own properties. This is very convenient when several plates are analyzed at a same time, user can manipulate them in standardized manner. Package can process only TIFF images, preferably with LZW data compression.
The very first step is to install qtlc library. Because the package is now in the CRAN repositories, the installation procedure is as usual:
After a year, or so, of coding and more important testing with real samples, I finally decided to pack the code and post it to the CRAN. The CRAN policies scared me a bit, but after experimenting with roxygen2 package, I realized that nothing is hard when you have a right tool.
Several mails were exchanged with CRAN team, they were very constructive and fast reviewers, and finally qtlc library was polished in the right way, and accepted as new CRAN package yesterday. The direct link is: https://cran.r-project.org/web/packages/qtlc/index.html
I’m very proud about that, but also a very tired now… Those were long hours incorporated between New Years celebration. Here is snowy and cold, I have cleverly used these three days with a cup of hot tea and code editing, mailing with the CRAN team, and eventually building this blog.
Happy New Year! 🙂