Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add poster content for 2024 SBI2 conference #67

Merged
merged 32 commits into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
2f8bbd1
add sbi2 abstract
d33bs Aug 5, 2024
3b11de4
initial template development
d33bs Aug 6, 2024
89a3561
progress towards content
d33bs Aug 6, 2024
0943b0f
add examples
d33bs Aug 6, 2024
7d6337e
minor changes
d33bs Aug 6, 2024
c5f657d
further content development; linting
d33bs Aug 7, 2024
3c037ce
linting
d33bs Aug 7, 2024
b600ace
update docs
d33bs Aug 7, 2024
1d61668
add comments to typst file
d33bs Aug 7, 2024
315b8fd
co-authorship indication
d33bs Aug 8, 2024
d4d2363
add vince as author
d33bs Aug 8, 2024
aa80226
add acknowledgements
d33bs Aug 8, 2024
874ee4a
Merge remote-tracking branch 'upstream/main' into poster
d33bs Aug 23, 2024
c41108f
update readme
d33bs Aug 23, 2024
4bacb42
update paths to remove dbmi retreat mentions
d33bs Aug 23, 2024
045ff41
Update poetry.lock
d33bs Aug 23, 2024
33966f4
poster template location; images; examples
d33bs Aug 29, 2024
b806380
moving images around; formatting; new mermaid flow
d33bs Aug 30, 2024
9697fb0
image resizing docs
d33bs Aug 30, 2024
0bb4648
add to acknowledgements
d33bs Sep 11, 2024
1a0f950
Merge remote-tracking branch 'upstream/main' into poster
d33bs Sep 12, 2024
85cf6a1
update lockfile
d33bs Sep 12, 2024
cdaa573
update figures and captions
d33bs Sep 13, 2024
e24458a
bolding in caption
d33bs Sep 13, 2024
1fa4dcc
make changes based on feedback
d33bs Sep 13, 2024
d6966c8
make changes based on feedback
d33bs Sep 13, 2024
2d841ae
fix markdown typo
d33bs Sep 13, 2024
1a8b835
address feedback
d33bs Sep 13, 2024
db18f37
re-run notebook and separate nb cells post linting
d33bs Sep 13, 2024
3395300
avoid formatting notebook report
d33bs Sep 13, 2024
ae9e56a
typo correction
d33bs Sep 23, 2024
8081fa1
add citation with doi
d33bs Sep 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ authors:
- given-names: David
family-names: Bunten
orcid: 'https://orcid.org/0000-0001-6041-3665'
- given-names: Vincent
family-names: Rubinetti
orcid: 'https://orcid.org/0000-0002-4655-3773'
- given-names: Gregory
family-names: Way
orcid: 'https://orcid.org/0000-0002-0503-9348'
Expand Down
1 change: 1 addition & 0 deletions docs/presentations/2024-09-18-SBI2-Conference/.gitignore
d33bs marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/.quarto/
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
title: Poster (modified)
author: Carlos Scheidegger, Dave Bunten
version: 1.0.0
quarto-required: ">=1.4.415"
contributes:
formats:
typst:
template-partials:
- typst-template.typ
- typst-show.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
// Typst custom formats typically consist of a 'typst-template.typ' (which is
// the source code for a typst template) and a 'typst-show.typ' which calls the
// template's function (forwarding Pandoc metadata values as required)
//
// This is an example 'typst-show.typ' file (based on the default template
// that ships with Quarto). It calls the typst function named 'article' which
// is defined in the 'typst-template.typ' file.
//
// If you are creating or packaging a custom typst template you will likely
// want to replace this file and 'typst-template.typ' entirely. You can find
// documentation on creating typst templates here and some examples here:
// - https://typst.app/docs/tutorial/making-a-template/
// - https://github.com/typst/templates

#show: doc => poster(
$if(title)$ title: [$title$], $endif$
// TODO: use Quarto's normalized metadata.
$if(poster-authors)$ authors: [$poster-authors$], $endif$
$if(departments)$ departments: [$departments$], $endif$
$if(size)$ size: "$size$", $endif$

// Institution logo.
$if(institution-logo)$ univ_logo: "$institution-logo$", $endif$

