mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 22:06:53 +08:00
83 lines
2.6 KiB
Python
Executable File
83 lines
2.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
"""
|
|
Script that imports locally stored data as a new dataset for the user
|
|
Usage: import id outputfile
|
|
"""
|
|
import sys, os
|
|
from shutil import copyfile
|
|
|
|
assert sys.version_info[:2] >= ( 2, 4 )
|
|
|
|
BUFFER = 1048576
|
|
|
|
def stop_err( msg ):
|
|
sys.stderr.write( msg )
|
|
sys.exit()
|
|
|
|
def main():
|
|
uids = sys.argv[1].split(",")
|
|
out_file1 = sys.argv[2]
|
|
file_name = "%s/encode_datasets.loc" % sys.argv[3]
|
|
|
|
#remove NONE from uids
|
|
have_none = True
|
|
while have_none:
|
|
try:
|
|
uids.remove('None')
|
|
except:
|
|
have_none = False
|
|
|
|
#create dictionary keyed by uid of tuples of (displayName,filePath,build) for all files
|
|
available_files = {}
|
|
try:
|
|
for i, line in enumerate( file ( file_name ) ):
|
|
line = line.rstrip( '\r\n' )
|
|
if line and not line.startswith( '#' ):
|
|
fields = line.split( '\t' )
|
|
try:
|
|
encode_group = fields[0].strip()
|
|
build = fields[1].strip()
|
|
description = fields[2].strip()
|
|
uid = fields[3].strip()
|
|
path = fields[4].strip()
|
|
try:
|
|
file_type = fields[5].strip()
|
|
except:
|
|
file_type = "bed"
|
|
except:
|
|
continue
|
|
available_files[uid] = ( description, path, build, file_type )
|
|
except:
|
|
stop_err( "It appears that the configuration file for this tool is missing." )
|
|
|
|
#create list of tuples of ( displayName, FileName, build ) for desired files
|
|
desired_files = []
|
|
for uid in uids:
|
|
try:
|
|
desired_files.append( available_files[uid] )
|
|
except:
|
|
continue
|
|
|
|
#copy first file to contents of given output file
|
|
file1_copied = False
|
|
while not file1_copied:
|
|
try:
|
|
first_file = desired_files.pop(0)
|
|
except:
|
|
stop_err( "There were no valid files requested." )
|
|
file1_desc, file1_path, file1_build, file1_type = first_file
|
|
try:
|
|
copyfile( file1_path, out_file1 )
|
|
print "#File1\t" + file1_desc + "\t" + file1_build + "\t" + file1_type
|
|
file1_copied = True
|
|
except:
|
|
stop_err( "The file '%s' is missing." %str( file1_path ) )
|
|
|
|
#Tell post-process filter where remaining files reside
|
|
for extra_output in desired_files:
|
|
file_desc, file_path, file_build, file_type = extra_output
|
|
print "#NewFile\t" + file_desc + "\t" + file_build + "\t" + file_path + "\t" + file_type
|
|
|
|
if __name__ == "__main__": main()
|