diff cloning_simulation.py @ 2:3171db614963 draft

planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/DnaCauldron/tree/master commit 6ae809b563b40bcdb6be2e74fe2a84ddad5484ae
author tduigou
date Fri, 16 May 2025 11:32:06 +0000
parents dc450979fcd4
children 044d36066cb3
line wrap: on
line diff
--- a/cloning_simulation.py	Fri May 16 09:41:19 2025 +0000
+++ b/cloning_simulation.py	Fri May 16 11:32:06 2025 +0000
@@ -9,7 +9,7 @@
                        csv_file, assembly_type, topology,
                        file_name_mapping, file_name_mapping_dom,
                        use_file_names_as_id,
-                       outdir_simulation, output_simulation,enzyme):
+                       outdir_simulation, output_simulation,enzyme,outdir_gb):
 
     files_to_assembly = files_to_assembly.split(',')
 
@@ -108,11 +108,26 @@
                 full_path = os.path.join(root, file)
                 arcname = os.path.relpath(full_path, outdir_simulation)
                 zipf.write(full_path, arcname)
-        print("Files in the zip archive:")
-        for info in zipf.infolist():
-            print(info.filename)
+        #print("Files in the zip archive:")
+        #for info in zipf.infolist():
+            #print(info.filename)
+    with zipfile.ZipFile(output_simulation, 'r') as zipf:
+        for member in zipf.namelist():
+            # Only extract actual files inside 'all_construct_records/' (not subfolders)
+            if member.startswith("all_construct_records/") and not member.endswith("/"):
+                # Get the file name only (strip folder path)
+                filename = os.path.basename(member)
+                if not filename:
+                    continue  # skip any edge cases
 
-    return output_simulation
+                # Destination path directly in outdir_dir
+                target_path = os.path.join(outdir_gb, filename)
+
+                # Write the file content
+                with zipf.open(member) as source, open(target_path, "wb") as target:
+                    target.write(source.read())
+
+    return output_simulation, outdir_gb
 
 
 def parse_command_line_args():
@@ -140,6 +155,8 @@
                         help="zip output for cloning simulation results")
     parser.add_argument('--enzyme', type=str, 
                         help='enzyme to use')
+    parser.add_argument("--outdir_gb", required=True, 
+                        help="dir output constructs gb files")
  
     return parser.parse_args()
 
@@ -150,6 +167,6 @@
         args.parts_files, args.domesticated_seq,
         args.assembly_csv, args.assembly_plan_name, args.topology,
         args.file_name_mapping, args.file_name_mapping_dom, 
-        args.use_file_names_as_id,
-        args.outdir_simulation,args.output_simulation, args.enzyme
+        args.use_file_names_as_id, args.outdir_simulation,
+        args.output_simulation, args.enzyme, args.outdir_gb
     )
\ No newline at end of file