I am a computer science student and I'm in an internship at a genomics and biotechnologies research institute. My current task is to calculate the IC50 and the EC50 given a set of data as a table.
The thing is, I am required to find a way to automate these calculations, currently working in excel. Which proves to be really difficult for me having no biology background. I have asked around and the people there kindly explained to me what the IC50 is and why it is needed, how the data is gathered, what tools they use to gather it and so on. My problem though, is that what I need is a way to calculating it. A mathematical way, something I could use to write a formula in excel, or preferably a software I could write.(Once I know how to calculate it) During my research I found this video on how to calculate the IC50 using an excel macro function, but I do not know if it actually works, having been provided a limited ammount of test data. (I am not sure on how reliable that algorithm is either)
Can someone please help me with an actual mathematical way to calculate the IC50/EC50? My reading seems to not be of very much help no matter how much I try to use the internet's free resources to gather theoretical information about the topic.
Ok the question seems to have been marked as off-topic homework because I didn't present my way of solving it. First of all, it's not homework, it's a work problem I've encountered and need help with. Second, here is my attempt at solving it using an excel Macro
Function HalfWay(Ys As Range) As Double Dim pMin As Double, pMax As Double pMin = WorksheetFunction.Min(Ys) pMax = WorksheetFunction.Max(Ys) HalfWay = pMax - (pMax - pMin) / 2 End Function Function ECIC(X As Range, Y As Range) As Variant Y50=HalfWay(Y) Dim iRow1 As Integer, iRow2 As Integer, Asc As Integer, X1 As String, Y1 As String If Y.Cells(1, 1) < Y.Cells(2, 1) Then Asc = 1 Else Asc = -1 iRow1 = WorksheetFunction.Match(Y50, Y, Asc) iRow2 = WorksheetFunction.Match(Y50, Y, Asc) + 1 X1 = X.Cells(iRow1, 1).Address & ":" & X.Cells(iRow2, 1).Address Y1 = Y.Cells(iRow1, 1).Address & ":" & Y.Cells(iRow2, 1).Address ECIC = WorksheetFunction.Trend(Range(X1), Range(Y1), Y50) End Function
This code basically draws a line in memory between the points that are before and after the IC50/EC50 point on the graph and calculates the EC/IC's corresponding concentration based on its actual effectiveness. I am not sure how reliable this method is though.