// Footer text.
// For instance, Name of Conference, Date, Location.
// or Course Name, Date, Instructor.
$if(footer-text)$ footer_text: [$footer-text$], $endif$

// Any URL, like a link to the conference website.
$if(footer-url)$ footer_url: [$footer-url$], $endif$

// Emails of the authors.
$if(footer-emails)$ footer_email_ids: [$footer-emails$], $endif$

// Color of the footer.
$if(footer-color)$ footer_color: "$footer-color$", $endif$

// DEFAULTS
// ========
// For 3-column posters, these are generally good defaults.
// Tested on 36in x 24in, 48in x 36in, and 36in x 48in posters.
// For 2-column posters, you may need to tweak these values.
// See ./examples/example_2_column_18_24.typ for an example.

// Any keywords or index terms that you want to highlight at the beginning.
$if(keywords)$ keywords: ($for(keywords)$"$it$"$sep$, $endfor$), $endif$

// Number of columns in the poster.
$if(num-columns)$ num_columns: $num-columns$, $endif$

// University logo's scale (in %).
$if(univ-logo-scale)$ univ_logo_scale: $univ-logo-scale$, $endif$

// University logo's column size (in in).
$if(univ-logo-column-size)$ univ_logo_column_size: $univ-logo-column-size$, $endif$

// Title and authors' column size (in in).
$if(title-column-size)$ title_column_size: $title-column-size$, $endif$

// Poster title's font size (in pt).
$if(title-font-size)$ title_font_size: $title-font-size$, $endif$

// Authors' font size (in pt).
$if(authors-font-size)$ authors_font_size: $authors-font-size$, $endif$

// Footer's URL and email font size (in pt).
$if(footer-url-font-size)$ footer_url_font_size: $footer-url-font-size$, $endif$

// Footer's text font size (in pt).
$if(footer-text-font-size)$ footer_text_font_size: [$footer-text-font-size$], $endif$

doc,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
#let poster(
// set variables for use throughout
// note: some are referenced from `.qmd` file
size: "'36x24' or '48x36''",
title: "Paper Title",
authors: "Author Names (separated by commas)",
departments: "Department Name",
univ_logo: "Logo Path",
footer_text: "Footer Text",
footer_url: "Footer URL",
footer_email_ids: "Email IDs (separated by commas)",
footer_color: "Hex Color Code",
keywords: (),
num_columns: "4",
univ_logo_scale: "140",
univ_logo_column_size: "15",
title_column_size: "25",
title_font_size: "48",
authors_font_size: "36",
footer_url_font_size: "40",
footer_text_font_size: "40",
body
) = {
// initialize template display formatting
set text(font: "Lato", size: 32pt)
let sizes = size.split("x")
let width = int(sizes.at(0)) * 1in
let height = int(sizes.at(1)) * 1in
univ_logo_scale = int(univ_logo_scale) * 1%
title_font_size = int(title_font_size) * 1pt
authors_font_size = int(authors_font_size) * 1pt
num_columns = int(num_columns)
univ_logo_column_size = int(univ_logo_column_size) * 1in
title_column_size = int(title_column_size) * 1in
footer_url_font_size = int(footer_url_font_size) * 1pt
footer_text_font_size = int(footer_text_font_size) * 1pt

// create overall page output
set page(
// total dimensions
width: width,
height: height,
// margin on all sides
margin:
(top: .8in, left: .8in, right: .8in, bottom: 1.8in),
// footer section
footer: [
#set align(center)
#set text(42pt)
#block(
fill: rgb(footer_color),
width: 100%,
inset: 20pt,
radius: 10pt,
// adds text to footer
[
#text(font: "Lato", size: footer_url_font_size, footer_url)
#h(1fr)
#text(size: footer_text_font_size, smallcaps(footer_text))
#h(1fr)
#text(font: "Lato", size: footer_url_font_size, footer_email_ids)
]
)
]
)

// set math display properties
set math.equation(numbering: "(1)")
show math.equation: set block(spacing: 0.65em)

set enum(indent: 10pt, body-indent: 9pt)
set list(indent: 10pt, body-indent: 9pt)

