Mercurial > repos > vandelj > giant_factor_generator
annotate src/General_functions.py @ 2:1f4a30d19264 draft default tip
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit 89b7d0e8812f53222691cffe29bd48be6519829d"
| author | vandelj | 
|---|---|
| date | Fri, 25 Sep 2020 08:53:02 +0000 | 
| parents | 7a520f7169e1 | 
| children | 
| rev | line source | 
|---|---|
| 0 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 1 import re | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 2 import numpy as np | 
| 1 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 3 import galaxy.model | 
| 0 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 4 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 5 def get_column_names( file_path, toNotConsider=-1, each=1): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 6 options=[] | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 7 inputfile = open(file_path) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 8 firstLine = next(inputfile).strip().split("\t") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 9 cpt=0 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 10 for i, field_component in enumerate( firstLine ): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 11 if i!=toNotConsider:#to squeeze the first column | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 12 if cpt==0: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 13 options.append( ( field_component, field_component, False ) ) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 14 cpt+=1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 15 if cpt==each: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 16 cpt=0 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 17 inputfile.close() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 18 return options | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 19 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 20 def get_column_names_filteredList( file_path, toNotConsider=[], each=1): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 21 options=[] | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 22 inputfile = open(file_path) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 23 firstLine = next(inputfile).strip().split("\t") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 24 cpt=0 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 25 for i, field_component in enumerate( firstLine ): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 26 if i not in toNotConsider:#to squeeze the first columns | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 27 if cpt==0: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 28 options.append( ( field_component, field_component, False ) ) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 29 cpt+=1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 30 if cpt==each: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 31 cpt=0 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 32 inputfile.close() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 33 return options | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 34 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 35 def get_column_names_mergeNumber(file_path, numberToMerge=1, toNotConsider=[]): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 36 options=[] | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 37 inputfile = open(file_path) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 38 if int(numberToMerge)>0: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 39 iHeader=0 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 40 for iCurrentLine in inputfile: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 41 iHeader=iHeader+1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 42 if iHeader>int(numberToMerge): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 43 break | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 44 currentLine=iCurrentLine.strip().split("\t") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 45 iOption=-1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 46 for i, field_component in enumerate( currentLine ): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 47 if i not in toNotConsider:#to squeeze specified columns | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 48 iOption=iOption+1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 49 if iHeader==1: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 50 options.append( ( str(field_component), str(field_component), False ) ) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 51 else: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 52 options[iOption]=(options[iOption][0]+"_"+str(field_component),options[iOption][1]+"_"+str(field_component),False) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 53 else: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 54 currentLine = next(inputfile).strip().split("\t") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 55 for i, field_component in enumerate( currentLine ): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 56 if i not in toNotConsider:#to squeeze specified columns | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 57 options.append( ( "Column_"+str(i), "Column_"+str(i), False ) ) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 58 inputfile.close() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 59 return options | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 60 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 61 def get_row_names( file_path, factorName ): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 62 inputfile = open(file_path) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 63 firstLine = next(inputfile).strip().split("\t") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 64 iColumn=-1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 65 for i, field_component in enumerate( firstLine ): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 66 if field_component==factorName:#to test | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 67 iColumn=i | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 68 options=[] | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 69 if iColumn!=-1: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 70 for nextLine in inputfile: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 71 nextLine=nextLine.strip().split("\t") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 72 if len(nextLine)>1: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 73 if (nextLine[iColumn], nextLine[iColumn], False) not in options: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 74 options.append( (nextLine[iColumn], nextLine[iColumn], False) ) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 75 inputfile.close() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 76 return options | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 77 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 78 def get_condition_file_names( file_list, toNotConsider=-1, each=1): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 79 options=[] | 
| 1 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 80 if not (isinstance(file_list,list) or isinstance(file_list,galaxy.model.HistoryDatasetCollectionAssociation) or isinstance(file_list,galaxy.model.DatasetCollection)) :#if input file is a tabular file, act as get_column_names | 
| 0 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 81 inputfile = open(file_list.file_name) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 82 firstLine = next(inputfile).strip().split("\t") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 83 cpt=0 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 84 for i, field_component in enumerate( firstLine ): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 85 if i!=toNotConsider:#to squeeze the first column | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 86 if cpt==0: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 87 options.append( ( field_component, field_component, False ) ) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 88 cpt+=1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 89 if cpt==each: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 90 cpt=0 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 91 inputfile.close() | 
| 1 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 92 else:#if input file is a .cel file list, a DatasetCollection or a HistoryDatasetCollectionAssociation | 
| 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 93 if isinstance(file_list,list):#if it is a list, retrieve names easily | 
| 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 94 for i, field_component in enumerate( file_list ): | 
| 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 95 options.append( ( field_component.name, field_component.name, False ) ) | 
| 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 96 else:#if the file is a DatasetCollection, have to get deeper in the corresponding DatasetCollection object | 
| 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 97 if isinstance(file_list,galaxy.model.DatasetCollection):#if it is a list, retrieve names easily | 
| 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 98 for i, field_component in enumerate( file_list.elements ): | 
| 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 99 options.append( ( field_component.element_identifier, field_component.element_identifier, False ) ) | 
| 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 100 else:#if the file is a HistoryDatasetCollectionAssociation, have to get a little bit deeper in the corresponding HistoryDatasetCollectionAssociation object | 
| 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 101 for i, field_component in enumerate( file_list.collection.elements ): | 
| 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 102 options.append( ( field_component.element_identifier, field_component.element_identifier, False ) ) | 
| 0 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 103 return options | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 104 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 105 def generateFactorFile( file_list, factor_list, outputFileName, logFile): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 106 forbidenCharacters={"*",":",",","|"} | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 107 outputfile = open(outputFileName, 'w') | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 108 outputLog = open(logFile, 'w') | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 109 sampleList=[] | 
| 1 
7a520f7169e1
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit e2b27d6ff2eab66454f984dbf1a519192f41db97"
 vandelj parents: 
