def makeDendrogram(numfactors=1, corandata="coran/corandata", dataext=".spi"): rundir = "cluster" apParam.createDirectory(rundir) ### make list of factors factorstr = "" for fact in range(1,numfactors+1): factorstr += str(fact)+"," factorstr = factorstr[:-1] ### do hierarchical clustering mySpider = spyder.SpiderSession(dataext=dataext, logo=False, log=True) mySpider.toSpider( "CL HC", corandata+"_IMC", # path to coran data factorstr, # factor string ) ## weight for each factor for fact in range(numfactors): mySpider.toSpiderQuiet("1.0") mySpider.toSpider( "5", #use Ward's method "T", "5.1", rundir+"/dendrogram.ps", #dendrogram image file "Y", rundir+"/dendrogramdoc", #dendrogram doc file ) mySpider.close() apImage.convertPostscriptToPng("cluster/dendrogram.ps", "dendrogram.png")
def makeDendrogram(numfactors=1, corandata="coran/corandata", dataext=".spi"): rundir = "cluster" apParam.createDirectory(rundir) ### make list of factors factorstr = "" for fact in range(1, numfactors + 1): factorstr += str(fact) + "," factorstr = factorstr[:-1] ### do hierarchical clustering mySpider = spyder.SpiderSession(dataext=dataext, logo=False, log=True) mySpider.toSpider( "CL HC", corandata + "_IMC", # path to coran data factorstr, # factor string ) ## weight for each factor for fact in range(numfactors): mySpider.toSpiderQuiet("1.0") mySpider.toSpider( "5", #use Ward's method "T", "5.1", rundir + "/dendrogram.ps", #dendrogram image file "Y", rundir + "/dendrogramdoc", #dendrogram doc file ) mySpider.close() apImage.convertPostscriptToPng("cluster/dendrogram.ps", "dendrogram.png")
def createFactorMap(f1, f2, rundir, dataext): ### 3. factor plot apParam.createDirectory(rundir + "/factors", warning=False) mySpider = spyder.SpiderSession(dataext=dataext, logo=False, log=False) factorfile = rundir + "/factors/factorps" + ("%02d-%02d" % (f1, f2)) mySpider.toSpiderQuiet( "CA SM", "I", rundir + "/corandata", #coran prefix "0", str(f1) + "," + str(f2), #factors to plot "S", "+", "Y", "5", "0", factorfile, "\n\n\n\n", "\n\n\n\n", "\n", #9 extra steps, use defaults ) time.sleep(2) mySpider.close() # hack to get postscript converted to png, require ImageMagick apImage.convertPostscriptToPng(factorfile + ".ps", factorfile + ".png", size=200) apFile.removeFile(factorfile + ".ps") ### 4. factor plot visualization """ ### this is broken in SPIDER 13.0 mySpider = spyder.SpiderSession(dataext=dataext, logo=False) mySpider.toSpider( "SD C", #create coordinate file rundir+"/corandata", #coran prefix str(f1)+","+str(f2), #factors to plot rundir+"/sdcdoc"+("%02d%02d" % (f1,f2)), ) visimg = rundir+"/visimg"+("%02d%02d" % (f1,f2)) mySpider.toSpider( "CA VIS", #visualization "(1024,1024)", rundir+"/sdcdoc"+("%02d%02d" % (f1,f2)), #input doc from 'sd c' rundir+"/visdoc"+("%02d%02d" % (f1,f2)), #output doc "alignedstack@00001", # image in series ??? "(12,12)", #num of rows, cols "5.0", #stdev range "(5.0,5.0)", #upper, lower thresh visimg, #output image "1,"+str(numpart), "1,2", ) mySpider.close() emancmd = ("proc2d "+visimg+dataext+" "+visimg+".png ") apEMAN.executeEmanCmd(emancmd, verbose=False, showcmd=False) """ return
def hierarchClusterProcess(numpart=None, factorlist=range(1, 5), corandata="coran/corandata", rundir=".", dataext=".spi"): """ inputs: coran data number of particles factor list output directory output: dendrogram doc file factorkey """ #apFile.removeFile(rundir+"/dendrogramdoc"+dataext) factorstr, factorkey = operations.intListToString(factorlist) dendrogramfile = rundir + "/dendrogramdoc" + factorkey + dataext if os.path.isfile(dendrogramfile): apDisplay.printMsg( "Dendrogram file already exists, skipping processing " + dendrogramfile) return dendrogramfile apDisplay.printMsg("Creating dendrogram file: " + dendrogramfile) ### do hierarchical clustering mySpider = spyder.SpiderSession(dataext=dataext, logo=False, log=True) mySpider.toSpider( "CL HC", spyder.fileFilter(corandata) + "_IMC", # path to coran data factorstr, # factor string ) ## weight for each factor for fact in factorlist: mySpider.toSpiderQuiet("1.0") minclasssize = "%.4f" % (numpart * 0.0001 + 2.0) mySpider.toSpider( "5", #use Ward's method "T", minclasssize, rundir + "/dendrogram.ps", #dendrogram image file "Y", spyder.fileFilter(dendrogramfile), #dendrogram doc file ) mySpider.close() if not os.path.isfile(dendrogramfile): apDisplay.printError( "SPIDER dendrogram creation (CL HC) failed, too many particles??") apImage.convertPostscriptToPng("cluster/dendrogram.ps", "dendrogram.png") return dendrogramfile
def createFactorMap(f1, f2, rundir, dataext): ### 3. factor plot apParam.createDirectory(rundir+"/factors", warning=False) mySpider = spyder.SpiderSession(dataext=dataext, logo=False, log=False) factorfile = rundir+"/factors/factorps"+("%02d-%02d" % (f1,f2)) mySpider.toSpiderQuiet( "CA SM", "I", rundir+"/corandata", #coran prefix "0", str(f1)+","+str(f2), #factors to plot "S", "+", "Y", "5", "0", factorfile, "\n\n\n\n","\n\n\n\n","\n", #9 extra steps, use defaults ) time.sleep(2) mySpider.close() # hack to get postscript converted to png, require ImageMagick apImage.convertPostscriptToPng(factorfile+".ps", factorfile+".png", size=200) apFile.removeFile(factorfile+".ps") ### 4. factor plot visualization """ ### this is broken in SPIDER 13.0 mySpider = spyder.SpiderSession(dataext=dataext, logo=False) mySpider.toSpider( "SD C", #create coordinate file rundir+"/corandata", #coran prefix str(f1)+","+str(f2), #factors to plot rundir+"/sdcdoc"+("%02d%02d" % (f1,f2)), ) visimg = rundir+"/visimg"+("%02d%02d" % (f1,f2)) mySpider.toSpider( "CA VIS", #visualization "(1024,1024)", rundir+"/sdcdoc"+("%02d%02d" % (f1,f2)), #input doc from 'sd c' rundir+"/visdoc"+("%02d%02d" % (f1,f2)), #output doc "alignedstack@00001", # image in series ??? "(12,12)", #num of rows, cols "5.0", #stdev range "(5.0,5.0)", #upper, lower thresh visimg, #output image "1,"+str(numpart), "1,2", ) mySpider.close() emancmd = ("proc2d "+visimg+dataext+" "+visimg+".png ") apEMAN.executeEmanCmd(emancmd, verbose=False, showcmd=False) """ return
def hierarchClusterProcess(numpart=None, factorlist=range(1,5), corandata="coran/corandata", rundir=".", dataext=".spi"): """ inputs: coran data number of particles factor list output directory output: dendrogram doc file factorkey """ #apFile.removeFile(rundir+"/dendrogramdoc"+dataext) factorstr, factorkey = operations.intListToString(factorlist) dendrogramfile = rundir+"/dendrogramdoc"+factorkey+dataext if os.path.isfile(dendrogramfile): apDisplay.printMsg("Dendrogram file already exists, skipping processing "+dendrogramfile) return dendrogramfile apDisplay.printMsg("Creating dendrogram file: "+dendrogramfile) ### do hierarchical clustering mySpider = spyder.SpiderSession(dataext=dataext, logo=False, log=True) mySpider.toSpider( "CL HC", spyder.fileFilter(corandata)+"_IMC", # path to coran data factorstr, # factor string ) ## weight for each factor for fact in factorlist: mySpider.toSpiderQuiet("1.0") minclasssize = "%.4f" % (numpart*0.0001+2.0) mySpider.toSpider( "5", #use Ward's method "T", minclasssize, rundir+"/dendrogram.ps", #dendrogram image file "Y", spyder.fileFilter(dendrogramfile), #dendrogram doc file ) mySpider.close() if not os.path.isfile(dendrogramfile): apDisplay.printError("SPIDER dendrogram creation (CL HC) failed, too many particles??") apImage.convertPostscriptToPng("cluster/dendrogram.ps", "dendrogram.png") return dendrogramfile