A Python module of Meta-Analysis, usually applied in systemtic reviews of Evidence-based Medicine.
Project description
##PythonMeta 1.0
##Info
Name = PythonMeta
Version = 1.0
Author = Deng Hongyong (dhy)
Email = dephew@126.com
URL = www.pymeta.com
Date = 2019.3.21 (First developed in 2017)
##About
This is a Meta-Analysis package.
This module was designed to perform some Evidence-based medicine (EBM) tasks, such as:
- Combining effect measures (OR, RR, RD for count data and MD, SMD for continuous data);
- Heterogeneity test(Q/Chi-square test);
- Subgroup analysis;
- Plots drawing: forest plot, funnel plot, etc.
Statistical algorithms in this software cited from: Jonathan J Deeks and Julian PT Higgins, on behalf of the Statistical Methods Group of The Cochrane Collaboration. Statistical algorithms in Review Manager 5, August 2010.
Please cite me in any publictions like: Deng Hongyong. PyMeta, Python module of Meta-analysis, cited 20xx-xx-xx (or your time); 1 screen(s). Available from URL: http://www.pymeta.com
This is an ongoing project, so, any questions and suggestions from you are very welcome.
##Installing
Install and update using pip
:
pip install PythonMeta
##Example
Sample code: sample.py
import PythonMeta as MA
def showstudies(studies):
text = "%-10s %-20s %-20s \n"%("Study ID","Experiment Group","Control Group")
text += "%-10s %-10s %-10s %-10s %-10s \n"%(" ","e1","n1","e2","n2")
for i in range(len(studies)):
text += "%-10s %-10s %-10s %-10s %-10s \n"%(studies[i][4],str(studies[i][0]),str(studies[i][1]),str(studies[i][2]),str(studies[i][3]))
return text
def showresults(rults):
text = "%-10s %-6s %-18s %-10s"%("Study ID","n","ES(95% CI)","weight(%)\n")
for i in range(1,len(rults)):
text += "%-10s %-6d %-4.2f[%.2f %.2f] %6.2f\n"%(
rults[i][0],
rults[i][5],
rults[i][1],
rults[i][3],
rults[i][4],
100*(rults[i][2]/rults[0][2])
)
text += "%-10s %-6d %-4.2f[%.2f %.2f] %6d\n"%(
rults[0][0],
rults[0][5],
rults[0][1],
rults[0][3],
rults[0][4],
100
)
text += "%d studies included (N=%d)\n"%(len(rults)-1,rults[0][5])
text += "Heterogeneity: Tau\u00b2=%.3f "%(rults[0][12]) if not rults[0][12]==None else "Heterogeneity: "
text += "Q(Chisquare)=%.2f(p=%s); I\u00b2=%s\n"%(
rults[0][7],
rults[0][8],
str(round(rults[0][9],2))+"%")
text += "Overall effect test: z=%.2f, p=%s\n"%(rults[0][10],rults[0][11])
return text
def main():
d = MA.Data()
f = MA.Fig()
m = MA.Meta()
d.datatype = 'CATE'
studies = d.getdata(d.readfile('studies.txt'))
print(showstudies(studies))
m.datatype=d.datatype
m.models = 'Fixed'
m.algorithm = 'MH'
m.effect = 'RR'
results = m.meta(studies)
print(m.models + " " + m.algorithm + " " + m.effect)
print (showresults(results))
f.forest(results).show()
if __name__ == '__main__':
main()
Datafile: studies.txt
A sample data file (e.g., studies.txt):
#studies.txt
Fang 2015, 15, 40, 24, 37
Gong 2012, 10, 40, 18, 35
Liu 2015, 30, 50, 40, 50
Long 2012, 19, 40, 26, 40
Pan 2015a, 57, 100, 68, 100
Wang 2001, 13, 18, 17, 18
Wang 2003, 7, 86, 15, 86
#This is a sample of binary data.
#Input one study in a line;
#Syntax: study name, e1, n1, e2, n2
#e1,n1: events and number of experiment group;
#e2,n2: events and number of control group.
#Contact
Deng Hongyong Ph.D
Shanghai University of Traditional Chinese Medicine
Shanghai, China 201203
Email: dephew@126.com
Web: www.PyMeta.com
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file PythonMeta-1.0.tar.gz
.
File metadata
- Download URL: PythonMeta-1.0.tar.gz
- Upload date:
- Size: 89.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c9567b1a9f514cec6253bd07407a1dbe3858a4df232d96d0b56f95f88fb49f1 |
|
MD5 | 32e644b3ceba69def2eb97fd87223ca2 |
|
BLAKE2b-256 | 3a1a935af51469faa895457661a0866b82865fe2b98a89c30e8406c348c26ef5 |