I hope that I am asking the right question at right place. If not, please do not hesitate to point me to the right place. I am working in a laboratory, where computers/programming/programmers are all used only as support. But I believe that we need better information organization and management. Given the diverse information generated in the lab I believe that we need some sort of Laboratory Information Management System. Is there a good starting point to do this? I am myself not a trained programmer. I can code reasonably well in python
and R
, and if necessary I can learn MySql
, php
.
5 Answers
I've actually got a bit of a background in this area as I've been working on writing an in-house LIMS for a pharmacokinetic group with my current employeer, so that said, here's the short version of what I've learned over the past couple of years:
- First, you need to make sure you have a very well defined specification of what you need the application to as well as what, if any, regulatory issues you need to take into account. I was fortunate enough to work in a discovery group so we didn't need to worry about GLP; however, if you do find yourself having to follow said GLP standard, you are going to find a number of headaches if you are going to try and code the application yourself in house. In that case, you might want to investigate a commercial system (e.g. Watson LIMS, STARLIMS, Core LIMS, etc) which could save you some of the headache associated with GLP but at the expense of licensing fees. That said though, the exercise of going through and determining exactly what you need will be a big help if you got the COTS route or the in-house route.
- Next, I must touch upon the scope of said project. When I started the project I had several years of programming experience under my belt along with moving several projects to completion; however, it still took about 18 months to complete the project on a .NET stack (ASP.NET MVC, jQuery, jQuery UI, Oracle 11g). If you have several other programmers helping then the project might get done sooner. Likewise, a single developer with well defined specification might be able to accomplish the project on their own, although it will depend upon how much you want to get done. The more features you need, the longer it will take. I do know a scientist at work that has written is own LIMS using Visual Basic for Applications by leveraging Microsoft Access and Excel with a Microsoft SQL Server backend; however, it was a project that he developed over several years.
- mlschechter does point you at a couple of good resources for open source projects that could serve as a foundation for your own application; however, in these cases you need to decide if you are willing to adjust your processes to the applications or they already come close to what you need. As a rule of thumb, the more customizations you want in the software the longer it is going to take to develop. Likewise, if you go with a customized COTS application, the more you can expect to pay for customization.
- As mlschechter points out, interfacing is a major headache and even going against a single instrument could have its own problems if it doesn't have a well defined API. In some cases you might be able to interface using LabVIEW but older equipment might be an issue and you still need to get able to manipulate the data once it is in a database which is where a front-end comes into play. Reporting can also be surprisingly hard depending upon what type of work you are doing.
So to summarize a bit, this is not a simple project and the more you have to comply with various regulations, the more complications there will be. If you start with an existing open source project you could do some customizations which could be an interesting project, but you should be prepared for it to take long than you might initially anticipate it taking.
The best place to start with something like this is to create well-defined requirements. You need to know exactly what you want the system to do.
The following are useful questions for yourself and the programming team:
- Is the NIH team willing to allocate resources to this?
- Are there any HIPAA/privacy/traceability concerns that are critical?
- Are there any governmental regulations for sample handling that need to be observed?
- What are the skills (and competencies) of the programming resources available to you? For example, has anyone been involved in large projects before?
Hopefully, the answers above will all be positive.
If you have a compelling reason to build from scratch, try to focus down to a small scope, and tightly focus on a couple of core areas. If you have equipment from multiple vendors, the interfacing can cause some serious headaches. So can any attempts to comply with mandated audit trails. I would also recommend looking around on this site and other sites about the process of software development, to get a feel for some of the issues you might need to address.
If you're open to bringing in a system, there are a number of open-source solutions that you could consider as starting points; being open-source, you could hack as needed for customization, and possibly even contribute back to the project:
- Open-LIMS: PHP-based; appears to be a bit immature (still in preview stage), but a great opportunity to get involved at the ground level
- Bika LIMS: Plone-based (Python); appears mature, has specialized versions
- Labmatica: Java/MySQL; has multiple license options, but may no longer be active
Here's a list of other potential sources.
Given that you are not a trained programmer (or developer by trade), my advice is to try to buy something off the shelf or to at least contract it out to a pro.
I am currently maintaining a semi-in-house built LIMS application, that was originally built by a non programmer / non developer; and there are a lot of issues in it because of that. The person who built is is really smart, but because it was not their area of expertise/trade they made some early choices that made future maintenance a lot harder.
That said, there are issue that will come up with lab-accreditation (does it do enough tracking, or the right kind of tracking, for the lab to be accredited properly). Also, every Lab person (tech/chemist) will want the application customised to exactly how they do their work (regardless of whether it is the best way to do it), and nothing on the market will suit their individual needs.
-
Thank you for the response. Unfortunately for me and the lab and my current situation buying something of the shelf and/or contracting it out to a pro is out of the question. What I am looking at is very rudimentary. Like maintaning list of available clones, constructs, oligos etc, that is searchable.– SamMar 2, 2011 at 12:16
-
Sounds like an interesting project idea. There are a couple ways to go about it.
If you want to stick with Python, there's the LAMP stack, which is pretty widely supported and there are a lot of tutorials out on the web. (You can also use PHP which is very easy to learn, although it can be frustrating to use.)
Personally, I've never used Python or developed for Linux, but it's still pretty easy to put together a database frontend website with MySQL (or MS SQL Server) and PHP on a Windows server as well (I'm working on one myself right now). There are lots of tutorials out there to help you get started (I just found this one and it looks pretty solid) in addition to support on PHP.net and w3schools.
Depending on where you work (meaning you may need a license) there maybe a couple of other options. PIMS and SPINE. Or you could check plasmidb.sourceforge.net/intro.phtml
These are all more molecular biology driven and either open-source or from academia, so cost should not be a problem. If they are not exactly what you are looking for at least they might give you a starting point.
-
thank you for the information. This is useful. I will check this and post updates.– SamMar 7, 2011 at 16:41