ClearTea,
the AI researcher

Compare disease-free survival between arm A and arm B in the resected stage III cohort, then write up the result in the manuscript.
4,823 patients, balanced 1:1 across arms. I fit a Cox proportional-hazards model for disease-free survival.
Arm B (FOLFOX + CT-217) had a significantly lower hazard of recurrence or death — HR 0.74 (95% CI 0.61–0.90; p=0.003). I saved the hazard-ratio table and a Kaplan–Meier figure to the notebook.
Drafted the survival paragraph in Results and tightened the Discussion. Both are tracked changes for your review.
Does the effect hold after adjusting for age at enrollment?
Yes. Adding age_at_entry as a covariate barely moves the treatment effect (adjusted HR 0.74; p=0.004), and age itself is only mildly prognostic (HR 1.02 per year). Want me to add the adjusted model to the supplementary table?

Top scientists choose to

Research with ClearTea

CUHK
CAS
HKU
PKU
Tsinghua
Zhejiang
PUMC
CUHK
CAS
HKU
PKU
Tsinghua
Zhejiang
PUMC

Use cases

Use ClearTea to reliably do the heavy lifting — all with proof of work and decision-making.

Deep research review

  • PubMed + OpenAlex indexed retrieval across millions of papers
  • Reads the full paper during synthesis, not just abstracts
  • Remembers your context to propose new research directions

Where should we start?

Or just type a message to get started

Draft with citations

Reproduce findings

  • Hand the agent a paper plus its data
  • Reproduces the result and explores variants
  • Every step visible — code, output, decisions

Sandboxed notebook analysis

  • Full .ipynb integration in a secure sandbox
  • Iterative code execution from natural language
  • Upload CSV, XLSX, SAS, SPSS, and more
Run all Restart Clear outputs
Python Ready
Markdown 1

Disease-free survival — arm A vs arm B

Cox proportional-hazards model on the resected stage III colon-cancer cohort.

Cell 2 [1] 0.61s
1 import pandas as pd
2 from lifelines import CoxPHFitter, KaplanMeierFitter
3
4 df = pd.read_sas("survival_cohort.sas7bdat")
5 df["arm_B"] = (df["arm"] == "B").astype(int)
6 df.shape
Output
(4823, 13)
Cell 3 Modified [3] 0.48s
1 cph = CoxPHFitter()
cph.fit(df[["followup_days", "event", "arm_B"]],
2 cph.fit(df[["followup_days", "event", "arm_B", "age_at_entry"]],
3 duration_col="followup_days", event_col="event")
4 cph.print_summary(columns=["exp(coef)", "exp(coef) lower 95%", "exp(coef) upper 95%", "p"])
Output
covariateHRlower 95%upper 95%p
arm_B0.740.610.900.003
age_at_entry1.021.001.040.011
Cell 4 [4] 1.12s
1 ax = None
2 for arm, g in df.groupby("arm"):
3 kmf = KaplanMeierFitter()
4 kmf.fit(g["followup_days"], g["event"], label=f"Arm {arm}")
5 ax = kmf.plot_survival_function(ax=ax, ci_show=True)
6 ax.set_xlabel("Days since randomization")
7 ax.set_ylabel("Disease-free survival")
Output
Kaplan–Meier disease-free survival by arm

Read with you

  • Import PDFs and supporting docs into the workspace
  • Inline summaries as you read
  • On-demand translation in any major language

And more..

  • Share files and workspaces with co-authors — and the agent
  • Comments and tracked changes on every paragraph
  • Export, file sharing, and original / drafted / accepted view modes

Collaborate like
coworkers

Learning, scratchpads, and team workflows that compound with your work.

Learning

ClearTea stores its learnings in CLEARTEA.doc

Every preference, hypothesis, and project detail is written to a context doc the agent reads before each task. You edit it like any other file — or let ClearTea do it automatically.

Where should we start?

Or just type a message to get started

Proof of work

Every investigation written down

Scratchpads capture searches, reasoning, and code as the agent works. Open the trail, audit each step, refine the prompt — research with a clear record of what the agent did and why.

Run all Restart Clear outputs
Python Ready
Markdown 1

Proportional-hazards check — DFS model (CT-217)

The primary disease-free-survival result rests on a Cox model that assumes a constant hazard ratio over time. Before locking the manuscript, verify that assumption — for the treatment effect and for the covariates we adjusted on (age, stage, region).

Plan: (1) global Schoenfeld test, (2) per-covariate Schoenfeld test, (3) scaled-residual plot for arm_B.

Cell 2 [1] 0.19s
1 # reuse the fitted Cox model + cohort from survival_analysis.ipynb
2 from lifelines.statistics import proportional_hazard_test
3
4 gt = proportional_hazard_test(cph, df, time_transform="rank")
5 print(f"events: 612 (arm A) / 521 (arm B) n = {df.shape[0]}")
6 print(f"global Schoenfeld test -> chi2 = {gt.test_statistic.sum():.2f}, df = {len(gt.summary)}, min p = {gt.summary['p'].min():.3f}")
Output
events: 612 (arm A) / 521 (arm B)   n = 4823
global Schoenfeld test  ->  chi2 = 4.91, df = 4, min p = 0.118
Cell 3 [2] 0.07s
1 # break the global test down by covariate
2 gt.summary[["test_statistic", "p"]].round(3)
Output
covariatetest_statisticp
arm_B0.670.413
age_at_entry0.940.332
stage_IIIC1.550.213
region_asia1.750.186
Cell 4 [3] 0.88s
1 # visual check: scaled Schoenfeld residuals for the treatment effect
2 # a flat smoother through 0 == constant log-hazard-ratio over time
3 ax = cph.check_assumptions(df, p_value_threshold=0.05, show_plots=True)[0][0]
4 ax.set_title("Scaled Schoenfeld residuals — arm_B")
5 ax.set_xlabel("Time (rank-transformed)")
Output
Scaled Schoenfeld residuals for arm_B — flat smoother through zero
Markdown 5

Conclusion. The proportional-hazards assumption holds. The global Schoenfeld test is non-significant (min p = 0.12) and every covariate clears p > 0.05 individually — arm_B (0.41), age (0.33), stage IIIC (0.21), region (0.19). The scaled residuals for arm_B scatter flat around zero with no time trend.

The headline HR 0.74 (95% CI 0.61–0.90, p = 0.003) can be reported as a single hazard ratio — no time-varying term or stratified model needed.

Follow-up. PH held for the overall effect; re-run this check within the pre-specified region subgroups before finalizing the forest plot.

Teamwork

Works alongside your collaborators

Drop a comment on a paragraph and the agent responds, edits, and resolves it like a co-author. Same review workflow your team already runs — humans and ClearTea share the workspace.

Frequently Asked Questions

Also available

Just need a certificate of editing?

For ¥699/month, upload your manuscript and get an official editing certificate in about 10 minutes — no workspace needed.

See our pricing here

Research better with
ClearTea