Skip to content

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() 



Clone this wiki locally