// set the heading numbering system
set heading(numbering: "I.A.1.")
show heading: it => locate(loc => {
let levels = counter(heading).at(loc)
let deepest = if levels != () {
levels.last()
} else {
1
}

// defines how sub-headers display
set text(24pt, weight: 400)
// sub-header level 1
if it.level == 1 [
#set text(style: "italic")
#v(32pt, weak: true)
#if it.numbering != none {
numbering("i.", deepest)
h(7pt, weak: true)
}
#it.body
// sub-header level 2
] else if it.level == 2 [
#v(10pt, weak: true)
#set align(left)
#set text({ 40pt }, weight: 600, font: "Merriweather", fill: rgb(31, 23, 112))
#show: smallcaps
#v(50pt, weak: true)
#if it.numbering != none {
numbering("I.", deepest)
h(7pt, weak: true)
}
#it.body
#v(30pt, weak: true)
#line(length: 100%, stroke: rgb(200, 200, 200))
#v(30pt, weak: true)
// all other headers
] else [
#set text({ 36pt }, weight: 600, font: "Merriweather", fill: rgb(31, 23, 112))
#if it.level == 3 {
numbering("☆ 1)", deepest)
[ ]
}
___#(it.body)___
#v(40pt, weak: true)
]
})

// header grid
align(left,
grid(
// rows and cols in the header
rows: (auto, auto),
columns: (title_column_size, univ_logo_column_size),
column-gutter: 5pt,
row-gutter: 30pt,
// main title
text(font: "Merriweather", weight: 1000, size: 48pt, title),
grid.cell(
image(univ_logo, width: univ_logo_scale),
rowspan: 3,
align: left,
),
// author display
text(size: 38pt, authors),
// department and notes display
text(size: 29pt, emph(departments)),
)
)

// spacing between the header and body
v(40pt)

// set main body display
show: columns.with(num_columns, gutter: 60pt)
// paragraph display properties
set par(leading: 10pt,
justify: false,
first-line-indent: 0em,
linebreaks: "optimized"
)

// Configure figures.
show figure: it => block({
// Display a backdrop rectangle.
it.body

// Display caption.
if it.has("caption") {
set align(left)
v(if it.has("gap") { it.gap } else { 24pt }, weak: true)
set text(weight: "bold")
it.caption
}

})

// adds body content to page
body
}
15 changes: 15 additions & 0 deletions docs/presentations/2024-09-18-SBI2-Conference/abstract.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# SBI2 2024 Abstract Submission - coSMicQC

## Author(s):

Dave Bunten, Jenna Tomkinson, Gregory Way

## Title (under 100 characters):

Single-cell Morphology Quality Control (coSMicQC)

## Abstract (under 500 words):

High-dimensional single-cell morphology data from large-scale microscopy drug screening applications help prioritize effective treatments for patients suffering from various diseases and enable the discovery of new biological mechanisms. Image analysis pipelines to process these single-cell data often introduce errors in the segmentation step, where software improperly segments single cells (for example, capturing undersized or overly large portions of a cell compartment) and incorrectly identifies artifacts like dust or other debris as single cells. These errors lead to erroneous single-cell measurements which need to be removed prior to single-cell analyses to help ensure accurate results. Research scientists often use bespoke approaches to filter single cells or aggregate all single cells into bulk profiles, reducing errors' impact and preventing single-cell analysis. This leads to duplicated effort, human error, and a lack of quality control in single-cell feature data which overall may result in a reduced potential for discoveries or inaccurate outcomes.

We introduce a Python package called coSMicQC (Single cell Morphology Quality Control) to improve single-cell morphology analysis. coSMicQC uses high-content morphology measurements to define default thresholds for removing single cells and enables users to customize quality control parameters. Accessible through both command line interface (CLI) and Python application programming interface (API), coSMicQC seamlessly integrates into diverse analytical workflows, including standalone scripts/workflows to interactive Jupyter Notebooks. Notably, the package creates interactive and exportable visualizations that illustrate outlier distributions. The backbone of this package is a novel data format: the CytoDataFrame. CytoDataFrames facilitate real-time exploration of single-cell images within any pandas environment to seamlessly link single-cell morphology measurements with single-cell images. Leveraging real-world datasets, including Joint Undertaking in Morphological Profiling (CPJUMP1) data, we show how our tool empowers researchers to identify technical outliers within single-cell profile features and improve single-cell analysis.
Loading
Loading