Skip to content

Commit d860a2c

Browse files
committed
show log per sample
1 parent 5c38dd5 commit d860a2c

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

pages/run_pipeline.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ def reset_button_state():
4040
# Create the selectbox and update session state
4141
pipeline_options = ["select"] + list(map_pipeline_project.keys())
4242
index = pipeline_options.index(PIPELINE)
43-
PIPELINE = st.selectbox("Select a pipeline", options=pipeline_options, index=index) # , key="PIPELINE")
43+
PIPELINE = st.selectbox("Select a pipeline", options=pipeline_options, index=index)
44+
adapt_samples = False
4445
# adding "select" as the first and default choice
4546
if PIPELINE != "select":
4647
project_options = list(map_pipeline_project[PIPELINE].keys())
@@ -74,7 +75,6 @@ def reset_button_state():
7475
st.write("Your custom samples:", custom_sample_list)
7576
ss_set("custom_sample_list", custom_sample_list)
7677

77-
adapt_samples = False
7878
if(map_pipeline_project[PIPELINE][PROJECT]["adapt_samples"]):
7979
adapt_samples = st.checkbox("Adapt samples prior to running nextflow",
8080
value=False,

shared/command_helper.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,13 @@ def pipe_cmd(
3838
def get_pipeline_command():
3939
"""Generate the pipeline execution command based on the sample selection."""
4040
path_to_script = get_path_to_script(selected_pipeline, selected_project, selected_samples)
41-
42-
# not sure if this is the best thing-using job id for filenamne
43-
log_out = f"{work_dir}/logs/%j.out"
44-
log_err = f"{work_dir}/logs/%j.err"
4541

4642
args = []
4743
base_cmd = f"bash {path_to_script}" #default
4844

4945
if selected_samples == "demo":
46+
log_out = f"{work_dir}/logs/log_demo.out"
47+
log_err = f"{work_dir}/logs/log_demo.err"
5048
base_cmd = f"sbatch -o {log_out} -e {log_err}"
5149
args += [path_to_script, work_dir, output_dir]
5250

@@ -64,7 +62,8 @@ def get_pipeline_command():
6462
args += ["--adapt-samples"]
6563
if bed_file:
6664
args += ["--bed", bed_file]
67-
65+
66+
# note: I use logs/log_{samplename} for sample logs
6867
preamble = f"""
6968
mkdir -p {work_dir}/logs
7069
cd {work_dir}

tabs/tab_command.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def tab(
1111
MY_SSH,
1212
selected_pipeline,
1313
selected_project,
14-
selected_samples="all",
14+
selected_samples="",
1515
work_dir="work",
1616
output_dir="output",
1717
custom_sample_list=[],
@@ -21,7 +21,7 @@ def tab(
2121
):
2222
# --- Initialize session state ---
2323
st.session_state.setdefault("username", username)
24-
st.session_state.setdefault("JOB_ID", "17379785")
24+
st.session_state.setdefault("JOB_ID", "")
2525
st.session_state.setdefault("run_pipeline_clicked", False)
2626

2727
# --- Display username input ---
@@ -77,17 +77,21 @@ def run_nextflow():
7777
if st.session_state["JOB_ID"]:
7878
st.success(f"Running Job ID: {st.session_state['JOB_ID']}")
7979

80+
get_sample_list = lambda selected_samples, custom_sample_list: [selected_samples] if selected_samples == 'demo' else custom_sample_list
81+
parsed_sample_list = get_sample_list(selected_samples, custom_sample_list)
8082
# --- Logs tab ---
8183
with tabL:
84+
# when checking logs, ask user to select one (drop-down list) of his samples at a time : demo or customised sample
8285
if st.button("Get Logs"):
83-
# st.write("📦 session_state:", dict(st.session_state))
84-
job_id = st.session_state.get("JOB_ID")
85-
st.write("📌 Accessed JOB_ID:", job_id) # DEBUG
86-
if not job_id:
86+
_sample_to_log = st.selectbox("Choose an option", parsed_sample_list)
87+
st.write("You selected:", _sample_to_log)
88+
#job_id = st.session_state.get("JOB_ID")
89+
#st.write("📌 Accessed JOB_ID:", job_id) # DEBUG
90+
if not _sample_to_log:
8791
st.error("No job was launched yet")
8892
else:
89-
log_out = f"{work_dir}/logs/{job_id}.out"
90-
log_err = f"{work_dir}/logs/{job_id}.err"
93+
log_out = f"{work_dir}/logs/log_{_sample_to_log}.out"
94+
log_err = f"{work_dir}/logs/log_{_sample_to_log}.err"
9195
tO, tE = st.tabs(["Output", "Error"])
9296
outputO, outputE = tO.empty(), tE.empty()
9397
with st.spinner("Fetching logs..."):

0 commit comments

Comments
 (0)