0diff
changeset | 110 conditionNames=get_condition_file_names(file_list,0) #if it's a unique expression file, remove the first column (index=0) | 
| 0 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 111 for iSample, sample_component in enumerate (conditionNames): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 112 sampleList.append(str(sample_component[1])) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 113 outputLog.write("[INFO] "+str(len(sampleList))+" sample are detected as input\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 114 globalDict=dict() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 115 factorNameList=[] | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 116 firstLine="Conditions" | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 117 if len(factor_list)==0:#check if there is at least one factor available | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 118 outputLog.write("[ERROR] no factor was defined !\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 119 return 1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 120 else: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 121 for iFactor, factor_component in enumerate( factor_list ): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 122 currentSampleList=list(sampleList) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 123 currentFactor=str(factor_component['factorName']) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 124 #check if factor name contains forbidden characters | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 125 for specialCharacter in forbidenCharacters: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 126 if currentFactor.find(specialCharacter)!=-1: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 127 outputLog.write("[ERROR] '"+specialCharacter+"' character is forbidden in factor name : '"+currentFactor+"'\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 128 return 4 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 129 #check if factor allready named like that | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 130 if not globalDict.get(currentFactor) is None: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 131 outputLog.write("[ERROR] '"+currentFactor+"' is used several times as factor name\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 132 return 3 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 133 globalDict[currentFactor]=dict() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 134 firstLine=firstLine+"\t"+currentFactor | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 135 factorNameList.append(currentFactor) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 136 if len(factor_component['valueList'])<=1:#check if there is at least two value available | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 137 outputLog.write("[ERROR] at least two different values are necessary for '"+currentFactor+"' factor\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 138 return 1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 139 else: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 140 for iValue, value_component in enumerate( factor_component['valueList'] ): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 141 currentValue=str(value_component['valueName']) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 142 #check if factor name contains forbidden characters | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 143 for specialCharacter in forbidenCharacters: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 144 if currentValue.find(specialCharacter)!=-1: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 145 outputLog.write("[ERROR] '"+specialCharacter+"' character is forbidden in value name : '"+currentValue+"'\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 146 return 4 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 147 currentSample=str(value_component['valueConditions']).split(",") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 148 for iSample, sample_component in enumerate (currentSample): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 149 if not sample_component in currentSampleList: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 150 outputLog.write("[ERROR] sample "+sample_component+" was assigned several times for factor '"+currentFactor+"'\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 151 return 2 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 152 currentSampleList.remove(sample_component) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 153 globalDict[currentFactor][sample_component]=currentValue | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 154 if(len(currentSampleList)>0): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 155 outputLog.write("[ERROR] for factor '"+currentFactor+"'' sample "+str(currentSampleList)+" are not assigned to any value\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 156 return 2 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 157 outputLog.write("[INFO] "+str(len(globalDict))+" factors are detected\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 158 #start writing the factor file | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 159 outputfile.write(firstLine+"\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 160 for iSample, sample_component in enumerate(sampleList): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 161 newLine=sample_component | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 162 for iFactor, factor_component in enumerate(factorNameList): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 163 newLine=newLine+"\t"+globalDict[factor_component][sample_component] | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 164 outputfile.write(newLine+"\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 165 outputfile.close() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 166 outputLog.close() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 167 return 0 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 168 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 169 def selectSubSetTable(file_path,headerLine_number,columnsToAdd,columnNamesToKeep,outputFileName,logFile): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 170 outputLog = open(logFile, 'w') | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 171 outputLog.write("[INFO] header line number : "+ headerLine_number+" lines\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 172 availableColumnsTuple=get_column_names_mergeNumber(file_path, headerLine_number) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 173 #convert tuple list as a simple array | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 174 availableColumns=[] | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 175 for iTuple, tuple_content in enumerate (availableColumnsTuple): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 176 availableColumns.append(str(tuple_content[0])) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 177 if len(availableColumns)==0: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 178 outputLog.write("[ERROR] No detected columns in input file\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 179 return 1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 180 selectedColumns=list(columnsToAdd) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 181 for iVolcano, volcano_content in enumerate(columnNamesToKeep): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 182 selectedColumns.append(availableColumns.index(volcano_content['pvalColumn'])) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 183 if volcano_content['fdrColumn'] in availableColumns: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 184 selectedColumns.append(availableColumns.index(volcano_content['fdrColumn'])) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 185 else: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 186 selectedColumns.append(0) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 187 selectedColumns.append(availableColumns.index(volcano_content['fcColumn'])) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 188 if len(selectedColumns)!=(3*len(columnNamesToKeep)+len(columnsToAdd)): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 189 outputLog.write("[ERROR] matching between input file colnames and requested column names failed\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 190 return 1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 191 outputLog.write("[INFO] columns kept : "+str(selectedColumns)+"\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 192 #start writting formatted file | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 193 inputfile = open(file_path) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 194 outputfile = open(outputFileName, 'w') | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 195 iLineCpt=-1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 196 for iCurrentLine in inputfile: | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 197 iLineCpt=iLineCpt+1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 198 if iLineCpt>=int(headerLine_number): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 199 currentLineFields=np.array(iCurrentLine.strip().split("\t")) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 200 newLine="\t".join(currentLineFields[selectedColumns]) | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 201 outputfile.write(newLine+"\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 202 if iLineCpt<int(headerLine_number): | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 203 outputLog.write("[ERROR] not enough lines in input files ("+(iLineCpt+1)+" lines)\n") | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 204 return 1 | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 205 inputfile.close() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 206 outputfile.close() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 207 outputLog.close() | 
| 
4764dc6a1019
"planemo upload for repository https://github.com/juliechevalier/GIANT/tree/master commit cb276a594444c8f32e9819fefde3a21f121d35df"
 vandelj parents: diff
changeset | 208 return 0 | 
