-
Notifications
You must be signed in to change notification settings - Fork 1
BoxerToMark
Adrian Quintana edited this page Dec 11, 2017
·
1 revision
#!/usr/bin/python
import sys, string # to use argv, to use string.split
if(len(sys.argv) != 6):
print " "
print "Error, wrong command line\n"
print "Usage:\n"
print sys.argv[0] + " 'Box size' " + " 'invertY (0,1)' 'EMAN pos file (input)' " + " 'XMIPP raw.inf file' 'XMIPP pos file (output)'"
else:
invertY=sys.argv[2]=='1' #Invert Y
fileinput=sys.argv[3] #EMAN pos file name
fileoutput1=sys.argv[5] #XMIPP pos file name
fileInf=sys.argv[4] #XMIPP inf file name
box=int(sys.argv[1])
mitadbox=box/2
#DOWNSAMPLE
downsamplingFactor=1; # Use this parameter if images have been picked in EMAN
# with downsampling = 1, but you want to process them in Xmipp
# with downsampling = 2
fhInf=open(fileInf,'r')
linea=fhInf.readline() #Read first line
while(linea != ''):
tokens=linea.split('=')
if (tokens[0]=='Ydim'):
Ydim=int(tokens[1])
linea=fhInf.readline()
fhInf.close()
input=open(fileinput,'r')
output1=open(fileoutput1,'w')
linea=input.readline() #Read first line
output1.write("# <X position> <Y position> ")
output1.write("\n")
while(linea != ''):
#while linea not null
lista=string.split(linea) #parse linea
if len(lista) == 5: # for EMAN 1, len(lista)==5; for EMAN 2, len(lista)==6
posX=int(lista[0])
posY=int(lista[1])
newY=posY+mitadbox
newX=posX+mitadbox
if invertY:
newY=Ydim-newY/downsamplingFactor
else:
newY=newY/downsamplingFactor
newX=newX/downsamplingFactor
output1.write(str(newX))
output1.write(" ")
output1.write(str(newY))
output1.write("\n")
linea=input.readline()
input.close()
output1.close()