2424## REQUIRED PARAMETERS
2525argParser .add_argument ("XML_OUT" , help = "XML output file." )
2626argParser .add_argument (
27- "LIST_FILE" , help = "Tab-delimited file containing two columns i.e. file_name\t colour. Header isnt required."
27+ "LIST_FILE" ,
28+ help = "Tab-delimited file containing two columns i.e. file_name\t colour. Header isnt required." ,
2829)
2930argParser .add_argument (
30- "GENOME" , help = "Full path to genome fasta file or shorthand for genome available in IGV e.g. hg19."
31+ "REPLACE_FILE" ,
32+ help = "Tab-delimited file containing two columns i.e. file_name\t replacement_file_name. Header isnt required." ,
33+ )
34+ argParser .add_argument (
35+ "GENOME" ,
36+ help = "Full path to genome fasta file or shorthand for genome available in IGV e.g. hg19." ,
3137)
3238
3339## OPTIONAL PARAMETERS
@@ -65,10 +71,20 @@ def makedir(path):
6571############################################
6672
6773
68- def igv_files_to_session (XMLOut , ListFile , Genome , PathPrefix = "" ):
74+ def igv_files_to_session (XMLOut , ListFile , ReplaceFile , Genome , PathPrefix = "" ):
6975
7076 makedir (os .path .dirname (XMLOut ))
7177
78+ replaceFileDict = {}
79+ fin = open (ReplaceFile , "r" )
80+ while True :
81+ line = fin .readline ()
82+ if line :
83+ ofile , rfile = line .strip ().split ("\t " )
84+ replaceFileDict [ofile ] = rfile
85+ else :
86+ break
87+ fin .close ()
7288 fileList = []
7389 fin = open (ListFile , "r" )
7490 while True :
@@ -77,10 +93,17 @@ def igv_files_to_session(XMLOut, ListFile, Genome, PathPrefix=""):
7793 ifile , colour = line .strip ().split ("\t " )
7894 if len (colour .strip ()) == 0 :
7995 colour = "0,0,178"
96+ for ofile , rfile in replaceFileDict .items ():
97+ if ofile in ifile :
98+ ifile = ifile .replace (ofile , rfile )
8099 fileList .append ((PathPrefix .strip () + ifile , colour ))
81100 else :
82101 break
83- fout .close ()
102+ fin .close ()
103+ fout = open ("igv_files.txt" , "w" )
104+ for ifile , colour in fileList :
105+ fout .write (ifile + "\n " )
106+ fout .close ()
84107
85108 ## ADD RESOURCES SECTION
86109 XMLStr = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n '
@@ -138,7 +161,6 @@ def igv_files_to_session(XMLOut, ListFile, Genome, PathPrefix=""):
138161 'id="%s" name="%s" renderer="BASIC_FEATURE" sortable="false" visible="true" windowFunction="count"/>\n '
139162 % (ifile , os .path .basename (ifile ))
140163 )
141-
142164 XMLStr += "\t </Panel>\n "
143165 # XMLStr += '\t<HiddenAttributes>\n\t\t<Attribute name="DATA FILE"/>\n\t\t<Attribute name="DATA TYPE"/>\n\t\t<Attribute name="NAME"/>\n\t</HiddenAttributes>\n'
144166 XMLStr += "</Session>"
@@ -153,7 +175,13 @@ def igv_files_to_session(XMLOut, ListFile, Genome, PathPrefix=""):
153175############################################
154176############################################
155177
156- igv_files_to_session (XMLOut = args .XML_OUT , ListFile = args .LIST_FILE , Genome = args .GENOME , PathPrefix = args .PATH_PREFIX )
178+ igv_files_to_session (
179+ XMLOut = args .XML_OUT ,
180+ ListFile = args .LIST_FILE ,
181+ ReplaceFile = args .REPLACE_FILE ,
182+ Genome = args .GENOME ,
183+ PathPrefix = args .PATH_PREFIX ,
184+ )
157185
158186############################################
159187############################################
0 commit comments