Previous changeset 11:6c1e564bb278 (2025-05-23) Next changeset 13:5b16f2911491 (2025-05-23) |
Commit message:
planemo upload for repository https://github.com/brsynth commit 6ae809b563b40bcdb6be2e74fe2a84ddad5484ae |
modified:
get_DB_data.xml get_db_info.py output.html output.json test-data/test_input.csv |
b |
diff -r 6c1e564bb278 -r ee28ec28140d get_DB_data.xml --- a/get_DB_data.xml Fri May 23 08:42:42 2025 +0000 +++ b/get_DB_data.xml Fri May 23 12:45:20 2025 +0000 |
b |
@@ -77,7 +77,7 @@ **Parameters**: --------------- -* **Input CSV File**: Contains construct IDs in the column 'ID' and their corresponding fragments in the following columns. +* **Input CSV File**: Contains construct IDs in the first column and their corresponding fragments in the following columns. (Without Header) * **DB Table Name**: Name of the target table in the PostgreSQL database. * **DB Column Contains Sequence For ganbank File**: Column storing sequence data, expected to start with "ORIGIN". * **DB Column Contains Annotation For Ganbank File**: Column containing annotation data, starting with "FEATURES" and including "LOCUS" information. Other metadata is optional. |
b |
diff -r 6c1e564bb278 -r ee28ec28140d get_db_info.py --- a/get_db_info.py Fri May 23 08:42:42 2025 +0000 +++ b/get_db_info.py Fri May 23 12:45:20 2025 +0000 |
[ |
@@ -84,7 +84,7 @@ def fetch_annotations(csv_file, sequence_column, annotation_columns, db_uri, table_name, fragment_column_name, output): """Fetch annotations from the database and save the result as GenBank files.""" db_uri = fix_db_uri(db_uri) - df = pd.read_csv(csv_file, sep=',') + df = pd.read_csv(csv_file, sep=',', header=None) engine = create_engine(db_uri) connection = engine.connect() @@ -106,10 +106,13 @@ # Compare fragments between CSV and DB csv_fragments = set() + all_ids = set(df[0]) for _, row in df.iterrows(): for col in df.columns: - if col != "ID": - csv_fragments.add(row[col]) + if col != 0: # Skip the first column + fragment = row[col] + if fragment not in all_ids: + csv_fragments.add(fragment) db_fragments = set(fragment_map.keys()) missing_fragments = sorted(list(csv_fragments - db_fragments)) @@ -121,9 +124,9 @@ # === CONTINUE WITH GB FILE CREATION === for _, row in df.iterrows(): - annotated_row = {"Backbone": row["ID"], "Fragments": []} + annotated_row = {"Backbone": row[0], "Fragments": []} for col in df.columns: - if col != "ID": + if col != 0: fragment = row[col] db_row = fragment_map.get(fragment) |
b |
diff -r 6c1e564bb278 -r ee28ec28140d output.html --- a/output.html Fri May 23 08:42:42 2025 +0000 +++ b/output.html Fri May 23 12:45:20 2025 +0000 |
b |
@@ -285,7 +285,7 @@ var md = window.markdownit({ html: true, }); - target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iMSIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iMSIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSIxIFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjEiIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSIxIiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDEgfAp8IFBhc3NlZCAgICAgfCAxIHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBnZXRfREJfZGF0YSAoVGVzdCAjIDEpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2dldF9kYl9kYXRhL2dldF9kYl9pbmZvLnB5JyAtLWlucHV0ICcvdG1wL3RtcDZtdm1kM2lfL2ZpbGVzLzMvZi9hL2RhdGFzZXRfM2ZhYWE5MGEtMjEwZS00ZWFjLTliYWYtMzY1ZDQ3ZTMwOGY3LmRhdCcgLS1zZXF1ZW5jZV9jb2x1bW4gJ3NlcXVlbmNlJyAtLWFubm90YXRpb25fY29sdW1ucyAnYW5ub3RhdGlvbicgLS1kYl91cmkgJ3Bvc3RncmVzcWw6Ly9wb3N0Z3JlczpSSzE3X19hdF9fbG9jYWxob3N0OjU0MzIvdGVzdF9mcmFnbWVudHNfZGInIC0tdGFibGUgJ3NhbXBsZScgLS1mcmFnbWVudF9jb2x1bW4gJ2ZyYWdtZW50JyAtLW91dHB1dCAnb3V0ZGlyJwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICB0ZXN0X2ZyYWdtZW50c19kYgogICAgICBTdGFydGluZyBleGlzdGluZyBjb250YWluZXIgJ3Rlc3RfZnJhZ21lbnRzX2RiJy4uLgogICAgICBQb3N0Z3JlU1FMIERvY2tlciBjb250YWluZXIgJ3Rlc3RfZnJhZ21lbnRzX2RiJyBhY3RpdmF0ZWQuCiAgICAgIERhdGFiYXNlIG5vdCByZWFkeSwgcmV0cnlpbmcuLi4KICAgICAgQ29ubmVjdGVkIHRvIGRhdGFiYXNlLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgdGFibGUgfCBgICJzYW1wbGUiIGAgfAogICAgICAgfCBzZXF1ZW5jZVxfY29sdW1uIHwgYCAic2VxdWVuY2UiIGAgfAogICAgICAgfCBhbm5vdGF0aW9uXF9jb2x1bW5zIHwgYCAiYW5ub3RhdGlvbiIgYCB8CiAgICAgICB8IGZyYWdtZW50XF9jb2x1bW4gfCBgICJmcmFnbWVudCIgYCB8CiAgICAgICB8IGRiXF91cmkgfCBgICJwb3N0Z3Jlc3FsOi8vcG9zdGdyZXM6UksxN0Bsb2NhbGhvc3Q6NTQzMi90ZXN0X2ZyYWdtZW50c19kYiIgYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wNm12bWQzaV8vZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgo8L2RldGFpbHM+Cg==')); + target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iMSIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iMSIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSIxIFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjEiIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSIxIiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDEgfAp8IFBhc3NlZCAgICAgfCAxIHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBnZXRfREJfZGF0YSAoVGVzdCAjIDEpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2dldF9kYl9kYXRhL2dldF9kYl9pbmZvLnB5JyAtLWlucHV0ICcvdG1wL3RtcDIwYWJtaW84L2ZpbGVzLzAvMC81L2RhdGFzZXRfMDA1NjdiMmYtNTAzMi00M2I4LWE2MTItYzE2ZThhYzA5N2NhLmRhdCcgLS1zZXF1ZW5jZV9jb2x1bW4gJ3NlcXVlbmNlJyAtLWFubm90YXRpb25fY29sdW1ucyAnYW5ub3RhdGlvbicgLS1kYl91cmkgJ3Bvc3RncmVzcWw6Ly9wb3N0Z3JlczpSSzE3X19hdF9fbG9jYWxob3N0OjU0MzIvdGVzdF9mcmFnbWVudHNfZGInIC0tdGFibGUgJ3NhbXBsZScgLS1mcmFnbWVudF9jb2x1bW4gJ2ZyYWdtZW50JyAtLW91dHB1dCAnb3V0ZGlyJwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBDb250YWluZXIgJ3Rlc3RfZnJhZ21lbnRzX2RiJyBpcyBhbHJlYWR5IHJ1bm5pbmcuCiAgICAgIENvbm5lY3RlZCB0byBkYXRhYmFzZS4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IHRhYmxlIHwgYCAic2FtcGxlIiBgIHwKICAgICAgIHwgc2VxdWVuY2VcX2NvbHVtbiB8IGAgInNlcXVlbmNlIiBgIHwKICAgICAgIHwgYW5ub3RhdGlvblxfY29sdW1ucyB8IGAgImFubm90YXRpb24iIGAgfAogICAgICAgfCBmcmFnbWVudFxfY29sdW1uIHwgYCAiZnJhZ21lbnQiIGAgfAogICAgICAgfCBkYlxfdXJpIHwgYCAicG9zdGdyZXNxbDovL3Bvc3RncmVzOlJLMTdAbG9jYWxob3N0OjU0MzIvdGVzdF9mcmFnbWVudHNfZGIiIGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcDIwYWJtaW84L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKPC9kZXRhaWxzPgo=')); </script> </body> </html> \ No newline at end of file |
b |
diff -r 6c1e564bb278 -r ee28ec28140d output.json --- a/output.json Fri May 23 08:42:42 2025 +0000 +++ b/output.json Fri May 23 12:45:20 2025 +0000 |
[ |
@@ -13,29 +13,29 @@ "db_uri": "postgresql://postgres:RK17@localhost:5432/test_fragments_db", "fragment_column": "fragment", "input": { - "id": "90b6134c741d62e0", + "id": "21ac64467e79a23d", "src": "hda" }, "sequence_column": "sequence", "table": "sample" }, "job": { - "command_line": "mkdir 'outdir' && python '/home/rkhaled/galaxytools/tools/get_db_data/get_db_info.py' --input '/tmp/tmp6mvmd3i_/files/3/f/a/dataset_3faaa90a-210e-4eac-9baf-365d47e308f7.dat' --sequence_column 'sequence' --annotation_columns 'annotation' --db_uri 'postgresql://postgres:RK17__at__localhost:5432/test_fragments_db' --table 'sample' --fragment_column 'fragment' --output 'outdir'", + "command_line": "mkdir 'outdir' && python '/home/rkhaled/galaxytools/tools/get_db_data/get_db_info.py' --input '/tmp/tmp20abmio8/files/0/0/5/dataset_00567b2f-5032-43b8-a612-c16e8ac097ca.dat' --sequence_column 'sequence' --annotation_columns 'annotation' --db_uri 'postgresql://postgres:RK17__at__localhost:5432/test_fragments_db' --table 'sample' --fragment_column 'fragment' --output 'outdir'", "command_version": null, "copied_from_job_id": null, - "create_time": "2025-05-23T08:38:59.358545", + "create_time": "2025-05-23T12:44:22.666476", "dependencies": [], "exit_code": 0, - "external_id": "48209", + "external_id": "196443", "galaxy_version": "24.2", "handler": null, - "history_id": "90b6134c741d62e0", - "id": "b9f952b979e68c98", + "history_id": "21ac64467e79a23d", + "id": "16392a867bb52b96", "inputs": { "input": { - "id": "90b6134c741d62e0", + "id": "21ac64467e79a23d", "src": "hda", - "uuid": "3faaa90a-210e-4eac-9baf-365d47e308f7" + "uuid": "00567b2f-5032-43b8-a612-c16e8ac097ca" } }, "job_messages": [], @@ -46,36 +46,36 @@ "model_class": "Job", "output_collections": { "output_gb": { - "id": "90b6134c741d62e0", + "id": "21ac64467e79a23d", "src": "hdca" } }, "outputs": { "__new_primary_file_output_gb|ACP10001AaCbbBS__": { - "id": "b9f952b979e68c98", + "id": "16392a867bb52b96", "src": "hda", - "uuid": "82bc78d2-10ad-456b-ae64-d9d1e5353fb3" + "uuid": "f6166465-8329-42d3-8b8d-634164cb00d1" }, "__new_primary_file_output_gb|CFP10002AaCbbBS__": { - "id": "4f0ddeb41bc45379", + "id": "f19b79cec441f6c0", "src": "hda", - "uuid": "01046314-2bc0-4f3d-afc7-78fb95d1dc1e" + "uuid": "27c7fa5e-029c-4c52-bfb8-281bc4fd581b" }, "__new_primary_file_output_gb|QWE10004AaCbbBS__": { - "id": "e74e23abb5f774f5", + "id": "c5caf62a8c51ce22", "src": "hda", - "uuid": "1fd729c7-47c7-4f8c-9a84-59a3999f8f59" + "uuid": "79161280-74b3-4786-9d94-d5e616a85047" }, "__new_primary_file_output_gb|XYZ10003AaCbbBS__": { - "id": "19527258361fac16", + "id": "33cdc5f5dcf09503", "src": "hda", - "uuid": "5362e373-68d2-4dd9-88c0-5d37e0a2841a" + "uuid": "3cc67d62-a001-42bf-9628-c508daf0934c" } }, "params": { "__input_ext": "\"input\"", "annotation_columns": "\"annotation\"", - "chromInfo": "\"/tmp/tmp6mvmd3i_/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmp20abmio8/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", "db_uri": "\"postgresql://postgres:RK17@localhost:5432/test_fragments_db\"", "dbkey": "\"?\"", "fragment_column": "\"fragment\"", @@ -84,17 +84,17 @@ }, "state": "ok", "stderr": "", - "stdout": "test_fragments_db\nStarting existing container 'test_fragments_db'...\nPostgreSQL Docker container 'test_fragments_db' activated.\nDatabase not ready, retrying...\nConnected to database.\n", + "stdout": "Container 'test_fragments_db' is already running.\nConnected to database.\n", "tool_id": "get_DB_data", "tool_stderr": "", - "tool_stdout": "test_fragments_db\nStarting existing container 'test_fragments_db'...\nPostgreSQL Docker container 'test_fragments_db' activated.\nDatabase not ready, retrying...\nConnected to database.\n", - "update_time": "2025-05-23T08:39:08.925010", + "tool_stdout": "Container 'test_fragments_db' is already running.\nConnected to database.\n", + "update_time": "2025-05-23T12:44:29.552502", "user_email": "planemo@galaxyproject.org", - "user_id": "90b6134c741d62e0" + "user_id": "21ac64467e79a23d" }, "status": "success", "test_index": 0, - "time_seconds": 19.857088088989258, + "time_seconds": 17.09453797340393, "tool_id": "get_DB_data", "tool_version": "0.1.0+galaxy0" }, |
b |
diff -r 6c1e564bb278 -r ee28ec28140d test-data/test_input.csv --- a/test-data/test_input.csv Fri May 23 08:42:42 2025 +0000 +++ b/test-data/test_input.csv Fri May 23 12:45:20 2025 +0000 |
b |
@@ -1,4 +1,3 @@ -ID,Frag1,Frag2,Frag3 Sample-1,ACP10001AaCbbBS,CFP10002AaCbbBS,XYZ10003AaCbbBS Sample-2,CFP10002AaCbbBS,ACP10001AaCbbBS,QWE10004AaCbbBS Sample-3,XYZ10003AaCbbBS,QWE10004AaCbbBS,ACP10001AaCbbBS |