131 lines
6.1 KiB
Python
131 lines
6.1 KiB
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
import sys, os
|
||
|
use_message = '''
|
||
|
'''
|
||
|
|
||
|
def get_aligners():
|
||
|
mac = (sys.platform == "darwin")
|
||
|
if not os.path.exists("aligners"):
|
||
|
os.mkdir("aligners")
|
||
|
os.chdir("aligners")
|
||
|
if not os.path.exists("bin"):
|
||
|
os.mkdir("bin")
|
||
|
programs = ["HISAT", "Bowtie2", "Bowtie", "TopHat2", "STAR", "GSNAP", "BWA", "StringTie", "Cufflinks", "minimap2"]
|
||
|
for program in programs:
|
||
|
if program == "HISAT":
|
||
|
dir = "hisat-0.1.6-beta"
|
||
|
if os.path.exists(dir):
|
||
|
continue
|
||
|
fname = dir + "-source.zip"
|
||
|
url = "http://www.ccb.jhu.edu/software/hisat/downloads"
|
||
|
bins = "hisat-align-s hisat-build-s hisat-inspect-s"
|
||
|
installs = bins + " hisat hisat-build hisat-inspect"
|
||
|
cmd = "wget %s/%s; unzip %s; cd %s; make %s; cp %s ../bin; cd .." % \
|
||
|
(url, fname, fname, dir, bins, installs)
|
||
|
elif program == "Bowtie2":
|
||
|
dir = "bowtie2-2.3.4.3"
|
||
|
if os.path.exists(dir):
|
||
|
continue
|
||
|
fname = dir + "-source.zip"
|
||
|
url = "http://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.3.4.3"
|
||
|
bins = "bowtie2-align-s bowtie2-build-s bowtie2-inspect-s"
|
||
|
installs = bins + " bowtie2 bowtie2-build bowtie2-inspect"
|
||
|
cmd = "wget %s/%s; unzip %s; cd %s; make NO_TBB=1 %s; cp %s ../bin; cd .." % \
|
||
|
(url, fname, fname, dir, bins, installs)
|
||
|
elif program == "Bowtie":
|
||
|
dir = "bowtie-1.1.2"
|
||
|
if os.path.exists(dir):
|
||
|
continue
|
||
|
fname = dir + "-src.zip"
|
||
|
url = "http://sourceforge.net/projects/bowtie-bio/files/bowtie/1.1.2"
|
||
|
bins = "bowtie-align-s bowtie-build-s bowtie-inspect-s"
|
||
|
installs = bins + " bowtie bowtie-build bowtie-inspect"
|
||
|
cmd = "wget %s/%s; unzip %s; cd %s; make %s; cp %s ../bin; cd .." % \
|
||
|
(url, fname, fname, dir, bins, installs)
|
||
|
elif program == "minimap2":
|
||
|
dir = "minimap2-2.12"
|
||
|
if os.path.exists(dir):
|
||
|
continue
|
||
|
fname = dir + ".tar.bz2"
|
||
|
#https://github.com/lh3/minimap2/releases/download/v2.12/minimap2-2.12.tar.bz2
|
||
|
url = "https://github.com/lh3/minimap2/releases/download/v2.12"
|
||
|
bins = "minimap2"
|
||
|
cmd = "wget %s/%s; tar jxvf %s; cd %s; make ; cp %s ../bin; cd .." % \
|
||
|
(url, fname, fname, dir,bins)
|
||
|
elif program == "TopHat2":
|
||
|
if mac:
|
||
|
dir = "tophat-2.1.0.OSX_x86_64"
|
||
|
else:
|
||
|
dir = "tophat-2.1.0.Linux_x86_64"
|
||
|
if os.path.exists(dir):
|
||
|
continue
|
||
|
fname = dir + ".tar.gz"
|
||
|
url = "http://ccb.jhu.edu/software/tophat/downloads"
|
||
|
installs = "gtf_juncs juncs_db prep_reads segment_juncs tophat tophat_reports sra_to_solid samtools_0.1.18 map2gtf fix_map_ordering bam_merge long_spanning_reads sam_juncs gtf_to_fasta bam2fastx"
|
||
|
cmd = "wget %s/%s; tar xvzf %s; cd %s; cp %s ../bin; cd .." % \
|
||
|
(url, fname, fname, dir, installs)
|
||
|
elif program == "STAR":
|
||
|
dir = "2.5.2b"
|
||
|
if os.path.exists("STAR-" + dir):
|
||
|
continue
|
||
|
fname = dir + ".tar.gz"
|
||
|
url = "https://github.com/alexdobin/STAR/archive"
|
||
|
if mac:
|
||
|
add_cmd = "awk '{if($1 ~ /^CXX/) {print \"CXX =/opt/local/bin/g++-mp-4.8\";} else {print;}}' Makefile > Makefile.tmp; mv Makefile.tmp Makefile"
|
||
|
make_arg = "STARforMac"
|
||
|
cmd = "wget %s/%s; tar xvzf %s; cd STAR-%s/source; %s; make; make %s; cp STAR ../../bin; cd ../.." % \
|
||
|
(url, fname, fname, dir, add_cmd, make_arg)
|
||
|
else:
|
||
|
cmd = "wget %s/%s; tar xvzf %s; cd STAR-%s/source; make; cp STAR ../../bin; cd ../.." % \
|
||
|
(url, fname, fname, dir)
|
||
|
elif program == "GSNAP":
|
||
|
dir = "gmap-2015-07-23"
|
||
|
dir2 = "gmap-gsnap-2015-07-23"
|
||
|
if os.path.exists(dir):
|
||
|
continue
|
||
|
fname = dir2 + ".tar.gz"
|
||
|
url = "http://research-pub.gene.com/gmap/src"
|
||
|
installs = "gmap gmapl get-genome gmapindex iit_store iit_get iit_dump gsnap gsnapl uniqscan uniqscanl snpindex cmetindex atoiindex sam_sort ../util/*"
|
||
|
cmd = "wget %s/%s; tar xvzf %s; cd %s; ./configure; make; cd src; cp %s ../../bin; cd ../.." % \
|
||
|
(url, fname, fname, dir, installs)
|
||
|
elif program == "BWA":
|
||
|
dir = "bwa-0.7.17"
|
||
|
if os.path.exists(dir):
|
||
|
continue
|
||
|
url = "http://sourceforge.net/projects/bio-bwa/files/%s.tar.bz2" % (dir)
|
||
|
installs = "bwa"
|
||
|
cmd = "wget %s; tar xvjf %s.tar.bz2; cd %s; make; cp %s ../bin/; cd .." % (url, dir, dir, installs)
|
||
|
elif program == "StringTie":
|
||
|
dir = "stringtie-1.0.4"
|
||
|
url = "http://ccb.jhu.edu/software/stringtie/dl"
|
||
|
bins = "stringtie"
|
||
|
cmd = "wget %s/%s.tar.gz; tar xvzf %s.tar.gz; cd %s; make release; cp %s ../bin; cd .." % \
|
||
|
(url, dir, dir, dir, bins)
|
||
|
elif program == "Cufflinks":
|
||
|
cmd = ""
|
||
|
elif program == "vg":
|
||
|
version = "v1.13.0"
|
||
|
dir = program + "-" + version
|
||
|
url = "https://github.com/vgteam/vg/releases/download/%s" % (version)
|
||
|
cmd = "wget %s/%s.tar.gz; tar zxvf %s.tar.gz; cd %s" % (url, dir, dir, dir)
|
||
|
cmd += "; source ./source_me.sh; make; cp bin/%s ../bin; cd .." % (program)
|
||
|
else:
|
||
|
assert False
|
||
|
print >> sys.stderr, cmd
|
||
|
os.system(cmd)
|
||
|
|
||
|
files = ["hisat2", "hisat2-align-s", "hisat2-build", "hisat2-build-s", "hisat2-inspect", "hisat2-inspect-s", "extract_splice_sites.py", "hisat2_extract_snps_haplotypes_UCSC.py", "hisat2_simulate_reads.py"]
|
||
|
os.chdir("bin")
|
||
|
for file in files:
|
||
|
if os.path.exists(file):
|
||
|
continue
|
||
|
os.system("ln -s ../../../%s %s" % (file, file))
|
||
|
os.chdir("..")
|
||
|
|
||
|
os.chdir("..")
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
get_aligners()
|