[{"content":"Since last winter, I started using Claude Code, then Codex, for my work — my current setup is a Claude Max 5x + ChatGPT Pro. They quickly became something I reach for every day. Below are a couple of notes on customizations I\u0026rsquo;ve picked up along the way. The first two are for VS Code — I know the CLI is where the bleeding edge lives and is the best supported, but for the analysis work I do I prefer being able to quickly interact with files and plots (usually on a remote EC2 instance).\nSeeing what the agent makes in real time A lot of my work is data analysis, which means plots. When an agent is running on a remote box, there\u0026rsquo;s an annoying gap between \u0026ldquo;it made a figure\u0026rdquo; and \u0026ldquo;I can actually look at it.\u0026rdquo; So I put together a tiny markdown-based canvas that the agent writes plots into, so they show up live while it works — no heavy tooling, just a text file and a preview pane.\nKnowing which window needs me I usually run several agents at once across different VS Code windows — often over SSH to different machines. Sometimes I\u0026rsquo;d miss a window that\u0026rsquo;s asking me to approve something or needs my input. I wrote a little menubar monitor that watches all the windows and shows a colored dot when one hits a permission prompt or ends on a question, plus hotkeys to jump straight to it. It turns \u0026ldquo;check every window\u0026rdquo; into \u0026ldquo;glance at the menubar.\u0026rdquo; I\u0026rsquo;ve also shifted to using \u0026ldquo;auto\u0026rdquo; mode in Claude Code and \u0026ldquo;Approve for me\u0026rdquo; mode in Codex, which seem to strike a good balance between asking for permission every single time and going rogue and breaking things.\nOnboarding a larger audience to compute resources With some reflection, it feels to me the current biggest bottleneck — after coding agents largely solve coding (and Claude Science solves a lot of computational biology reasoning) — is that not everyone has access to the compute resources needed to perform heavy tasks. Most scientists around me have the knowledge about the biological question, the help from coding agents to set up bioinformatics pipelines, and usually better judgment than me to evaluate the analysis outcome. But in most places I\u0026rsquo;ve worked, computing resources are generally restricted to the computational department, which seems to be the bottleneck as of summer 2026. So, without going into too much detail, I pulled together the cloud setup documentation and worked with Claude to consolidate it into skills. The end product is something scientists point their local Claude Code app to, then watch it go through the steps to set up their instance, connect to storage for input files, and publish results. Nothing crazy, but this route of writing the setup docs to be executed by an agent on their behalf is pretty useful — a scientist can have an instance up and running, analysis-ready, within 10 minutes.\n","permalink":"https://yuejiang.org/2026/07/04/eight-months-into-vibe-coding/","summary":"\u003cp\u003eSince last winter, I started using Claude Code, then Codex, for my work — my current setup is a\nClaude Max 5x + ChatGPT Pro. They quickly became something I reach for every day. Below are a couple\nof notes on customizations I\u0026rsquo;ve picked up along the way. The first two are for VS Code — I know the\nCLI is where the bleeding edge lives and is the best supported, but for the analysis work I do I\nprefer being able to quickly interact with files and plots (usually on a remote EC2 instance).\u003c/p\u003e","title":"Eight months into vibe coding"},{"content":" tl;dr Why bother? .data Alternatives and problems !! + sym filter_ tl;dr 90% of my usecases when putting a function that uses tidyverse with non-standard evaluation (NSE) into an R package can be resolved by importFrom rlang .data. In these cases, I’m only looking for a way to be able to use tidyverse internally in the package, and have it pass the R package check, rather than allowing the user to supply function arguments in the NSE form.\nWhy bother? I don’t think there is any reason to specifically use tidyverse (dplyr, tidyr, ggplot2 and so on) in R packages, and I’d prefer base R solutions. However, if one already uses tidyverse on a daily basis and has created a bunch of functions that she wants to make into a package, this seems a reasonable usecase.\nHowever, I can’t use tidyverse functions in a package the same way as I use them interactively. Otherwise when I run package check (devtools::check() or R CMD check), it will complain because I have used NSE in my functions. For example, this function:\n#\u0026#39; Using non-standard evaluation in a function #\u0026#39; Results in NOTE: no visible binding for global variable \u0026quot;state\u0026quot; #\u0026#39; #\u0026#39; @param df A tibble #\u0026#39; @return A tibble #\u0026#39; @importFrom dplyr filter #\u0026#39; @export filter_nse \u0026lt;- function(df) { filter(df, state == \u0026quot;treated\u0026quot;) } when included in a dummy package pkgsandbox, leads to the following NOTE during package check.\nchecking R code for possible problems ... NOTE filter_nse: no visible binding for global variable ‘state’ Undefined global functions or variables: state .data To suppress it, to my knowledge the way to go as of now (end of 2018) is to use .data from rlang. The function looks like this:\n#\u0026#39; Using .data in a function, existing column #\u0026#39; #\u0026#39; @param df A tibble #\u0026#39; @return A tibble #\u0026#39; @importFrom dplyr filter #\u0026#39; @importFrom rlang .data #\u0026#39; @export filter_dotdata \u0026lt;- function(df) { filter(df, .data$state == \u0026quot;treated\u0026quot;) } Note that our filter_* functions are only intended to work with data Puromycin because of the specific column state:\nhead(Puromycin, n=4) ## conc rate state ## 1 0.02 76 treated ## 2 0.02 47 treated ## 3 0.06 97 treated ## 4 0.06 107 treated table(Puromycin$state) ## ## treated untreated ## 12 11 As expected, this works:\nres \u0026lt;- pkgsandbox::filter_dotdata(Puromycin) table(res$state) ## ## treated untreated ## 12 0 Alternatives and problems !! + sym After reading the “Programming with dplyr” tutorial, I had initially assumed I should always be using the !!sym(\u0026quot;column_name\u0026quot;) syntax. However it’s not necessarily the case when \u0026quot;column_name\u0026quot; is internal to the function, i.e. not supplied to the function as an argument. Consider this function:\n#\u0026#39; Using !! sym in a function, existing column #\u0026#39; #\u0026#39; @param df A tibble #\u0026#39; @return A tibble #\u0026#39; @importFrom dplyr filter #\u0026#39; @importFrom rlang !! sym #\u0026#39; @export filter_bangbangsym \u0026lt;- function(df) { filter(df, !!sym(\u0026quot;state\u0026quot;) == \u0026quot;treated\u0026quot;) } It works fine when df contains the state column:\nres \u0026lt;- pkgsandbox::filter_bangbangsym(Puromycin) table(res$state) ## ## treated untreated ## 12 0 However, the problem comes when the input data doesn’t have column state, but for some reason a variable state is available in the global environment. We expect this to fail because iris doesn’t have a state column:\nstate \u0026lt;- \u0026quot;North Carolina\u0026quot; pkgsandbox::filter_dotdata(iris) ## Column `state` not found in `.data` But the following doesn’t fail! And the result I get is dependent on the value of state in my global environment. This can be dangerous when the function and environment gets more complicated.\nstate \u0026lt;- \u0026quot;North Carolina\u0026quot; res_wrong_iris1 \u0026lt;- pkgsandbox::filter_bangbangsym(iris) nrow(res_wrong_iris1) # 0 because \u0026quot;North Carolina\u0026quot; != \u0026quot;treated\u0026quot; ## [1] 0 state \u0026lt;- \u0026quot;treated\u0026quot; res_wrong_iris2 \u0026lt;- pkgsandbox::filter_bangbangsym(iris) nrow(res_wrong_iris2) # this didn\u0026#39;t apply any filtering because \u0026quot;treated\u0026quot; == \u0026quot;treated\u0026quot; ## [1] 150 So indeed, these results silently depend on what’s there in the evironment where the function gets called. This is obviously not ideal, and the same problem happens when we ignore the package check note and use NSE in our package:\nstate \u0026lt;- \u0026quot;treated\u0026quot; res_wrong_iris3 \u0026lt;- pkgsandbox::filter_nse(iris) nrow(res_wrong_iris3) ## [1] 150 filter_ The other alternative is to use the underscore verbs, in this case, filter_. Both of the following works and passes package check: filter_(df, ~ state == \u0026quot;treated\u0026quot;) and filter_(Puromycin, \u0026quot;state == 'treated'\u0026quot;). But these *_ verbs are phasing out, along with aes_string from ggplot2. So I guess these are not recommended either.\n","permalink":"https://yuejiang.org/2018/11/18/using-tidyverse-tidyeval-in-r-packages/","summary":"\u003cdiv id=\"TOC\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#tldr\"\u003etl;dr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#why-bother\"\u003eWhy bother?\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#data\"\u003e\u003ccode\u003e.data\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#alternatives-and-problems\"\u003eAlternatives and problems\u003c/a\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#sym\"\u003e\u003ccode\u003e!!\u003c/code\u003e + \u003ccode\u003esym\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#filter_\"\u003e\u003ccode\u003efilter_\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\n\u003cdiv id=\"tldr\" class=\"section level1\"\u003e\n\u003ch1\u003etl;dr\u003c/h1\u003e\n\u003cp\u003e90% of my usecases when putting a function that uses tidyverse with non-standard evaluation (NSE) into an R package can be resolved by \u003ccode\u003eimportFrom rlang .data\u003c/code\u003e. In these cases, I’m only looking for a way to be able to use tidyverse \u003cem\u003einternally\u003c/em\u003e in the package, and have it pass the R package check, rather than allowing the user to supply function arguments in the NSE form.\u003c/p\u003e","title":"Very basic use of tidyverse in R packages"},{"content":" Example Prism files Main functionality Additional features Back in the early days of grad school I used to use Prism GraphPad a lot before switching to R. Prism is a great piece of software and I’ve seen scientists using them a lot. Recently I wanted to import a Prism .pzfx file into R, and as usual, I went to Google expecting there’ll be some readxl or readr equivalent for prism. Surprisingly, I didn’t find much more than this SO question. So, how do you import a prism file into R? The easiest way is probably exporting the prism file to a text file then read it into R. But this just doesn’t feel that good, right? So I started looking into the file structure of .pzfx files and tried to parse it by myself. Starting from Prism5, in addition to the binary file it also stores the data table in XML format which is possible to parse. After some trials and errors I made a little R package (github, CRAN) to read .pzfx files into R data frames. I’ll briefly document how it works here.\nExample Prism files As an example, I obtained some .pzfx files from this paper. The file for Fig 1 looks like this: Main functionality List tables from a .pzfx file:\nlibrary(pzfx) pzfx_tables(\u0026quot;../../static/data/benoit_elife_2017/elife-19535-fig1-data1-v1.pzfx\u0026quot;) ## [1] \u0026quot;relative larval obp6 expression\u0026quot; Read one specific table into R:\ndf1 \u0026lt;- read_pzfx(\u0026quot;../../static/data/benoit_elife_2017/elife-19535-fig1-data1-v1.pzfx\u0026quot;, table=\u0026quot;relative larval obp6 expression\u0026quot;) NAs will be added if the columns are of different lengths.\ndf1 ## WT bactWgm+ bactWgm- Sgm+ bactapo Apo ## 1 92 76.0 7.7 7.3 2.7 3.5 ## 2 73 67.5 5.5 12.1 3.6 6.0 ## 3 147 34.4 24.0 8.7 3.4 2.3 ## 4 80 107.0 15.6 4.5 6.4 8.4 ## 5 86 38.5 13.7 8.7 3.5 7.8 ## 6 143 89.0 NA 15.3 NA NA Additional features Prism allows user to strike out data. To accommodate this, an option strike_action is available in read_pzfx. One can choose to delete these values with strike_action=\u0026quot;exclude\u0026quot;, keep them with \u0026quot;keep\u0026quot;, or convert them to a trailing \u0026quot;*\u0026quot; with \u0026quot;star\u0026quot;. Note if strike_action=\u0026quot;star\u0026quot; the entire table will be converted to type character.\nSpecial formating of column names such as superscripts will be converted to regular strings.\nFor example (I striked out data myself from the original table) when the input looks like this: df2_e \u0026lt;- read_pzfx(\u0026quot;../../static/data/benoit_elife_2017/elife-19535-fig2-data1-v1_modified.pzfx\u0026quot;, table=1, strike_action=\u0026quot;exclude\u0026quot;) df2_e ## siOBP6 siGFP siOPB6R ## 1 NA 1420 1320 ## 2 1300 NA 1520 ## 3 1440 1370 NA ## 4 1040 NA 1420 ## 5 NA 1520 1400 ## 6 1390 NA 1490 ## 7 1490 1300 NA df2_k \u0026lt;- read_pzfx(\u0026quot;../../static/data/benoit_elife_2017/elife-19535-fig2-data1-v1_modified.pzfx\u0026quot;, table=1, strike_action=\u0026quot;keep\u0026quot;) df2_k ## siOBP6 siGFP siOPB6R ## 1 1420 1420 1320 ## 2 1300 1290 1520 ## 3 1440 1370 1300 ## 4 1040 1280 1420 ## 5 1360 1520 1400 ## 6 1390 1380 1490 ## 7 1490 1300 1440 df2_s \u0026lt;- read_pzfx(\u0026quot;../../static/data/benoit_elife_2017/elife-19535-fig2-data1-v1_modified.pzfx\u0026quot;, table=1, strike_action=\u0026quot;star\u0026quot;) df2_s ## siOBP6 siGFP siOPB6R ## 1 1420* 1420 1320 ## 2 1300 1290* 1520 ## 3 1440 1370 1300* ## 4 1040 1280* 1420 ## 5 1360* 1520 1400 ## 6 1390 1380* 1490 ## 7 1490 1300 1440* Like Excel, Prism also allows subcolumns. For example, you can have replicates in subcolumns: read_pzfx will automatically add _1, _2 etc to the original column name to account for sub columns if they are replicates.\ndf3 \u0026lt;- read_pzfx(\u0026quot;../../static/data/benoit_elife_2017/elife-19535-fig2-data3-v1.pzfx\u0026quot;) df3 ## OBP6-2_1 OBP6-2_2 OBP6-2_3 OBP6-2_4 OBP6-2_5 GFP-2_1 GFP-2_2 GFP-2_3 ## 1 2448 3192 3168 3456 4128 4576 5968 1408 ## GFP-2_4 GFP-2_5 OBP6R-2_1 OBP6R-2_2 OBP6R-2_3 OBP6R-2_4 OBP6R-2_5 ## 1 3392 2304 5212 3491 2710 4672 4339 ## OBP6-6_1 OBP6-6_2 OBP6-6_3 OBP6-6_4 OBP6-6_5 GFP-6_1 GFP-6_2 GFP-6_3 ## 1 94 56 84 138 204 101 126 76 ## GFP-6_4 GFP-6_5 OBP6R-6_1 OBP6R-6_2 OBP6R-6_3 OBP6R-6_4 OBP6R-6_5 ## 1 116 155 48 121 45 210 88 But also you can have subcolumns to mean different things, for example the first is the mean, second standard deviation, third the number of observations. In this case, trailing _MEAN, _SD, _N will be added.\ndf3_mod \u0026lt;- read_pzfx(\u0026quot;../../static/data/benoit_elife_2017/elife-19535-fig2-data3-v1_modified.pzfx\u0026quot;) df3_mod ## OBP6-2_MEAN OBP6-2_SD OBP6-2_N GFP-2_MEAN GFP-2_SD GFP-2_N OBP6R-2_MEAN ## 1 3278.4 604.6857 5 3529.6 1807.136 5 4084.8 ## OBP6R-2_SD OBP6R-2_N OBP6-6_MEAN OBP6-6_SD OBP6-6_N GFP-6_MEAN GFP-6_SD ## 1 990.2872 5 115.2 57.73387 5 114.8 29.32064 ## GFP-6_N OBP6R-6_MEAN OBP6R-6_SD OBP6R-6_N ## 1 5 102.4 67.79602 5 Currently read_pzfx works for all these alternative subcolumn types by Prism7:\n","permalink":"https://yuejiang.org/2018/08/02/pzfx/","summary":"\u003cdiv id=\"TOC\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#example-prism-files\"\u003eExample Prism files\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#main-functionality\"\u003eMain functionality\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#additional-features\"\u003eAdditional features\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\n\u003cp\u003e\u003cimg src=\"https://www.graphpad.com/www/graphpad/includes/themes/graphpad/images/mainpage-banner-graphpad-prism7.png\" style=\"width:100.0%\" /\u003e\u003c/p\u003e\n\u003cp\u003eBack in the early days of grad school I used to use Prism GraphPad a lot before switching to R. Prism is a great piece of software and I’ve seen scientists using them a lot. Recently I wanted to import a Prism \u003ccode\u003e.pzfx\u003c/code\u003e file into R, and as usual, I went to Google expecting there’ll be some \u003ccode\u003ereadxl\u003c/code\u003e or \u003ccode\u003ereadr\u003c/code\u003e equivalent for prism. Surprisingly, I didn’t find much more than \u003ca href=\"https://stackoverflow.com/questions/25506099/r-import-xml-from-graphpad-prism\"\u003ethis SO question\u003c/a\u003e. So, how do you import a prism file into R? The easiest way is probably exporting the prism file to a text file then read it into R. But this just doesn’t feel that good, right? So I started looking into the file structure of \u003ccode\u003e.pzfx\u003c/code\u003e files and tried to parse it by myself. Starting from Prism5, in addition to the binary file it also stores the data table in XML format which is possible to parse. After some trials and errors I made a little R package (\u003ca href=\"https://github.com/Yue-Jiang/pzfx\"\u003egithub\u003c/a\u003e, \u003ca href=\"https://CRAN.R-project.org/package=pzfx\"\u003eCRAN\u003c/a\u003e) to read \u003ccode\u003e.pzfx\u003c/code\u003e files into R data frames. I’ll briefly document how it works here.\u003c/p\u003e","title":"Reading Prism files into R"},{"content":" The data Make some plots Side Notes Alright, let’s see what we can do here. Too much iris could be boring, so I thought I’d contribute some data by myself. Since my fitbit stopped working early this year, I’ve switched back to my old Garmin forerunner 10, and it turns out that you can downlowd .csv file of previous activities through Garmin connect. Now that’s pretty cool - I’ll just use this data.\nThe data library(tidyverse) library(lubridate) library(plotly) input_df \u0026lt;- read_csv(\u0026quot;../../static/data/Activities.csv\u0026quot;, na=c(\u0026quot;--\u0026quot;), col_types=list( Time=col_character(), `Avg Pace`=col_character(), `Best Pace`=col_character())) This is a shabby Forerunner 10 so I don’t get all those fancy metrics such as heart rate and stride. So I’ll remove those useless empty columns. As always, date / time is a mess, so I’ll also manually clean up the duration and pace columns. Let’s see if DT works after cleaning up the data.\ndf \u0026lt;- input_df[c(\u0026quot;Date\u0026quot;, \u0026quot;Title\u0026quot;, \u0026quot;Distance\u0026quot;, \u0026quot;Time\u0026quot;, \u0026quot;Avg Pace\u0026quot;, \u0026quot;Best Pace\u0026quot;, \u0026quot;Elev Gain\u0026quot;, \u0026quot;Elev Loss\u0026quot;)] %\u0026gt;% # Time is the duration of runs. Make it numeric and rename to Duration separate(Time, c(\u0026quot;H\u0026quot;, \u0026quot;M\u0026quot;, \u0026quot;S\u0026quot;), sep=\u0026quot;:\u0026quot;, fill=\u0026quot;left\u0026quot;) %\u0026gt;% replace_na(list(H=\u0026quot;0\u0026quot;, M=\u0026quot;0\u0026quot;, S=\u0026quot;0\u0026quot;)) %\u0026gt;% mutate(Duration=as.numeric(H) + as.numeric(M) / 60 + as.numeric(S) / 3600) %\u0026gt;% select(-c(H, M, S)) %\u0026gt;% # Avg Pace should use unit minute separate(`Avg Pace`, c(\u0026quot;M\u0026quot;, \u0026quot;S\u0026quot;), sep=\u0026quot;:\u0026quot;, fill=\u0026quot;left\u0026quot;) %\u0026gt;% replace_na(list(M=\u0026quot;0\u0026quot;, S=\u0026quot;0\u0026quot;)) %\u0026gt;% mutate(`Avg Pace`=as.numeric(M) + as.numeric(S) / 60) %\u0026gt;% select(-c(M, S)) %\u0026gt;% # Best Pace should also use unit minute separate(`Best Pace`, c(\u0026quot;M\u0026quot;, \u0026quot;S\u0026quot;), sep=\u0026quot;:\u0026quot;, fill=\u0026quot;left\u0026quot;) %\u0026gt;% replace_na(list(M=\u0026quot;0\u0026quot;, S=\u0026quot;0\u0026quot;)) %\u0026gt;% mutate(`Best Pace`=as.numeric(M) + as.numeric(S) / 60) %\u0026gt;% select(-c(M, S)) %\u0026gt;% filter(Distance \u0026gt; 0) # there\u0026#39;s this one time I forgot to turn the watch off, and it ended up giving rediculous duration. Remove... df \u0026lt;- df[df$Date != as_datetime(\u0026quot;2017-07-26 08:29:41 UTC\u0026quot;), ] # Title contains location, parse it out df \u0026lt;- df %\u0026gt;% mutate(Location=gsub(\u0026quot; Running\u0026quot;, \u0026quot;\u0026quot;, Title)) %\u0026gt;% mutate(Location=ifelse(.$Location == \u0026quot;Untitled\u0026quot;, \u0026quot;Durham\u0026quot;, .$Location)) # That\u0026#39;s pretty much all the cleaning. DT::datatable(df, options = list(pageLength = 5, scrollX = TRUE)) Make some plots Has my distance improved? Looks like so.\nggplot(df, aes(Date, Distance)) + geom_point(aes(color=Location), alpha=0.8) + theme_light() Has my pace improved? Not very obvious. Anyways I just want to see if plotly works, so let’s add some text labels.\np \u0026lt;- ggplot(df, aes(Date, `Avg Pace`)) + geom_point(aes(color=Location, size=Distance, text=sprintf(\u0026quot;Distance: %skm\\nDuration: %sh\\nElev Gain: %sm\\nElev Loss: %sm\u0026quot;, round(Distance, 2), round(Duration,2), `Elev Gain`, `Elev Loss`)), alpha=0.5) + geom_smooth(method=\u0026quot;loess\u0026quot;, span=0.1, se=FALSE, color=\u0026quot;orangered\u0026quot;, size=0.4) + ylim(c(4, 10)) + theme_light() ggplotly(p, tooltip=c(\u0026quot;text\u0026quot;, \u0026quot;colour\u0026quot;)) So plotly does work.\nSide Notes blogdown is pretty easy to use. Yesterday I read the first chapter of the blogdown book, bought this domain name, registered an account at netlify, typed like 5 blogdown commands, pushed the site to github, linked the repo to netlify and that’s it. I still know nothing about Hugo, which I’m going to learn about in the second chapter of the blogdown book.\nI recently realized a lot of R related tools I use are authored by Yihui Xie, 谢益辉, including knitr, xaringan, and this blogdown. Looked through his blog over the past like 10 years. 这是个人才啊。\n","permalink":"https://yuejiang.org/2017/12/28/show-me-what-you-got/","summary":"\u003cscript src=\"/rmarkdown-libs/htmlwidgets/htmlwidgets.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"/rmarkdown-libs/jquery/jquery.min.js\"\u003e\u003c/script\u003e\n\u003clink href=\"/rmarkdown-libs/datatables-css/datatables-crosstalk.css\" rel=\"stylesheet\" /\u003e\n\u003cscript src=\"/rmarkdown-libs/datatables-binding/datatables.js\"\u003e\u003c/script\u003e\n\u003clink href=\"/rmarkdown-libs/dt-core/css/jquery.dataTables.min.css\" rel=\"stylesheet\" /\u003e\n\u003clink href=\"/rmarkdown-libs/dt-core/css/jquery.dataTables.extra.css\" rel=\"stylesheet\" /\u003e\n\u003cscript src=\"/rmarkdown-libs/dt-core/js/jquery.dataTables.min.js\"\u003e\u003c/script\u003e\n\u003clink href=\"/rmarkdown-libs/crosstalk/css/crosstalk.css\" rel=\"stylesheet\" /\u003e\n\u003cscript src=\"/rmarkdown-libs/crosstalk/js/crosstalk.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"/rmarkdown-libs/plotly-binding/plotly.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"/rmarkdown-libs/typedarray/typedarray.min.js\"\u003e\u003c/script\u003e\n\u003clink href=\"/rmarkdown-libs/plotly-htmlwidgets-css/plotly-htmlwidgets.css\" rel=\"stylesheet\" /\u003e\n\u003cscript src=\"/rmarkdown-libs/plotly-main/plotly-latest.min.js\"\u003e\u003c/script\u003e\n\n\u003cdiv id=\"TOC\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#the-data\"\u003eThe data\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#make-some-plots\"\u003eMake some plots\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#side-notes\"\u003eSide Notes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\n\u003cp\u003e\u003cimg src=\"https://media.giphy.com/media/26DOs997h6fgsCthu/giphy.gif\" /\u003e\u003c/p\u003e\n\u003cp\u003eAlright, let’s see what we can do here. Too much \u003ccode\u003eiris\u003c/code\u003e could be boring, so I thought I’d contribute some data by myself. Since my fitbit stopped working early this year, I’ve switched back to my old Garmin forerunner 10, and it turns out that you can downlowd .csv file of previous activities through Garmin connect. Now that’s pretty cool - I’ll just use this data.\u003c/p\u003e","title":"Show me what you got"},{"content":" Hello world! This is the end of 2017, and I’m on my winter break. So I thought I’d play with the blogdown package and see if I can come up with some sort of site from within R. So here I am.\n你好，世界\n","permalink":"https://yuejiang.org/2017/12/27/hello-world/","summary":"\u003cp\u003eHello world! This is the end of 2017, and I’m on my winter break. So I thought I’d play with the \u003ccode\u003eblogdown\u003c/code\u003e package and see if I can come up with some sort of site from within \u003ccode\u003eR\u003c/code\u003e. So here I am.\u003c/p\u003e\n\u003cp\u003e你好，世界\u003c/p\u003e","title":"Hello World"},{"content":" Neuroscientist by training — I did my PhD on the sense of smell, figuring out which odorant receptors respond to which odors. Since then I've worked in biopharma: first on the analytics side of immuno-oncology (CAR\u0026nbsp;T cell therapy), and now on machine learning and computational biology for gene therapy — designing guide RNAs for RNA editing and engineering AAV capsids.\nToday I look after the computational side of things at Shape Therapeutics.\nThis site is where I keep an occasional blog, my publications, and a short CV.\n生物制药从业者。念书的时候是研究嗅觉的。上班之后研究肿瘤免疫。现在研究基因治疗。\nFind me on GitHub · Google Scholar · LinkedIn.\n","permalink":"https://yuejiang.org/about/","summary":"\u003cstyle\u003e\n  .about { line-height: 1.65; }\n  .about p { margin: 0 0 1rem; }\n  .about .zh { opacity: .9; }\n  .about .links { margin-top: 1.6rem; font-size: .92rem; }\n  .about .links a { white-space: nowrap; }\n\u003c/style\u003e\n\n\u003cdiv class=\"about\"\u003e\n\n\u003cp\u003eNeuroscientist by training — I did my PhD on the sense of smell, figuring out which\nodorant receptors respond to which odors. Since then I've worked in biopharma: first on the\nanalytics side of immuno-oncology (CAR\u0026nbsp;T cell therapy), and now on machine learning and\ncomputational biology for gene therapy — designing guide RNAs for RNA editing and engineering\nAAV capsids.\u003c/p\u003e","title":"About"},{"content":" Machine Learning \u0026amp; Computational Biology Leader, Biotech\nrivehill@gmail.com · github.com/Yue-Jiang · Google Scholar · LinkedIn I've built and led ML/comp-bio teams that deploy models into therapeutic design pipelines and deliver analyses that inform manufacturing and clinical-trial decisions — across gene therapy (RNA editing, AAV capsid design) and CAR\u0026nbsp;T cell therapy, from pre-clinical through early clinical stages — while staying hands-on in the science.\nExperience Senior Principal Data Scientist → Director, Head of Machine Learning 2021 – present Shape Therapeutics Seattle, WA (remote from Los Angeles, CA) Data Scientist → Associate Director 2016 – 2021 Juno Therapeutics / Celgene / Bristol-Myers Squibb Seattle, WA Decision Support Engineering Analyst Intern 2015 Google [X] / Verily Life Sciences Mountain View, CA Education Ph.D., University Program of Genetics and Genomics 2009 – 2015 Duke UniversityDurham, NC M.S., Statistical Science (concurrent) 2013 – 2015 Duke UniversityDurham, NC B.S., School of Life Sciences 2004 – 2008 Peking UniversityBeijing, China Skills Languages \u0026amp; tools R, Python, PyTorch, Nextflow, AI coding agents (Claude, Codex), AWS (former Certified Solutions Architect – Associate) Domains Deep learning, generative models, statistical modeling, bioinformatics pipelines, nucleic-acid \u0026amp; protein sequence design, CMC/translational/clinical data analysis Patents Inventor on 15+ US patents and applications across RNA-editing guide design, AAV capsid engineering, and CAR-T cell therapy (4 issued; Shape Therapeutics, Juno/Celgene/BMS).\nSelected Publications Rett syndrome lifespan extension in mice via AI-guided ADAR editing Preprint, 2026 In-mouse efficacy and safety of the DeepREAD-designed MECP2 guide RNAs; restored MeCP2 and extended lifespan in a Rett-syndrome model.\nSavva YA, Booth BJ, Shumaker L, Fasnacht R, Burleigh SM, Jiang Y, Cao Y, Johnson B, Bagepalli LR, Golic F, Enger N, Feiring R, Sadowski A, Rich S, Lakshmanan A, Milani N, Chadwick EM, Hauskins C, Works MG, Huss DJ, Briggs AW, VanSchoiack AA. doi.org/10.64898/2026.06.23.734060\nHelix: a structure-aware deep learning model for accurate prediction of A-to-I RNA editing by endogenous ADARs Preprint, 2025 Transformer-based model for predicting RNA-editing outcomes; paired with DeepREAD's generative model via noisy-student distillation into DeepHelix, a unified predict-and-generate workflow for zero-shot guide-RNA design.\nCao Y, Bagepalli LR, Savva YA, Collins SM, Adams K, Letizia AJ, Boysen J, Abiar A, Edwards SR, Bussema L, Burleigh SM, Shumaker L, Hause RJ, Booth BJ*, Jiang Y*. *corresponding authors. doi.org/10.64898/2025.12.18.695251\nAn engineered U7 small nuclear RNA scaffold greatly increases ADAR-mediated programmable RNA base editing Nature Communications, 2025 Engineered snRNA expression scaffold that boosts editing efficiency; contributed bioinformatics analysis.\nByrne SM, Burleigh SM, Fragoza R, Jiang Y, Savva YA, Pabon R, Kania E, Rainaldi J, Portell A, Mali P, Briggs AW. doi.org/10.1038/s41467-025-60155-z\nGenerative machine learning of ADAR substrates for precise and efficient RNA editing Preprint, 2024 Bit-diffusion generative model (DeepREAD) for de novo guide-RNA design in RNA editing.\nJiang Y*, Bagepalli LR*, Banjanin BS, Savva YA, Cao Y, Guo L, Briggs AW, Booth B, Hause RJ. *equal contributions. doi.org/10.1101/2024.09.27.613923\nHigh-Throughput Single-Cell Sequencing with Linear Amplification Molecular Cell, 2019 Yin Y, Jiang Y, Lam KG, Berletch JB, Disteche CM, Noble WS, Steemers FJ, Camerini-Otero RD, Adey AC, Shendure JA. doi.org/10.1016/j.molcel.2019.08.002\nAnti-B-cell maturation antigen chimeric antigen receptor T cell function against multiple myeloma is enhanced in the presence of lenalidomide Molecular Cancer Therapeutics, 2019 Works M, Soni N, Hauskins C, Sierra C, Baturevych A, Jones JC, Curtis W, Carlson P, Johnstone TG, Kugler D, Hause RJ, Jiang Y, Wimberly L, Clouser CR, Jessup HK, Sather B, Salmon RA, Ports MO. doi.org/10.1158/1535-7163.MCT-18-1146\nMolecular profiling of activated olfactory neurons identifies odorant receptors for odors in vivo Nature Neuroscience, 2015 Jiang Y, Gong N, Hu X, Ni J, Pasi R, Matsunami H. doi.org/10.1038/nn.4104\nInvited Talks Computational RNA Design \u0026amp; Delivery Summit, Boston, 2024.\n","permalink":"https://yuejiang.org/cv/","summary":"\u003cstyle\u003e\n  .cv { line-height: 1.5; }\n  .cv .cv-tagline { color: #0096FF; font-weight: 600; font-size: 1.05rem; margin: 0 0 .4rem; }\n  .cv .cv-contact { font-size: .9rem; opacity: .8; margin-bottom: 1rem; }\n  .cv .cv-contact a { white-space: nowrap; }\n  .cv .cv-summary { margin: 0 0 1.4rem; }\n  .cv h2 {\n    color: #0096FF; font-size: 1.25rem; margin: 1.6rem 0 .3rem;\n    padding-bottom: .2rem; border-bottom: 1px solid rgba(128,128,128,.3);\n  }\n  .cv .cv-entry { margin: .7rem 0; }\n  .cv .cv-row { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }\n  .cv .cv-role { font-weight: 700; }\n  .cv .cv-org { font-style: italic; }\n  .cv .cv-meta { opacity: .6; white-space: nowrap; }\n  .cv .cv-skills { width: 100%; border-collapse: collapse; }\n  .cv .cv-skills th { text-align: left; vertical-align: top; padding: .3rem .8rem .3rem 0; white-space: nowrap; }\n  .cv .cv-skills td { padding: .3rem 0; }\n  .cv .cv-pub { margin: .7rem 0; }\n  .cv .cv-pub-title { font-weight: 600; }\n  .cv .cv-pub-venue { opacity: .6; white-space: nowrap; }\n  .cv .cv-pub-note { font-size: .88rem; font-style: italic; opacity: .75; margin: .1rem 0; }\n  .cv .cv-pub-authors { font-size: .88rem; opacity: .85; }\n  @media (max-width: 500px) { .cv .cv-meta { white-space: normal; } }\n\u003c/style\u003e\n\n\u003cdiv class=\"cv\"\u003e\n\n\u003cp class=\"cv-tagline\"\u003eMachine Learning \u0026amp; Computational Biology Leader, Biotech\u003c/p\u003e","title":"CV"},{"content":" Journal Articles \u0026amp; Preprints Rett syndrome lifespan extension in mice via AI-guided ADAR editing Savva YA, Booth BJ, Shumaker L, Fasnacht R, Burleigh SM, Jiang Y, Cao Y, Johnson B, Bagepalli LR, Golic F, Enger N, Feiring R, Sadowski A, Rich S, Lakshmanan A, Milani N, Chadwick EM, Hauskins C, Works MG, Huss DJ, Briggs AW, VanSchoiack AA. Preprint, 2026. doi.org/10.64898/2026.06.23.734060 Helix: a structure-aware deep learning model for accurate prediction of A-to-I RNA editing by endogenous ADARs Cao Y, Bagepalli LR, Savva YA, Collins SM, Adams K, Letizia AJ, Boysen J, Abiar A, Edwards SR, Bussema L, Burleigh SM, Shumaker L, Hause RJ, Booth BJ*, Jiang Y*. *corresponding authors. Preprint, 2025. doi.org/10.64898/2025.12.18.695251 An engineered U7 small nuclear RNA scaffold greatly increases ADAR-mediated programmable RNA base editing Byrne SM, Burleigh SM, Fragoza R, Jiang Y, Savva YA, Pabon R, Kania E, Rainaldi J, Portell A, Mali P, Briggs AW. Nature Communications, 2025. doi.org/10.1038/s41467-025-60155-z Generative machine learning of ADAR substrates for precise and efficient RNA editing Jiang Y*, Bagepalli LR*, Banjanin BS, Savva YA, Cao Y, Guo L, Briggs AW, Booth B, Hause RJ. *equal contributions. Preprint, 2024. doi.org/10.1101/2024.09.27.613923 B cell mobilization, dissemination, fine tuning of local antigen specificity and isotype selection in asthma Ohm-Laursen L, Meng H, Hoehn KB, Nouri N, Jiang Y, Clouser C, Johnstone TG, Hause R, Sandhar BS, Upton NEG, Chevretton EB, Lakhani R, Corrigan CJ, Kleinstein SH, Gould HJ. Frontiers in Immunology, 12: 702074, 2021. doi.org/10.3389/fimmu.2021.702074 High-Throughput Single-Cell Sequencing with Linear Amplification Yin Y, Jiang Y, Lam KG, Berletch JB, Disteche CM, Noble WS, Steemers FJ, Camerini-Otero RD, Adey AC, Shendure JA. Molecular Cell, 2019. doi.org/10.1016/j.molcel.2019.08.002 Anti-B-cell maturation antigen chimeric antigen receptor T cell function against multiple myeloma is enhanced in the presence of lenalidomide Works M, Soni N, Hauskins C, Sierra C, Baturevych A, Jones JC, Curtis W, Carlson P, Johnstone TG, Kugler D, Hause RJ, Jiang Y, Wimberly L, Clouser CR, Jessup HK, Sather B, Salmon RA, Ports MO. Molecular Cancer Therapeutics, 2019. doi.org/10.1158/1535-7163.MCT-18-1146 Variation in olfactory neuron repertoires is genetically controlled and environmentally modulated Ibarra-Soria X, Nakahara TS, Lilue J, Jiang Y, Trimmer C, Souza MA, Netto PH, Ikegami K, Murphy NR, Kusma M, Kirton A, Saraiva LR, Keane TM, Matsunami H, Mainland JD, Papes F, Logan DW. eLife, 6: e21476, 2017. doi.org/10.7554/eLife.21476 Molecular profiling of activated olfactory neurons identifies odorant receptors for odors in vivo Jiang Y, Gong N, Hu X, Ni J, Pasi R, Matsunami H. Nature Neuroscience, 18: 1446-1454, 2015. doi.org/10.1038/nn.4104 Muscarinic acetylcholine receptor M3 modulates odorant receptor activity via inhibition of β-arrestin-2 recruitment Jiang Y*, Li Y*, Tian H, Ma M, Matsunami H. *equal contributions. Nature Communications, 6: 6448, 2015. doi.org/10.1038/ncomms7448 Mammalian odorant receptors: functional evolution and variation Jiang Y, Matsunami H. Current Opinion in Neurobiology, 34: 54-60, 2015. doi.org/10.1016/j.conb.2015.01.014 Calreticulin: roles in cell-surface protein expression Jiang Y, Dey S, Matsunami H. Membranes, 4: 630-641, 2014. doi.org/10.3390/membranes4030630 Astringency: a more stringent definition Jiang Y, Gong N, Matsunami H. Chemical Senses, 39: 467-469, 2014. doi.org/10.1093/chemse/bju021 Endocytic sorting and recycling require membrane phosphatidylserine asymmetry maintained by TAT-1/CHAT-1 Chen B, Jiang Y, Zeng S, Yan J, Li X, Zhang Y, Zou W, Wang X. PLoS Genetics, 6: e1001235, 2010. doi.org/10.1371/journal.pgen.1001235 Conference Proceedings \u0026amp; Abstracts A Brain-Targeting AAV5-Based Capsid Recognizes the Transferrin Receptor of Both Humans and NHPs to Cross the Blood-Brain-Barrier in vivo Dunn A, Jiang Y, Johnsen W, Lakshmanan A, Milani N, Burleigh S, Golic F, Shannon S, Johnson B, Rainaldi J, Mali P, Hauskins C, VanSchoiack A, Briggs A, Sullivan R. American Society of Gene \u0026amp; Cell Therapy (ASGCT) Annual Meeting, Boston, 2026 (accepted; to be presented). Systemically delivered AAV5-based capsid variants enable up to 88% targeted RNA editing in primate brain Sullivan R, Stein K, Tome J, Dunn A, Richardson C, Rubin V, Cates E, Bazinet J, Lara M, Edwards S, Koday M, Kall S, Bussema L, Shannon S, Fliss P, Gniffke T, Lloyd R, Olson R, Adams H, Johnsen W, Salukhe I, Thuline E, Jiang Y, Read D, Sorg K, Han W, Banjanin B, Kania E, Johnson B, Park-Oates M, Hauskins C, Long T, Hause R, Briggs A. Molecular Therapy, 33(4), 2025 (ASGCT Annual Meeting abstract). Massive Diversity Capsid Screening and Machine Learning Identify Next-Generation AAV for Targeted Tissue Biodistribution Packard TA, Stein KC, Cates EA, Bazinet JE, Han W, Jiang Y, Andrade MF, Long TJ, Huss DJ, Hause RJ, Briggs AW. Molecular Therapy, 31(4): 178, 2023 (ASGCT Annual Meeting abstract). Generative Machine Learning Enables De Novo Guide RNA Design for Precise RNA Editing Jiang Y, Bagepalli L, Banjanin B, Rupp K, Savva Y, Booth B, Hause R. Molecular Therapy, 31(4): 263–264, 2023 (ASGCT Annual Meeting abstract). Engineering CNS-targeted AAV capsids from massively diverse libraries using machine learning Huss DJ, Packard TA, Cates E, Lee M, Bazinet JE, Stein KC, Jiang Y, Andrade MFL, Long TJ, Vigneault F, Hause R, Briggs AW. Human Gene Therapy, 33(23–24): A32–A33, 2022 (ESGCT Annual Congress abstract). Engineering AAV Capsids with CNS-Targeted Biodistribution from Massively Diverse Libraries Using Machine Learning Packard TA, Cates E, Bazinet J, Stein KC, Jiang Y, Lee M, Andrade MFL, Long TJ, Huss DJ, Hause R, Briggs AW. Molecular Therapy, 30(4): 69, 2022 (ASGCT Annual Meeting abstract). Characteristics of post-infusion chimeric antigen receptor (CAR) T cells and endogenous T cells associated with early and long-term response in lisocabtagene maraleucel (liso-cel)-treated relapsed or refractory (R/R) large B-cell lymphoma (LBCL) Thorpe J, Jiang Y, Rytlewski JA, Kostic A, Kim Y, Peiser L. Blood, 138: 3834, 2021 (ASH Annual Meeting abstract). Treatment with CC-99282 enhances antitumor function of the anti-CD19 CAR T cell therapy lisocabtagene maraleucel (liso-cel) Brahmandam A, Qin J, Kim S, Jiang Y, Barajas B, Carrancio S, Peiser L. Journal for ImmunoTherapy of Cancer, 9(Suppl 2): A117, 2021 (SITC Annual Meeting abstract). Effects of prior alkylating therapies on preinfusion patient characteristics and starting material for CAR T cell product manufacturing in late-line multiple myeloma Rytlewski J, Madduri D, Fuller J, Campbell TB, Mashadi-Hossein A, Thompson EG, Jiang Y, Martin N, Sangurdekar D, Finney O, Bitter H, Agarwal A, Kaiser S, Hege K, Hause RJ Jr. Blood, 136: 7–8, 2020 (ASH Annual Meeting abstract). Treatment with Iberdomide Enhances Antitumor Function of the Anti-CD19 Chimeric Antigen Receptor (CAR) T Cell Therapy Lisocabtagene Maraleucel (liso-cel) Qin J, Jiang Y, Barajas B, Kasibhatla S, Ports M. Molecular Therapy, 28(4): 499–500, 2020 (ASGCT Annual Meeting abstract). Defined cell composition and precise control over JCAR017 dose enables identification of relationships between chimeric antigen receptor T cell product attributes, pharmacokinetics, and clinical endpoints in non-Hodgkin lymphoma Larson RP, Devries T, Jiang Y, Hause RJ, Getto R, Christin B, Yee NK, Bowen M, Weber C, Li D, Albertson T, Sutherland CL, Ramsborg CG. American Association for Cancer Research (AACR) Annual Meeting, 2018. Inhibiting TGFβ signaling in CAR T-cells may significantly enhance efficacy of tumor immunotherapy Vong Q, Nye C, Hause RJ, Clouser C, Jones J, Burleigh S, Borges CM, Chin SY, Marco E, Barrera L, Da Silva J, Harbinski F, Giannoukos G, Dhanapal V, Jiang Y, Salmon R, Wilson CJ, Myer VE, Welstead GG, Bond CJ, Sather BD. American Society of Hematology (ASH) 59th Annual Meeting, 2017. Lenalidomide enhances anti-BCMA chimeric antigen receptor T cell function against multiple myeloma Works M, Soni N, Hauskins C, Sierra C, Baturevych A, Jones J, Curtis W, Johnstone T, Kugler D, Jiang Y, Hause RJ, Sather BD, Salmon R, Ports M. American Society of Hematology (ASH) 59th Annual Meeting, 2017. A syngeneic mouse model of CAR-T mediated toxicity and neuroinflammation Chadwick E, Noll A, Jiang Y, Hause RJ, Ponce R, Levitsky H, Salmon R. The Society for Immunotherapy of Cancer's (SITC) 32nd Annual Meeting, 2017. IDO1-mediated tryptophan depletion potently inhibits CAR-T functionality as part of a CAR-T driven adaptive immune resistance response in the tumor microenvironment Thomas EP, Jessup HK, Qin J, Jiang Y, Swanson C, Baturevych A, Swenson S, Prentice K, Hause RJ, Levitsky H, Ports M. The Society for Immunotherapy of Cancer's (SITC) 32nd Annual Meeting, 2017. Discovery of rare T cell receptors of therapeutic value by simultaneous detection of sequence, antigen specificity and cell phenotype from millions of single cells in emulsion Goldfless SJ, Croft A, Brandt CS, Jeffery EW, Connor KL, Clouser CR, Jiang Y, Johnstone TG, Koppstein D, Nguyen H, Peper H, Toy D, Sissons J, Hause RJ, Briggs AW, Vigneault F. Keystone Symposia on Molecular and Cellular Biology, 2017. ","permalink":"https://yuejiang.org/publications/","summary":"\u003cstyle\u003e\n  .pubs { line-height: 1.5; }\n  .pubs h2 {\n    color: #0096FF; font-size: 1.25rem; margin: 1.8rem 0 .4rem;\n    padding-bottom: .2rem; border-bottom: 1px solid rgba(128,128,128,.3);\n  }\n  .pubs .pub { margin: .9rem 0; }\n  .pubs .pub-title { font-weight: 600; }\n  .pubs .pub-authors { font-size: .9rem; opacity: .85; }\n  .pubs .pub-venue { font-size: .9rem; opacity: .7; font-style: italic; }\n  .pubs .pub-venue a { font-style: normal; white-space: nowrap; }\n  .pubs .note { font-style: italic; opacity: .7; }\n\u003c/style\u003e\n\n\u003cdiv class=\"pubs\"\u003e\n\n\u003ch2\u003eJournal Articles \u0026amp; Preprints\u003c/h2\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eRett syndrome lifespan extension in mice via AI-guided ADAR editing\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eSavva YA, Booth BJ, Shumaker L, Fasnacht R, Burleigh SM, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Cao Y, Johnson B, Bagepalli LR, Golic F, Enger N, Feiring R, Sadowski A, Rich S, Lakshmanan A, Milani N, Chadwick EM, Hauskins C, Works MG, Huss DJ, Briggs AW, VanSchoiack AA.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003ePreprint, 2026. \u003ca href=\"https://doi.org/10.64898/2026.06.23.734060\"\u003edoi.org/10.64898/2026.06.23.734060\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eHelix: a structure-aware deep learning model for accurate prediction of A-to-I RNA editing by endogenous ADARs\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eCao Y, Bagepalli LR, Savva YA, Collins SM, Adams K, Letizia AJ, Boysen J, Abiar A, Edwards SR, Bussema L, Burleigh SM, Shumaker L, Hause RJ, Booth BJ*, \u003cstrong\u003eJiang Y\u003c/strong\u003e*. \u003cspan class=\"note\"\u003e*corresponding authors.\u003c/span\u003e\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003ePreprint, 2025. \u003ca href=\"https://doi.org/10.64898/2025.12.18.695251\"\u003edoi.org/10.64898/2025.12.18.695251\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eAn engineered U7 small nuclear RNA scaffold greatly increases ADAR-mediated programmable RNA base editing\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eByrne SM, Burleigh SM, Fragoza R, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Savva YA, Pabon R, Kania E, Rainaldi J, Portell A, Mali P, Briggs AW.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eNature Communications, 2025. \u003ca href=\"https://doi.org/10.1038/s41467-025-60155-z\"\u003edoi.org/10.1038/s41467-025-60155-z\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eGenerative machine learning of ADAR substrates for precise and efficient RNA editing\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003e\u003cstrong\u003eJiang Y\u003c/strong\u003e*, Bagepalli LR*, Banjanin BS, Savva YA, Cao Y, Guo L, Briggs AW, Booth B, Hause RJ. \u003cspan class=\"note\"\u003e*equal contributions.\u003c/span\u003e\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003ePreprint, 2024. \u003ca href=\"https://doi.org/10.1101/2024.09.27.613923\"\u003edoi.org/10.1101/2024.09.27.613923\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eB cell mobilization, dissemination, fine tuning of local antigen specificity and isotype selection in asthma\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eOhm-Laursen L, Meng H, Hoehn KB, Nouri N, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Clouser C, Johnstone TG, Hause R, Sandhar BS, Upton NEG, Chevretton EB, Lakhani R, Corrigan CJ, Kleinstein SH, Gould HJ.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eFrontiers in Immunology, 12: 702074, 2021. \u003ca href=\"https://doi.org/10.3389/fimmu.2021.702074\"\u003edoi.org/10.3389/fimmu.2021.702074\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eHigh-Throughput Single-Cell Sequencing with Linear Amplification\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eYin Y, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Lam KG, Berletch JB, Disteche CM, Noble WS, Steemers FJ, Camerini-Otero RD, Adey AC, Shendure JA.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eMolecular Cell, 2019. \u003ca href=\"https://doi.org/10.1016/j.molcel.2019.08.002\"\u003edoi.org/10.1016/j.molcel.2019.08.002\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eAnti-B-cell maturation antigen chimeric antigen receptor T cell function against multiple myeloma is enhanced in the presence of lenalidomide\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eWorks M, Soni N, Hauskins C, Sierra C, Baturevych A, Jones JC, Curtis W, Carlson P, Johnstone TG, Kugler D, Hause RJ, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Wimberly L, Clouser CR, Jessup HK, Sather B, Salmon RA, Ports MO.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eMolecular Cancer Therapeutics, 2019. \u003ca href=\"https://doi.org/10.1158/1535-7163.MCT-18-1146\"\u003edoi.org/10.1158/1535-7163.MCT-18-1146\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eVariation in olfactory neuron repertoires is genetically controlled and environmentally modulated\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eIbarra-Soria X, Nakahara TS, Lilue J, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Trimmer C, Souza MA, Netto PH, Ikegami K, Murphy NR, Kusma M, Kirton A, Saraiva LR, Keane TM, Matsunami H, Mainland JD, Papes F, Logan DW.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eeLife, 6: e21476, 2017. \u003ca href=\"https://doi.org/10.7554/eLife.21476\"\u003edoi.org/10.7554/eLife.21476\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eMolecular profiling of activated olfactory neurons identifies odorant receptors for odors \u003cem\u003ein vivo\u003c/em\u003e\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003e\u003cstrong\u003eJiang Y\u003c/strong\u003e, Gong N, Hu X, Ni J, Pasi R, Matsunami H.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eNature Neuroscience, 18: 1446-1454, 2015. \u003ca href=\"https://doi.org/10.1038/nn.4104\"\u003edoi.org/10.1038/nn.4104\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eMuscarinic acetylcholine receptor M3 modulates odorant receptor activity via inhibition of β-arrestin-2 recruitment\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003e\u003cstrong\u003eJiang Y\u003c/strong\u003e*, Li Y*, Tian H, Ma M, Matsunami H. \u003cspan class=\"note\"\u003e*equal contributions.\u003c/span\u003e\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eNature Communications, 6: 6448, 2015. \u003ca href=\"https://doi.org/10.1038/ncomms7448\"\u003edoi.org/10.1038/ncomms7448\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eMammalian odorant receptors: functional evolution and variation\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003e\u003cstrong\u003eJiang Y\u003c/strong\u003e, Matsunami H.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eCurrent Opinion in Neurobiology, 34: 54-60, 2015. \u003ca href=\"https://doi.org/10.1016/j.conb.2015.01.014\"\u003edoi.org/10.1016/j.conb.2015.01.014\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eCalreticulin: roles in cell-surface protein expression\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003e\u003cstrong\u003eJiang Y\u003c/strong\u003e, Dey S, Matsunami H.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eMembranes, 4: 630-641, 2014. \u003ca href=\"https://doi.org/10.3390/membranes4030630\"\u003edoi.org/10.3390/membranes4030630\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eAstringency: a more stringent definition\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003e\u003cstrong\u003eJiang Y\u003c/strong\u003e, Gong N, Matsunami H.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eChemical Senses, 39: 467-469, 2014. \u003ca href=\"https://doi.org/10.1093/chemse/bju021\"\u003edoi.org/10.1093/chemse/bju021\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eEndocytic sorting and recycling require membrane phosphatidylserine asymmetry maintained by TAT-1/CHAT-1\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eChen B, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Zeng S, Yan J, Li X, Zhang Y, Zou W, Wang X.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003ePLoS Genetics, 6: e1001235, 2010. \u003ca href=\"https://doi.org/10.1371/journal.pgen.1001235\"\u003edoi.org/10.1371/journal.pgen.1001235\u003c/a\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003ch2\u003eConference Proceedings \u0026amp; Abstracts\u003c/h2\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eA Brain-Targeting AAV5-Based Capsid Recognizes the Transferrin Receptor of Both Humans and NHPs to Cross the Blood-Brain-Barrier \u003cem\u003ein vivo\u003c/em\u003e\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eDunn A, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Johnsen W, Lakshmanan A, Milani N, Burleigh S, Golic F, Shannon S, Johnson B, Rainaldi J, Mali P, Hauskins C, VanSchoiack A, Briggs A, Sullivan R.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eAmerican Society of Gene \u0026amp; Cell Therapy (ASGCT) Annual Meeting, Boston, 2026 (accepted; to be presented).\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eSystemically delivered AAV5-based capsid variants enable up to 88% targeted RNA editing in primate brain\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eSullivan R, Stein K, Tome J, Dunn A, Richardson C, Rubin V, Cates E, Bazinet J, Lara M, Edwards S, Koday M, Kall S, Bussema L, Shannon S, Fliss P, Gniffke T, Lloyd R, Olson R, Adams H, Johnsen W, Salukhe I, Thuline E, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Read D, Sorg K, Han W, Banjanin B, Kania E, Johnson B, Park-Oates M, Hauskins C, Long T, Hause R, Briggs A.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eMolecular Therapy, 33(4), 2025 (ASGCT Annual Meeting abstract).\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eMassive Diversity Capsid Screening and Machine Learning Identify Next-Generation AAV for Targeted Tissue Biodistribution\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003ePackard TA, Stein KC, Cates EA, Bazinet JE, Han W, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Andrade MF, Long TJ, Huss DJ, Hause RJ, Briggs AW.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eMolecular Therapy, 31(4): 178, 2023 (ASGCT Annual Meeting abstract).\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eGenerative Machine Learning Enables De Novo Guide RNA Design for Precise RNA Editing\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003e\u003cstrong\u003eJiang Y\u003c/strong\u003e, Bagepalli L, Banjanin B, Rupp K, Savva Y, Booth B, Hause R.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eMolecular Therapy, 31(4): 263–264, 2023 (ASGCT Annual Meeting abstract).\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eEngineering CNS-targeted AAV capsids from massively diverse libraries using machine learning\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eHuss DJ, Packard TA, Cates E, Lee M, Bazinet JE, Stein KC, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Andrade MFL, Long TJ, Vigneault F, Hause R, Briggs AW.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eHuman Gene Therapy, 33(23–24): A32–A33, 2022 (ESGCT Annual Congress abstract).\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eEngineering AAV Capsids with CNS-Targeted Biodistribution from Massively Diverse Libraries Using Machine Learning\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003ePackard TA, Cates E, Bazinet J, Stein KC, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Lee M, Andrade MFL, Long TJ, Huss DJ, Hause R, Briggs AW.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eMolecular Therapy, 30(4): 69, 2022 (ASGCT Annual Meeting abstract).\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eCharacteristics of post-infusion chimeric antigen receptor (CAR) T cells and endogenous T cells associated with early and long-term response in lisocabtagene maraleucel (liso-cel)-treated relapsed or refractory (R/R) large B-cell lymphoma (LBCL)\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eThorpe J, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Rytlewski JA, Kostic A, Kim Y, Peiser L.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eBlood, 138: 3834, 2021 (ASH Annual Meeting abstract).\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eTreatment with CC-99282 enhances antitumor function of the anti-CD19 CAR T cell therapy lisocabtagene maraleucel (liso-cel)\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eBrahmandam A, Qin J, Kim S, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Barajas B, Carrancio S, Peiser L.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eJournal for ImmunoTherapy of Cancer, 9(Suppl 2): A117, 2021 (SITC Annual Meeting abstract).\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eEffects of prior alkylating therapies on preinfusion patient characteristics and starting material for CAR T cell product manufacturing in late-line multiple myeloma\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eRytlewski J, Madduri D, Fuller J, Campbell TB, Mashadi-Hossein A, Thompson EG, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Martin N, Sangurdekar D, Finney O, Bitter H, Agarwal A, Kaiser S, Hege K, Hause RJ Jr.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eBlood, 136: 7–8, 2020 (ASH Annual Meeting abstract).\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eTreatment with Iberdomide Enhances Antitumor Function of the Anti-CD19 Chimeric Antigen Receptor (CAR) T Cell Therapy Lisocabtagene Maraleucel (liso-cel)\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eQin J, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Barajas B, Kasibhatla S, Ports M.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eMolecular Therapy, 28(4): 499–500, 2020 (ASGCT Annual Meeting abstract).\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eDefined cell composition and precise control over JCAR017 dose enables identification of relationships between chimeric antigen receptor T cell product attributes, pharmacokinetics, and clinical endpoints in non-Hodgkin lymphoma\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eLarson RP, Devries T, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Hause RJ, Getto R, Christin B, Yee NK, Bowen M, Weber C, Li D, Albertson T, Sutherland CL, Ramsborg CG.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eAmerican Association for Cancer Research (AACR) Annual Meeting, 2018.\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eInhibiting TGFβ signaling in CAR T-cells may significantly enhance efficacy of tumor immunotherapy\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eVong Q, Nye C, Hause RJ, Clouser C, Jones J, Burleigh S, Borges CM, Chin SY, Marco E, Barrera L, Da Silva J, Harbinski F, Giannoukos G, Dhanapal V, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Salmon R, Wilson CJ, Myer VE, Welstead GG, Bond CJ, Sather BD.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eAmerican Society of Hematology (ASH) 59th Annual Meeting, 2017.\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eLenalidomide enhances anti-BCMA chimeric antigen receptor T cell function against multiple myeloma\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eWorks M, Soni N, Hauskins C, Sierra C, Baturevych A, Jones J, Curtis W, Johnstone T, Kugler D, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Hause RJ, Sather BD, Salmon R, Ports M.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eAmerican Society of Hematology (ASH) 59th Annual Meeting, 2017.\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eA syngeneic mouse model of CAR-T mediated toxicity and neuroinflammation\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eChadwick E, Noll A, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Hause RJ, Ponce R, Levitsky H, Salmon R.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eThe Society for Immunotherapy of Cancer's (SITC) 32nd Annual Meeting, 2017.\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eIDO1-mediated tryptophan depletion potently inhibits CAR-T functionality as part of a CAR-T driven adaptive immune resistance response in the tumor microenvironment\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eThomas EP, Jessup HK, Qin J, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Swanson C, Baturevych A, Swenson S, Prentice K, Hause RJ, Levitsky H, Ports M.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eThe Society for Immunotherapy of Cancer's (SITC) 32nd Annual Meeting, 2017.\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"pub\"\u003e\n  \u003cdiv class=\"pub-title\"\u003eDiscovery of rare T cell receptors of therapeutic value by simultaneous detection of sequence, antigen specificity and cell phenotype from millions of single cells in emulsion\u003c/div\u003e\n  \u003cdiv class=\"pub-authors\"\u003eGoldfless SJ, Croft A, Brandt CS, Jeffery EW, Connor KL, Clouser CR, \u003cstrong\u003eJiang Y\u003c/strong\u003e, Johnstone TG, Koppstein D, Nguyen H, Peper H, Toy D, Sissons J, Hause RJ, Briggs AW, Vigneault F.\u003c/div\u003e\n  \u003cdiv class=\"pub-venue\"\u003eKeystone Symposia on Molecular and Cellular Biology, 2017.\u003c/div\u003e\n\u003c/div\u003e\n\n\u003c/div\u003e","title":"Publications"}]