10,000 Matching Annotations
  1. Sep 2022
    1. Codemeshing use the way people already speak and write and help them be more rhetori-cally effective. It do include teaching some punctuation rules, attention to mean-ing and word choice, and various kinds of sentence structures and some standard

      I like that he said "some standard English", I also really like the term code meshing and I agree with the concept.

    2. Code meshing be everywhere. It be used by all types of people. It allow writ-ers and speakers to bridge multiple codes and modes of expression

      Code meshing also adds individuality.

    3. But since so many teachers be jackin up code switching with they “speak this way atschool and a different way at home,” we need a new term. I call it CODE MESHING!

      Being forced to code switch can Harm your Creativity and it ends up being sort of like a "Borrowed Voice" Instead of your own voice and creativity shining.

    1. For these scholars, liberalism is not so much a set of political ideologies or affiliations as a flexible, somewhat amorphous term that deliberately evokes more conventional meanings in order to describe how notions of freedom are used strategically to actualize and monitor political subjects.

      The idea of journalism is that it's all about these journalists expressing the truth with a moral code they have to follow. If liberalism enters the picture, then [I feel] that it'll cause a rift pitting a belief with a set of moral codes versus a belief that follows freedom and independence [since that's what I think of liberalism].

    1. Attributes

      Each instance can have attributes, sometimes called instance variables. These are just like other variables in Python. We use assignment statements, with an =, to assign values to them. Thus, if alex and tess are variables bound to two instances of the class Turtle, we can assign values to an attribute, and we can look up those attributes. For example, the following code would print out 1100.

      ex:

      alex.price = 50 tess.price = 600 print(alex.price + tess.price)

    1. “The road to regulation hell is paved with the EU’s good intentions,” Etzioni said. “Open source developers should not be subject to the same burden as those developing commercial software. It should always be the case that free software can be provided ‘as is’ — consider the case of a single student developing an AI capability; they cannot afford to comply with EU regulations and may be forced not to distribute their software, thereby having a chilling effect on academic progress and on reproducibility of scientific results.”

      This is a very strange, axiomatic argument. That open source should be exempt because .... open source. There are no reasons to lift regulations meant to limit harms for a certain code production model, even if it's beneficial in itself.

    1. The researchers categorized vocabulary knowledge into vocabulary recognition and vocabulary recall. Instead of using Perez et al.’s [24] categorization, we decided to code the type of vocabulary knowledge in our meta-analysis into receptive and productive based on Nation [1], who defined receptive vocabulary knowledge as “perceiving the form of a word while listening or reading and retrieving its meaning”, and productive vocabulary knowledge as “wanting to express a meaning through speaking or writing and retrieving and producing the appropriate spoken or written word form”.

      რას ნიშნავს receptive და productive ტიპის ლექსიკა? receptive — ფორმის აღქმა და შინაარსის გაგება. productive — სიტყვის გამოყენება წერით, ან ზეპირ მეტყველებაში.

    1. The real central control point in Ethereum is Infura — an interface to the Ethereum blockchain owned by ConsenSys. Almost 100% of useful Ethereum transactions go through Infura, because coding to Infura is vastly easier than coding directly to the blockchain. Infura has been Ethereum’s central point of control for many years.

      Centralized Ethereum interface layer

      Because Infura's level of abstraction is easier to code then directly on the blockchain.

    1. Cure53 offers classic black-box penetration tests (zero-knowledge) as well as white-box tests and code audits.
      • black-box penetration tests
      • white-box tests
      • code audits

    1. /** * Get a promise for a HTTP request * * @param {String} method The method of the request ("GET", "POST", "HEAD", or "OPTIONS") * @param {String} url URL to request * @param {Object} [options] Options for HTTP request:<ul> * <li>body - The body of a POST request</li> * <li>headers - Object of HTTP headers to send with the request</li> * <li>debug - Log response text and status code</li> * <li>logBodyLength - Length of request body to log</li> * <li>timeout - Request timeout specified in milliseconds [default 15000]</li> * <li>responseType - The response type of the request from the XHR spec</li> * <li>responseCharset - The charset the response should be interpreted as</li> * <li>successCodes - HTTP status codes that are considered successful, or FALSE to allow all</li> * </ul> * @return {Promise<XMLHttpRequest>} A promise resolved with the XMLHttpRequest object if the * request succeeds, or rejected if the browser is offline or a non-2XX status response * code is received (or a code not in options.successCodes if provided). */ this.request = async function(method, url, options = {}) { // Default options options = Object.assign({ body: null, headers: {}, debug: false, logBodyLength: 1024, timeout: 15000, responseType: '', responseCharset: null, successCodes: null }, options); throw new Error(`Zotero.HTTP.request(): not implemented`); }; /** * Send an HTTP GET request via XMLHTTPRequest * * @deprecated Use {@link Zotero.HTTP.request} * @param {String} url URL to request * @param {Function} onDone Callback to be executed upon request completion * @param {String} responseCharset * @param {N/A} cookieSandbox Not used in Connector * @param {Object} headers HTTP headers to include with the request * @return {Boolean} True if the request was sent, or false if the browser is offline */ this.doGet = function(url, onDone, responseCharset, cookieSandbox, headers) { Zotero.debug('Zotero.HTTP.doGet is deprecated. Use Zotero.HTTP.request'); this.request('GET', url, {responseCharset, headers}) .then(onDone, function(e) { onDone({status: e.status, responseText: e.responseText}); throw (e); }); return true; }; /** * Send an HTTP POST request via XMLHTTPRequest * * @deprecated Use {@link Zotero.HTTP.request} * @param {String} url URL to request * @param {String|Object[]} body Request body * @param {Function} onDone Callback to be executed upon request completion * @param {String} headers Request HTTP headers * @param {String} responseCharset * @return {Boolean} True if the request was sent, or false if the browser is offline */ this.doPost = function(url, body, onDone, headers, responseCharset) { Zotero.debug('Zotero.HTTP.doPost is deprecated. Use Zotero.HTTP.request'); this.request('POST', url, {body, responseCharset, headers}) .then(onDone, function(e) { onDone({status: e.status, responseText: e.responseText}); throw (e); }); return true; };
      • doGET no es async
      • llama a request() sin await
    1. Background

      Reviewer 2. Haris Zafeiropoulos

      I appreciated the opportunity to review your manuscript. Tourmaline aims at facilitating an easy-to-follow architecture for tracking input and output file names, parameters, and commands of QIIME2 runs to enhance meta-analyses. If I am not mistaken, this is the corner-stone of this study so my review is based on that. Running Tourmaline is straightforward and its documentation is exceptional. The video tutorial and the GitHub wiki (https://github.com/aomlomics/tourmaline/wiki) allows non-experienced users to start working their analysis and the containerized version of the tool allows an easy-to-go installation in multiple operating systems without extra effort. The extra visual components provide insight in a nice way and the report returned can provide added value on the runs. However, even if I do share the authors' interest on usability and interoperability and tools could have a great impact in the community indeed, Tourmaline currently lacks any substantial features to be considered as a stand-alone software tool. In addition, there are several issues that it is my belief that need to be addressed (see the following list). Major issues Major Issue #1: The authors claim that "this lack of automation and standardization [in tracking input and output file names, parameters, and commands on QIIME2] is inefficient and creates barriers to meta-analysis and sharing of results. Therefore, what Tourmaline and thus, the manuscript needs to demonstrate, is that meta-analyses are now feasible to a greater extent, thanks to the Tourmaline wrapper. Major Issue #2: Assuming that enhancing meta-analyses is the main contribution of Tourmaline, it is fundamental to consider the minimum information about a marker gene sequence (MIMARKS) standard of the Genomic Standards Consortium (GSC). Rather than just mentioning MIMARKS, Tourmaline needs to explore ways to exploit such standards, i.e. perhaps by adding MIMARKS columns in the config file. Major Issue #3: As QIIME2 has been developed on the basis of a plugin archiiated the opportunity to review your manuscript. Tourmaline aims at facilitating an easy-to-follow architecture for tracking input and output file names, parameters, and commands of QIIME2 runs to enhance meta-analyses. If I am not mistaken, this is the corner-stone of this study so my review is based on that. tecture, it would be highly recommended that such an application could be provided as a plugin too, joining the corresponding QIIME2 library (https://library.qiime2.org/plugins/). Major Issue #4: With respect to the structure of the manuscript, it is my belief that there are sections that should be omitted. Tutorials and "how to" are of extremely valuable but it would be better to be provided either as supplementary material or through repositories, e.g. GitHub wiki, GitHub pages etc, rather than in the main manuscript. The wiki page on Tourmaline's GitHub repository is rather informative. An alternative might be merging the "Overview" along with the "Snakefile", "Config file", "Input files" and "Run the workflow" sections, to describe "The Tourmaline workflow" architecture in a less verbose way, highlighting the role of the "Snakefile" and the "config.yml" files and the architecture that binds them together. "Documentation", "Installation", "Cloning" subsections could/should be omitted too. Major Issue #5: The test dataset does not allow the validation of Tourmaline in meta-analyses. It is rather important to have a testbed dataset to demonstrate "how to run" but a use case of an actual meta-analysis is required to demonstrate how different analyses can be combined in the framework of Tourmaline and provide further insight than those of the initial ones. Major Issue #7: No license has been included in the "Availability of supporting source code" section. On Tourmaline GitHub repo a license (https://github.com/aomlomics/tourmaline#license) is mentioned, yet GigaScience asks for an appropriate Open Source Initiative compliant license (https://opensource.org/licenses/category). In addition, I tried to find if the QIIME2 license is mentioned in a Tourmaline Docker container and I could not; if I am not mistaken that is required based on the QIIME2 license (https://github.com/qiime2/qiime2/blob/master/LICENSE). My apologies again in case of any misapprehension. Major Issue #8: Parameter optimization is indeed one of the greatest challenges in metabarcoding bioinformatics analyses. However, it is not clear to me how by keeping the exact same names in your output files, will you be able to compare the results of the different runs. Major Issue #9: I realise that the authors provide Figures 2 and 3 in a complementary way, presenting the visual component returned after each step. However, having a figure with 16 screenshots makes it hard for the reader to realize what is coming from QIIME2 and what from Tourmaline but most importantly does not highlight the added value that Tourmaline provides to such an analysis. It is my belief that Figure 2 could remain as it, while FIgure 3 should focus on the output components that are not provided by QIIME2 routines, but from Tourmaline functionalities. In case of a meta-analysis, this figure should highlight all the added value that using QIIME2 through the Tourmaline wrapper would provide. Minor issues Minor Issue #1: Please rephrase the Findings section in the abstract, so that it is clear that Tourmaline invokes QIIME2 routines to implement taxonomy assignment, perform analysis etc. It is required to state clearly what QIIME2 does and what are the extra features of Tourmaline throughout the manuscript. Minor Issue #2: The conclusion you mention in the abstract is not in line with the scope of Tourmaline that was described earlier. Tourmaline does not accelerate the performance of QIIME2 routines. Its aim, as mentioned earlier, is to enhance meta-analysis and sharing of results. Minor Issue #3: terms such as "meta-analysis", "reproducibility", "metadata" could be added Minor Issue #4: In line Information gained... resource management it would be nice to add references for the value of the method in each of the various fields mentioned. Minor Issue #5: Usually, (shotgun) metagenome analyses are used to measure diversity in microbiomes, meaning the functional, genomic diversity; the term microbiome has been widely used as the collection of genomes from all microbial taxa present in a sample. It would be better to rephrase this like "popular method of measuring taxonomic/microbial diversity of host microbiome or in environmental samples" Minor Issue #6: As an overall comment, long sentences make the manuscript hard to read. In this case: "PCR primers have been used to generate amplicons of the bacterial 16S rRNA gene in studies of human and animal microbiota [..] among others." should be splitted. Minor Issue #7: "other environmental surveys" please explain. Minor Issue #8: It is not clear to me how the study of Prodan et al. (2020) is related to the standardization of amplicon data analysis. Minor Issue #9: The authors highlight that the standard directory structure enhances data exploration and parameter optimization. A use case to demonstrate this main feature of Tourmaline would be of high value. Minor Issue #10: The purpose of performing amplicon sequencing or metabarcoding is to reveal patterns of diversity in biological systems. That is not the only case, please rephrase. Sincerely, Haris Zafeiropoulous

      Re-review:

      Most of my initial comments have been addressed to some extent. However, it is my belief that there is a major contradiction with this manuscript. As described in the introduction, Tourmaline is supposed to address challenges that make meta-analysis hard for metabarcoding studies. "; this lack of automation and standardization is inefficient and creates barriers to meta-analysis and sharing of results". However, as the authors highlight in their response, there are 5 points that make Tourmaline to set apart from other amplicon workflows. However, only one of them ("3- Snakemake features") is related (to some extent) to the challenge described. The rest are exceptional ways to make things easier for the users to run an analysis but they do not have a direct link with how to enable/support meta-analysis. Therefore, it is my belief that the Introduction section should be revised to better present the actual highlights of Tourmaline or further features (some of them described in my initial review) need to be added to support meta-analysis.

      Other Issues Even though the authors recognize the impact of metadata standards: they do not mention anything on their manuscript about them and their potential I was not able to figure out how "have made the metadata that comes with Tourmaline fully MIMARKS-compliant." If this software is focused on meta-analysis, I would strongly suggest investing more effort on describing how these could benefit the community and the Tourmaline users. In the parallelization section that was added, it is fundamental to mention that this is possible thanks to Qiime2 implementation. Snakemake is working as an interface allowing Tourmaline to support the options of Qiime2. If Qiime2 had no option for running on multiple threads, then Tourmaline would not inherit such a feature. The same applies for the merging step in the meta-analysis case. All Qiime2 commands used as such need to be clear that are Qiime2 commands that are performed in the Tourmaline workflow; otherwise it can be thought that the feature was developed from the Tourmaline team

    1. Every word of Pershing’s cablegram implied military service without stating it. U.S. legal code specified that only males could enlist in the regular Army (the reserves were not limited by gender), but responsible officers pounced on Pershing’s larger intent: get qualified bilingual operators in uniform and ship them to France ASAP. Let bureaucrats work out the niceties late

      Even though I already know the answer to this question, I'm still so curious as to why it was believed that women were not capable of fighting in the "regular" army as well

    1. # "func" called 3 times result = [func(x), func(x)**2, func(x)**3] # Reuse result of "func" without splitting the code into multiple lines result = [y := func(x), y**2, y**3]

      Smart example of using the walrus operator :=

    1. Reviewer #2 (Public Review):

      The authors devised novel and interesting experiments using high precision human MEG to demonstrate the propagation of beta oscillation events along two axes in the brain. Using careful analysis, they show different properties of beta events pre- and post movement, including changes in amplitude. Due to beta's prominent role in motor system dynamics, these changes are therefore linked to behavior and offer insights into the mechanisms leading to movement. The linking of wave-like phenomena and transient dynamics in the brain offers new insight into two paradigms about neural dynamics, offering new ways to think about each phenomena on its own.

      Although there is a substantial, and recent, body of literature supporting the conclusions that beta and other neural oscillations are transient, care must be taken when analyzing the data and the resulting conclusions about beta properties in both time and space. For example, modifying the threshold at which beta events are detected could alter their reported properties and expression in space and time. The authors should therefore performing parameter sweeps on e.g. the thresholds for detection of oscillation bursts to determine whether their conclusions on beta properties and propagation hold. If this additional analysis does not change their story, it would lend confidence in the results/conclusions.

      Determining the generators of beta events at different locations is a tricky issue. The authors mentioned a single generator that is responsible for propagating beta along the two axes described. However, it is not clear through what mechanism the beta events could travel along the neural substrate without additional local generators along the way. Previous work on beta events examined how a sequence of synaptic inputs to supra and infragranular layers would contribute to a typical beta event waveform. Although it is possible other mechanisms exist, how might this work as the beta events propagate through space? Some further explanation/investigation on these issues is therefore warranted.

      Once the mechanisms have been better understood, a question of how much the results generalize to other oscillation frequencies and other brain areas. On the first question of other oscillation frequencies, the authors could easily test whether nearby frequency bands (alpha and low gamma) have similar properties. This would help to determine whether the observations/conclusions are unique to beta, or more generally applicable to transient bursts/waves in the brain. On the second issue of applicability to other brain areas, the authors could relate their work to transient bursts and waves recorded using ECoG and/or iEEG. Some recent work on traveling waves at the brain-wide level would be relevant for such comparisons.

      If the source code could be provided on github along with documentation and a standard "notebook" on use other researchers would benefit greatly.

    1. Code unit is a bit sequence used to encode each character within a given encoding form.

      I found this pretty unclear. A code unit is an encoding-dependent "minimal chunk". For example, in UTF-8, a code unit is a 8 bit chunk; in UTF-16, a code unit is a 16 bit chunk. An individual code unit is generally not interpretable outside its context. A code unit can indeed be described by a "bit sequence", but that misses the "word size" notion.

      See https://en.wikipedia.org/wiki/Character_encoding#Terminology.

    1. Reviewer #3 (Public Review):

      Leander et al used deep mutational scanning to assess the effect of nearly all possible point mutations on four homologous bacterial allosteric transcription factors (aTFs). In particular, they identified mutations that abrogated the transcription factor response to a small molecule effector. The authors go on to use machine learning to determine which physicochemical properties distinguish mutations with allostery-eliminating effects from those without an effect. They report that mutations that eliminate the allosteric response to small molecules are quite variable across homologs and that global features are more predictive of which mutations will break allostery relative to local properties. Overall, the experimental strategy is well-chosen, and a comprehensive comparison of mutational sensitivity across allosteric homologs is highly important to understand how conserved (or not) the implementation of allostery is across homologs. Moreover, the idea to use machine learning to assess which features are most predictive of "allosteric hotspots" is very nice, and provides some insight into what physical properties distinguish mutations that influence allostery. The authors include some interesting results on transfer learning (evaluating whether models trained on one protein predict allostery in another), and the use of alternate sequence representations (e.g. UniRep) in their machine learning analyses. However - at least in the manuscript's present form - the paper suffers from key conceptual difficulties and a lack of rigor in data analysis that substantially limits one's confidence in the authors' interpretations. More specifically:

      1) A key conceptual challenge shaping the interpretation of this work lies in the definition of allostery, and allosteric hotspot. The authors define allosteric mutations as those that abrogate the response of a given aTF to a small molecule effector (inducer). Thus, the results focus on mutations that are "allosterically dead". However, this assay would seem to miss other types of allosteric mutations: for example, mutations that enhance the allosteric response to ligand would not be captured, and neither would mutations that more subtly tune the dynamic range between uninduced ("off) and induced ("on") states (without wholesale breaking the observed allostery). Prior work has even indicated the presence of TetR mutations that reverse the activity of the effector, causing it to act as a co-repressor rather than an inducer (Scholz et al (2004) PMID: 15255892). Because the work focuses only on allosterically dead mutations, it is unclear how the outcome of the experiments would change if a broader (and in our view more complete) definition of allostery were considered.

      2) The experimental determination of which mutations impacted allostery is given only a limited description in the methods, but if we understand what was done, the analysis seems to neglect both (1) important caveats due to assay specifics and (2) more general limitations of deep mutational scanning data. In particular:<br /> a. The separation in fluorescence between the uninduced and induced states (the assay dynamic range, or fold induction) varies substantially amongst the four aTF homologs. Most concerningly, the fluorescence distributions for the uninduced and induced populations of the RolR single mutant library overlap almost completely (Figure 1, supplement 1), making it unclear if the authors can truly detect meaningful variation in regulation for this homolog.<br /> b. The methods state that "variants with at least 5 reads in both the presence and absence of ligand in at least two replicates were identified as dead". However, the use of a single threshold (5 reads) to define allosterically dead mutations across all mutations in all four homologs overlooks several important factors:<br /> i. Depending on the starting number of reads for a given mutation in the population (which may differ in orders of magnitude), the observation of 5 reads in the gated non-fluorescent region might be highly significant, or not significant at all. Often this is handled by considering a relative enrichment (say in the induced vs uninduced population) rather than a flat threshold across all variants.<br /> ii. Depending on the noise in the data (as captured in the nucleotide-specific q-scores) and the number of nucleotides changed relative to the WT (anywhere between 1-3 for a given amino acid mutation) one might have more or less chance of observing five reads for a given mutation simply due to sequencing noise.<br /> iii. Depending on the shape and separation of the induced (fluorescent) and uninduced (non-fluorescent) population distributions, one might have more or less chance of observing five reads by chance in the gated non-fluorescent region. The current single threshold does not account for variation in the dynamic range of the assay across homologs.<br /> c. The authors provide a brief written description of the "weighted score" used to define allosteric hotspots (see y-axis for figure 1B), but without an equation, it is not clear what was calculated. Nonetheless, understanding this weighted score seems central to their definition of allosteric hotspots<br /> d. The authors do not provide some of the standard "controls" often used to assess deep mutational scanning data. For example, one might expect that synonymous mutations are not categorized as allosterically dead using their methods (because they should still respond to ligand) and that most nonsense mutations are also not allosterically dead (because they should no longer repress GFP under either condition). In general, it is not clear how the authors validated the assay/confirmed that it is giving the expected results.<br /> 3) In several places, the manuscript lacks important statistical analyses needed to firmly establish the authors' claims<br /> a. The authors performed three replicates of the experiment, but reproducibility across replicates and noise in the assay is not presented/discussed<br /> b. In the analysis of long-range interactions, the authors assert that "hotspot interactions are more likely to be long-range than those of non-hotspots", but this was not accompanied by a statistical test (Figure 2 - figure supplement 1)

      4) Data availability and analysis transparency need improvement. The raw fastq reads do not seem to be publicly available, nor did we see access to the code used to perform the analysis. If the code is not provided, the description of the analysis in the methods section needs to be more detailed for reproducibility.

      Overall, these concerns with fundamental aspects of the data analysis make it challenging to assess the reproducibility of the results, the fidelity of the assay (in reporting allosterically dead mutations), and the extent to which the data robustly support the authors' claims.

    1. Resources View the product roadmap to check out what we're working on. Request features, report bugs and meet other users in our discussion forums. If you need help please don't hesitate to get in touch. Visit our website to learn more about the project. Check out the code on GitHub.

      esto sale oiiiiga? y ahoraç???

    1. https://web.archive.org/web/20220901193117/https://interconnected.org/home/2022/09/01/carbon

      Matt went to The Conference in Malmo, nice. Videos seem to be online, find them. I've already seen websites that color code their current emissions based on energy source / mix. E.g. Michelle Thorne's when we talked about [[Digirights and climate justice TGL]] last June.

      Key phrase is the switch to full solar (plus storage I assume) is a switch to abundance (even if [[Intermittency van infra productie 20200718095613]] still plays a role) away from a sense of scarcity. Vgl [[MakerHouseholds 20100420071013]] wrt household as a productive node in a community and wrt resilience.

    1. where both the outerkernel and nested kernel operate at the same hardwareprivilege level—contrary to isolation in a microkernel whereuntrusted code operates in user-mode.

      interesting

    2. As a result,these OS kernels define and store access control policies inmain memory which any code executing within the kernelcan modify.

      weakness of the monolithic systems

    Annotators

  2. Aug 2022
    1. Each commit should meet the following criteria: Have a well-written commit message. Has all tests passing when used on its own (e.g. when using git checkout SHA). Can be reverted on its own without also requiring the revert of commit that came before it. Is small enough that it can be reviewed in isolation in under 30 minutes or so.
    1. Like variables, tab stops can also have default values (and are generally referred to as placeholders when they do). The syntax is the same: ${«tab stop»:«default value»}. And the default value can contain both text, shell code and other placeholders.
    1. Note: This rebuttal was posted by the corresponding author to Review Commons. Content has not been altered except for formatting.

      Learn more at Review Commons


      Reply to the reviewers

      Reply to the Reviewers

      We thank the reviewers for dedicating time to review our manuscript and providing highly valuable feedback. Please find below a point-by-point answer.

      Reviewer #1 (Evidence, reproducibility and clarity (Required)):

      Summary:

      In the present manuscript, van der Plas et al. compellingly illustrated a novel technique for engendering a whole-brain functional connectivity map from single-unit activities sampled through a large-scale neuroimaging technique. With some clever tweaks to the restricted Boltzmann Machine, the cRBM network is able to learn a low-dimensional representation of population activities, without relying on constrained priors found in some traditional methods. Notably, using some 200 hidden layer neurons, the employed model was able to capture the dynamics of over 40,000 simultaneously imaged neurons with a high degree of accuracy. The extracted features both illustrate the anatomical topography/connectivities and capture the temporal dynamics in the evolution of brain states. The illustrated technique has the potential for wide-spread applications spanning diverse recording techniques and animal species. Furthermore, the prospectives of modeling whole-brain network dynamics in 'neural trajectory' space and of generating artificial data in silico make for very enticing reasons to adopt cRBM.

      Major comments:

      1. Line 164. The authors claim that conventional methods "such as k-means, PCA and non-negative matrix factorization" cannot be quantitatively assessed for quality on the basis that they are unable to generate new artificial data. Though partly true, in most neuroscience applications, this is hardly cause for concern. Most dimensionality reduction methods (with few exceptions such as t-sne) allow new data points to be embedded into the reduced space. As such, quality of encoding can be assessed by cross-validation much in the same way as the authors described, and quantified using traditional metrics such as percentage explained variance. The authors should directly compare the performance of their proposed model against that of NNMF and variational auto-encoders. Doing so would offer a more compelling argument for the advantage of their proposed method over more widely-used methods in neuroscience applications. Furthermore, a direct comparison with rastermap, developed by Stringer lab at Janelia (https://github.com/MouseLand/rastermap), would be a nice addition. This method presents itself as a direct competitor to cRBM. Additionally, the use of GLM doesn't do complete justice to the comparison point used, since a smaller fraction of data were used for calculating performance using GLM, understandably due to its computationally intensive nature.

      PLANNED REVISION #2

      We thank the reviewer for the comment, and certainly agree that there are multiple methods for unsupervised feature extraction from data and that they can be validated for encoding quality by cross-validation. However, we stress that reconstructing through a low-dimensional, continuous bottleneck is a different (and arguably, easier) task, than generating whole distributions. Reconstruction delineates the manifold of possible configurations, whereas generative modeling must weigh such configurations adequately. Moreover, none of the methodologies mentioned can perform the same tasks as cRBMs. For instance, NNMF learns localized assemblies, but cannot faithfully model inhibitory connections since, by definition, only non-negative weights are learnt. Also, the connection between the learnt assemblies and the underlying connectivity is unclear. Similarly, rastermap is an algorithm for robustly i) sorting neurons along a set number of dimensions (typically 1 or 2) such that neighboring neurons are highly correlated, and ii) performing dimensionality reduction by clustering along these dimensions. Because Rastermap uses k-means as the basis for grouping together neurons, it does not quantify connections between neurons and assemblies, nor assign neurons to multiple assemblies. Moreover, it is not a generative model, and thus cannot predict perturbation experiments, infer connectivities or assign probabilities to configurations. Therefore, we do not believe that NNMF or Rastermap would be a suitable alternative for cRBM in our study. We nonetheless appreciate the reviewer’s suggestions and agree that we should motivate more clearly why these methods are not applicable for our purposes. Therefore, to emphasize the relative merit of cRBM with respect to other unsupervised algorithms, we now provide a table (Supplementary Table 2) that lists their specific characteristics. We stress that we do not claim that cRBM are consistently better than these classical tools for dimensionality reduction, but focus only on the properties relevant to our study.

      Further, we agree that VAEs, which also jointly learn a representation and distribution of data, are close competitors of cRBMs. In Tubiana et al. Neural Computation 2019, we previously compared sparse VAEs with cRBMs for protein sequence modeling, and found that RBMs consistently outperformed VAEs in terms of the interpretability-performance trade-off. In the revised manuscript, we propose to repeat the comparison with VAE for zebrafish neural recordings, and expect similar conclusions.

      As for GLM, it is true that the comparison involved subsampling of the neurons (due to the very high computational cost of GLM, where we could estimate the connectivity of 1000 neurons per day). This was already denoted in the relevant figure caption, as the reviewer has seen, but we have now also clarified this point in Methods 7.10.3. Still, we performed our GLM analysis on 5000 neurons (using all neurons as regressors), which is 10% of all neurons, and we believe this is a sufficient number for comparison. This emphasizes the ability of our optimized cRBMs to handle very large datasets, such as the presently used zebrafish whole brain recordings.

      Line 26. The authors describe their model architecture as a formalization of cell assemblies. Cell assemblies, as originally formulated by Hebb, pertains to a set of neurons whose connectivity matrix is neither necessarily complete nor symmetric. Critically, in the physiological brain, the interactions between the individual neurons that are part of an assembly would occur over multiple orders of dependencies. In a restricted Boltzmann machine, neurons are not connected within the same layer. Instead, visible layer neurons are grouped into "assemblies" indirectly via a shared connection with a hidden layer neuron. Furthermore, a symmetrical weight matrix connects the bipartite graph, where no recurrent connectivities are made. As such, the proposed model still only elaborates symmetric connections pertaining to first-order interactions (as illustrated in Figure 4C). Such a network may not be likened with the concept of cell assemblies. The authors should refrain from detailing this analogy (of which there are multiple instances of throughout the text). It is true that many authors today refer to cell assemblies as any set of temporally-correlated neurons. However, saying "something could be a cell assembly" is not the same as saying "something is a cell assembly". How about sticking with cRBM-based cell assemblies (as used in section 2.3) and defining it beforehand?

      We thank the reviewer for this excellent question. We agree that there is, in general, a discrepancy between computationally-defined assemblies and conceptual/neurophysiological definition of cell assemblies. We have added a clarification in Results 2.1 to clarify the use of this term when it first occurs in Results. However, we still believe that our work contributes to narrowing the gap. Indeed, our RBM-defined assemblies are i) localized, ii) overlapping, iii) rooted in connectivity patterns (both excitatory and inhibitory), and iv) cannot be reduced to a simple partitioning of the brain with full & uniform connectivity within and between partitions. This is unlike previous work based on clustering (no overlaps or heterogeneous weights), NNMF (no inhibition) or correlation network analysis (no low-dimensional representation).

      Regarding the specific comments pointed here, we stress that:

      • Effective interactions between neurons are not purely pairwise (“First order”), due to the usage of the non-quadratic potential. (see Eqn 12-13). If the reviewer means by “First-order” interactions the lack of hierarchical organization, we agree, to some extent: in the current formulation, correlations between assemblies are mediated by overlaps between their weights. Fully-hierarchical organization, e.g. by using Deep Boltzmann Machines or pairwise connections within the hidden layer is an interesting future direction, but on the other hand may make it hard to clearly identify assemblies as they might be spread out over multiple layers
      • Neurons that participate in a given assembly (as defined by a specific hidden unit) are not all connected with one another with equal strength. Indeed, these neurons may participate in other assemblies, resulting in heterogeneity of connections (see Eqn. 15-17) and interactions between assemblies.
      • We acknowledge that the constraint of symmetrical connections is a core limitation of our method. Arguably, asymmetric connections are critical for predicting temporal evolution but less important for inferring a steady-state distribution from data, as we do here. In the revised submission, we added a new paragraph in the discussion section (lines 351-357) in which these limitations are discussed, including the imposed symmetry of the connections and the lack of hierarchical structures, copied below. We trust that this addresses the reviewer’s criticism:

      In sum, cRBM-inferred cell assemblies display many properties that one expects from physiological cell assemblies: they are anatomically localized, can overlap, encompass functionally identified neuronal circuits and underpin the collective neural dynamics (Harris, 2005, 2012; Eichenbaum, 2018). Yet, the cRBM bipartite architecture lacks many of the traits of neurophysiological circuits. In particular, cRBMs lack direct neuron-to-neuron connections, asymmetry in the connectivity weights and a hierarchical organization of functional dependencies beyond one hidden layer. Therefore, to what extent cRBM-inferred assemblies identify to neurophysiological cell assemblies, as postulated by Hebb (1949) and others, remains an open question.


      I would strongly recommend adding a paragraph discussing the limitation of using the cRBM, things future researchers need to keep in mind before using this method. One such recommendation is moving the runtime-related discussion for cRBM, i.e. 8-12 hrs using 16 CPU from Methods to Discussion, since it's relevant for an algorithm like this. Additionally, a statement mentioning how this runtime will increase with the length of recordings and/or with the number of neurons might be helpful. What if the recordings were an hour-long rather than 25mins. This would help readers decide if they can easily use a method like this.

      We thank the reviewer for the suggestion, and agree that it is important to cover the computational cost in the main text. Regarding the runtime for longer recordings, the general rule of thumb is that the model requires a fixed number of gradient updates to converge (20-80k depending on the data dimensionality) rather than a fixed number of epochs. Thus, runtime should not depend on recording length, as the number of epochs can be reduced for longer recordings. While we did not verify this rule for neural recordings, this is what we previously observed when modeling protein/DNA sequence data sets, whose size range from few hundreds to hundreds of thousands of samples (Tubiana et al., 2019, eLife; Tubiana et al. 2019, Neural Computation; Bravi et al. Cell Systems 2021; Bravi et al. PLOS CB 2021; Fernandez de Cossio Diaz et al. Arxiv 2022 Di Gioacchino et al. BiorXiv 2022). We have now added a summary of these points in Methods 7.7.2, also refer to this with explicit mention of the runtime in the Discussion, end of 2nd paragraph:


      By implementing various algorithmic optimizations (Methods 7.7), cRBM models converged in approximately 8-12 hours on high-end desktop computers (also see Methods 7.7.2).


      Line 515. A core feature of the proposed compositional RBM is the addition of a soft sparsity penalty over the weight matrix in the likelihood function. The authors claim that "directed graphical models" are limited by the a priori constraints that they impose on the data structure. Meanwhile, a more accurate statistical solution can be obtained using a RBM-based model, as outlined by the maximum entropy principle. The problem with this argument is that the maximum entropy principle no longer applies to the proposed model with the addition of the penalty term. In fact, the lambda regularization term, which was estimated from a set of data statistics motivated by the experimenter's research goals (Figure S1), serves to constrict the prior probability. Moreover, in Figure S1F, we clearly see that reconstruction quality suffers with a higher penalty, suggesting that the principle had indeed been violated. That being said, RBMs are notoriously hard to train, possibly due to the unconstrained nature of the optimization. I believe that cRBM can help bring RBM into wider practical applications. The authors could test their model on a few values of the free parameter and report this as a supplementary. I believe that different parameters of lambda could elaborate on different anatomical clusters and temporal dynamics. Readers who would like to implement this method for their own analysis would also benefit tremendously from an understanding of the effects of lambda on the interpretation of their data. Item (1) on line 35 (and other instances throughout the text) should be corrected to reflect that cRBM replaces the hard constraints found in many popular methods with a soft penalty term, which allows for more accurate statistical models to be obtained.

      We thank the reviewer for their analysis and suggestion. Indeed, adding the regularization term - not present in the classical formulation of the RBM (Hinton & Salakhutdinov, 2006, Science) - was critical for significantly enhancing its performance, which allowed us to implement this model on our large scale datasets (~50K visible units). We agree that providing more information on the effect of the regularization term will benefit readers who would like to use this method, and we propose to add this in the revised manuscript, which would implement the reviewer’s suggestion. See “PLANNED REVISION #1”.

      The reviewer’s comment on the Maximum Entropy issue calls for some clarification. The maximum entropy principle is a recipe for finding the least constrained model that reproduces specified data-dependent moments. However, it cannot determine which moments are statistically meaningful in a finite-sized data set. A general practice is to only include low-order moments (1st and 2nd), but this is sometimes already too much for biological data. Regularization provides a practical means to select stable moments to be fitted and others to be ignored. This can be seen from the optimality condition, which writes, e.g., for the weights wi,mu:

      | i h,mu>data - i h,mu>model | i,mu = 0.

      i h,mu>data - i h,mu>model | = lambda sign(wi,mu) if |wi,mu| > 0.

      Essentially, this lets the training decide which subset of the constraints should actually be used. Thus, regularized models are closer to the uniform distribution (g=w=0), and actually have higher entropy than unregularized one (see, e.g., Fanthomme et al. Journal of Statistical Mechanics, 2022). Therefore, we believe that a regularized maximum entropy model can still be considered a bona fide MaxEnt model. This formulation should not be confused with another formulation (that perhaps the reviewer has in mind) where a weighted sum of the entropy and the regularization term is maximized under the same moment-matching constraints. In this case, we agree that maximum entropy principle (MaxEnt) would be violated.

      The choice of regularization value should be dictated by bias-variance trade-off considerations. Ideally, we would use the same criterion as for training, i.e., maximization of log-likelihood for the held-out test set, but it is intractable. Thus, we used a consensus between several tractable performance metrics as a surrogate; we believe this consensus to be principally independent of the research goal. While the reconstruction error indeed increases for large regularization values, this is simply because too few constraints are retained at high regularizations.

      Essentially, the parameters selected by likelihood maximization find the finest assembly scale that can be accommodated by the data presented. Thus, the number and size of the assemblies are not specified by the complexity of the data set alone. Rather, the temporal resolution and length of the recordings play a key role; higher resolution recordings will allow the inference of a larger number of smaller assemblies, and enable the study of their hierarchical organization.

      That being said, we fully agree that the regularization strength and number of hidden units have a strong impact on the nature of the representation learnt. In the revised manuscript, we will follow the reviewer’s suggestion and provide additional insights on the effect of these parameters on the representation learnt (please see revision plan).

      Minor comments:

      From a neuroscience point of view, it might be interesting to show what results are achieved using different values of M (say 100 or 300), rather than M=200, while still maintaining the compositional phase. Is there any similarity between the cRBM-based cell assemblies generated at different values of M? Is there a higher chance of capturing certain dynamics either functional or structural using cRBM? For example, did certain cRBM-based cell assemblies pop up more frequently than others at all values of M (100,200,300)?

      This point will be addressed in the future, as detailed in our response to reviewer 2 (see PLANNED REVISION #1).

      The authors have mentioned that this approach can be readily applied to data obtained in other animal models and using different recording techniques. It might be nice to see a demonstration of that.

      We agree that showing additional data analysis would be interesting, but we feel that it would overburden the supplementary section of the manuscript, which is already lengthy. In previous works, we and collaborators have used cRBMs for analyzing MNIST data (Tubiana & Monasson, 2017, PRL; Roussel et al. 2022 PRE), protein sequence data (Tubiana et al., 2019, eLife; Tubiana et al. 2019, Neural Computation; Bravi et al. Cell Systems 2021; Bravi et al. PLOS CB 2021; Fernandez de Cossio Diaz et al. Arxiv 2022), DNA sequences (Di Gioacchino et al. BiorXiv 2022), spin systems (Harsh et al. J. Phys. A 2020), etc. Many are included as example notebooks - next to the zebrafish data - in the linked code repository. For neural data, we have recently shared our code with another research group working on mice auditory cortex (2-photon, few thousands of neurons, Léger & Bourdieu). Preliminary results are encouraging, but not ready for publication yet.

      Line 237. The justification for employing a dReLU transfer function as opposed to ReLU is unclear, at least within the context of neurobiology. Given that this gives rise to a bimodal distribution for the activity of HUs, the rationale should be clearly outlined to facilitate interpretability.

      We thank the reviewer for the question. As we detail in the manuscript (Methods), the dReLU potential is one of the sufficient requirements for the RBM to achieve the compositional phase. The compositional phase is characterized by localized assemblies that co-activate to generate the whole-brain neural dynamics. This property reflects neurobiological systems (Harris, 2005, Neuron), which is one of the reasons why we employed compositional RBMs for this study.

      As the reviewer points out, the HUs that we infer exhibit bimodal activity (Figure 4). Importantly, the HU activity is not constrained by the model to take this shape, as dReLU potentials allow for several activity distributions (see Methods 7.5.4; “Choice of HU potential”). In fact, ReLU potentials are a special case of dReLU (by $(\gamma_{\mu, -} \to \infty)$), so our model allows HU potentials to behave like ReLUs, but in practice they converge to a double-well potential for almost all HUs, leading to bimodal activity distributions.

      Following the suggestion of the reviewer, we have now added this detail for clarity in Methods 7.5.4 and referenced this Methods section at line 237.

      Reviewer #1 (Significance (Required)):

      van der Plas et al. highlighted a novel dimensionality reduction technique that can be used with success for discerning functional connectivities in large-scale single-unit recordings. The proposed model belongs to a large collection of dimensionality reduction techniques (for review, Cunningham, J., Yu, B. Dimensionality reduction for large-scale neural recordings. Nat Neurosci 17, 1500-1509 (2014). https://doi.org/10.1038/nn.3776; Paninski, L., & Cunningham, J. P. (2018). Neural data science: accelerating the experiment-analysis-theory cycle in large-scale neuroscience. Current opinion in neurobiology, 50, 232-241.). The authors themselves highlighted some of the key methods, such as PCA, ICA, NNMF, variational auto-encoders, etc. The proposed cRBM model has also been published a few times by the same authors in previous works, although specifically pertaining to protein sequences. The use of RBM-like methods in uncovering functional connectivities is not novel either (see Hjelm RD, Calhoun VD, Salakhutdinov R, Allen EA, Adali T, Plis SM. Restricted Boltzmann machines for neuroimaging: an application in identifying intrinsic networks. Neuroimage. 2014 Aug 1;96:245-60. doi: 10.1016/j.neuroimage.2014.03.048.). However, given that the authors make a substantial improvement on the RBM network and have demonstrated the value of their model using physiological data, I believe that this paper would present itself as an attractive alternative to all readers who are seeking better solutions to interpret their data. However, as I mentioned in my comments, I would like to see more definitive evidence that the proposed solution has a serious advantage over other equivalent methods.

      Reviewer's expertise:

      This review was conducted jointly by three researchers whose combined expertise includes single-unit electrophysiology and two-photon calcium imaging, using which our lab studies the neurobiology of learning and memory and spatial navigation. We also have extensive experience in computational neuroscience, artificial neural network models, and machine learning methods for the analysis of neurobiological data. We are however limited in our knowledge of mathematics and engineering principles. Therefore, our combined expertise is insufficient to evaluate the correctness of the mathematical developments.

      Reviewer #2 (Evidence, reproducibility and clarity (Required)):

      In their manuscript, van der Plas et al. present a generative model of neuron-assembly interaction. The model is a restricted Boltzmann machine with its visible units corresponding to neurons and hidden units to neural assemblies. After fitting their model to whole-brain neural activity data from larval zebrafish, the authors demonstrate that their model is able to replicate several data statistics. In particular, it was able to replicate the pairwise correlations between neurons as well as assemblies that it was not trained on. Moreover, the model allows the authors to extract neural assemblies that govern the population activity and compose functional circuits and can be assigned to anatomical structures. Finally, the authors construct functional connectivity maps from their model that are then shown to correlate with established structural connectivity maps.

      Overall, the authors present convincing evidence for their claims. Furthermore, the authors state that their code to train their restricted Boltzmann machine models is already available on GitHub and that the data underlying the results presented in this manuscript will be made publicly available upon publication, which will allow people to reproduce the results and apply the methods to their data.

      One thing the authors could maybe discuss a bit more is the "right" parameter value M, especially since they used the optimal value of 200 found for one sample also for all the others. More specifically, how sensitive are the results to this value?

      PLANNED REVISION #1

      In the following we jointly address three of the reviewers’ questions (2 from reviewer 1, and 1 from reviewer 2).

      Shortly summarized, the cRBM model has 2 free parameters; the number of hidden units M and the regularization parameter lambda. In figures 2 and S1 we optimize their values through cross-validation, and then perform our further analyses on models with these optimal values. The reviewers ask us to examine the outcome of the model for slightly different values of both parameters, in particular in relation to the sensitivity of the cRBM results to selecting the optimal parameters and the change in inferred assemblies and their dynamics.

      We thank the reviewers for these questions and appreciate their curiosity to understand the effects of changing either of these two free parameters.

      We inspected these models when we performed the model selection (of Figures 2 and S1), but did not formalize our findings into figures for the manuscript. We found that small changes in the parameter setting did not abruptly change the inferred assemblies (e.g., M=100) apart from slightly changing in size, so we expect that the statistics that we intend to include in the proposed supplementary figure would reflect that, and it would definitely benefit the manuscript to include this analysis. Very-low-M settings are interesting to include, because assemblies are much larger - essentially merging smaller assemblies of higher-M models - at the cost of model performance.

      We propose to create additional supplementary figures that address these questions. As suggested, we will pick a few example cRBMs with different parameter settings (below-optimal M, above-optimal M, and same for lambda), as well as very low M settings (M~20 or 50). We will then show example assemblies and assembly dynamics, as well as the relevant statistics (assembly size, dynamics time scale etc) that describe them.

      And, what happens if one would successively increase that number, would the number of assemblies (in the sense of hidden units that strongly couple to some of the visible units) eventually saturate?

      This point will be addressed by inspecting models at different M values (see Revision Plan #1). We would like to further answer this question by referring to past work. In Tubiana et al., 2019, elife (Appendix 1) we have done this analysis, and the result is consistent with the reviewer’s intuition. Because of the sparsity regularization, if M becomes larger than its optimum, the assemblies further sparsify without benefiting model performance, and eventually new assemblies duplicate previous assemblies or become totally sparse (i.e., all weights = 0) to not further induce a sparsity penalty in the loss function. So the ‘effective’ number of assemblies indeed saturates for high M.

      Moreover, regarding the presentation, I have a few minor suggestions and comments that the authors also might want to consider:

      * In Figure 6C, instead of logarithmic axes, it might be better to put the logarithmic connectivity on a linear axis. This way the axes can be directly related to the colour bars in Figures 6A and B.

      We agree and thank you for the suggestion. We have changed this accordingly (and also in the equivalent plots in figure S6).

      * In Equation (8), instead of $\Gamma_{\mu}(I)$ it should be $\Gamma_{\mu}(I_{\mu}(v))$.

      Done, thank you.

      * In Section 7.0.5, it might make sense to have the subsection about the marginal distributions before the ones about the conditional distributions. The reason would be that if one wants to confirm Equation (8) one necessarily has to compute the marginal distribution in Equation (12) first.

      We thank the reviewer for the suggestion, but respectfully propose to leave the section ordering as is. We understand what the reviewer means, but Equation (8) can also be obtained by factorizing P(v,h) Equation (7) and removing the v_i dependency. In Equation (8), \Gamma can then be obtained by normalization. We believe this flow aligns better with the main text (where conditionals come first, when used for sampling, followed by the marginal of P(v) used for the functional connectivity inference).

      * In Line 647f, the operation the authors are referring to is strictly speaking not an L1-norm of the matrix block. It might be better to refer to that e.g. as a normalised L1-norm of the matrix block elements.

      Done, thank you.

      * In Line 22, when mentioning dimensionality reduction methods to identify assemblies, it might make sense to also reference the work by Lopes-dos-Santos et al. (2013, J. Neurosci. Methods 220).

      Done, thank you for the suggestion.

      Reviewer #2 (Significance (Required)):

      The work presented in this manuscript is very interesting for two reasons. First, it has long been suggested that assemblies are a fundamental part of neural activity and this work seems to support that by showing that one can generate realistic whole-brain population activity imposing underlying assembly dynamics. Second, in recent years much work has been devoted to developing methods to find and extract neural assemblies from data and this work and the modelling approach can also be seen as a new method to achieve that. As such, I believe this work is relevant for anyone interested in neural population activity and specifically neural assemblies and certainly merits publication.

      Regarding my field of expertise, I used to work on data analysis of neural population activity and in particular on the question of how one can extract neural assemblies from data. I have to say that I have not much experience with fitting statistical models to data, so I can't provide any in-depth comments on that part of the work, although what has been done seems plausible.

      Reviewer #3 (Evidence, reproducibility and clarity (Required)):

      Summary: Understanding the organization of neural population activities in the brain is one of the most important questions in neuroscience. Recent technique advance has enabled researchers to record a large number of neurons and some times the whole brain. Interpreting and extracting meaningful insights from such data sets are challenging. van der Pals \textit{et al} applied a generative model called compositional Restricted Boltzmann Machine (cRBM) to discover neuron assemblies from spontaneous activities of zebra fish brain. They found that neurons can be grouped into around 200 assemblies. Many of them have clear neurophysiological meaning, for example, they are anatomically localized and overlapped with known neural circuits. The authors also inferred a coarse-grained functional connectivity which is similar to known structural connectivity.

      The structure of the paper is well organized, the conclusion seems well supported by their numerical results. While this study provides a compelling demonstration that cRBM can be used to uncover meaningful structures from large neural recordings, the following issues limit my enthusiasm.

      Major:

      1) The overall implication is not clear to me. Although the authors mentioned this briefly in the discussion. It is not clear what else do we learn from discovered assemblies beyond stating that they are consist with previous study. For example, the author could have more analysis of the assembly dynamics, such as whether there are low dimensional structure etc.

      First, we will comment on our analysis of the assemblies, before we continue to discuss the main implications of our work, which we believe are the inferred generative model of the zebrafish brain and the perturbation-based connectivity matrix that we discovered. Further, we have implemented the reviewer’s suggestion of analyzing the low-dimensional structure of the hidden unit activity, as further detailed in Question 7.

      Indeed, the example assemblies that we show in Figure 3 have been thoroughly characterized in previous studies, which is why we chose to showcase these examples. Previous studies (including our own) typically focused on particular behaviors or sensory modalities, and aimed at identifying the involved neural circuit. Here, we demonstrate that by using cRBM on spontaneous activity recordings, one can simultaneously identify many of those circuits. In other words, these functional circuits/assemblies activate spontaneously, but in many different combinations and perhaps infrequently, so that it is very difficult to infer them from the full neural dynamics that they generate. cRBM has been able to do so, and Figure 3 (and supplementary video 1) serve to illustrate the variety of (known) circuits and assemblies that it inferred, some of which may represent true but not yet characterized circuits, which thus provide hypotheses for subsequent studies.

      Further, we believe that the implication of our study goes beyond the properties of the assemblies we’ve identified, in several ways.

      We demonstrate the power of cRBM’s generative capacity for inferring low-dimensional representations in neuroscience. Unlike standard dimensional reductionality methods, generative models can be assessed by comparing the statistics of experimental vs in-silico generated data. This is a powerful approach to validate a model, rarely used in neuroscience because of the scarcity of generative models compatible with large-scale data, and we hope that our study will inspire the use of this method in the field. We have made our cRBM code available, including notebook tutorials, to facilitate this.

      The generative aspect of our model allowed us to predict the effect of single-neuron perturbations between all ~ 10^9 pairs of neurons per fish, resulting in a functional connectivity matrix.

      We believe that the functional connectivity matrix is a major result for the field, similar to the structural connectivity matrix from Kunst et al., 2019, Neuron. The relation between functional and structural connectivity is unknown and of strong interest to the community (e.g., Das & Fiete, 2020, Nature Neuroscience). Our results allowed for a direct comparison of whole-brain region-by-region structural and functional connectivity. We were thus able to quantify the similarity between these two maps, and to identify specific region-pair matches and non-matches of functional and structural connectivity - which will be of particular interest to the zebrafish neuroscience community for developing future research questions.

      Further, using these trained models - that will be made public upon publication - anyone can perform any type of in silico perturbation experiments, or generate endless artificial data with matching data statistics to the in vivo neural recordings.

      We hope that this may convince the reviewer of the multiple directions of impact of our study. We will further address their comment on analysis of assembly dynamics below (question 7).

      2) The learning algorithm of cRBM can be interpreted as matching certain statistics between the model and the experiment. For a general audience, it is not easy to understand $\langle h_{\mu} \rangle_{data}, \langle v_ih_{\mu}\rangle_{data}$. Since these are not directly calculated from experimental observed activities $v_i$, but rather the average is conditioned on the empirical distribution of $p(v_i)$. For example, the meaning of $\langle v_ih_{\mu}\rangle_{data}$ means

      \begin{equation}

      \langle v_ih_{\mu}\rangle_{data} = \frac{1}{l}\sum_{\mathbf{v}\in S} \mathbb{E}{p(\mathbf{h|v})}(v_ih{\mu}),

      \end{equation}

      where $S$ is the set of all observed neural activities: $S = {\mathbf{v}^1, \cdots, \mathbf{v}^l}$. The authors should explain this in the main text or method, since they are heavily loaded in figure 2.

      We thank the reviewer for their suggestion, and have now implemented this. Their mathematics are correct; and we agree that it is not easy to understand without going through the full derivation of the (c)RBM. At the same time, we have tried not to alienate readers who might be more interested in the neuroscience findings than in understanding the computational method used. Therefore, we have kept mathematical details in the main text to a minimum (and have used schematics to indicate the statistics in Figures 2C-G), while explaining it in detail in Methods.

      Accordingly, we have now extended section 7.10.2 (“Assessment of data statistics”) that explains how the data statistics were computed in Methods (and have referenced this in Results and in Methods 7.5.5), using the fact that we already explain the process of conditioning on __v __in Methods 7.5.1. The following sentences were added:


      [..] However, because (c)RBM learn to match data statistics to model statistics (see Methods

      7.5.5), we can directly compare these to assess model performance. [..]

      [..]

      For each statistic 〈 fk〉 we computed its value based on empirical data 〈 fk〉_data and on the model 〈 fk〉_model, which we then quantitatively compared to assess model performance. Data statistics 〈 fk〉_data were calculated on withheld test data (30% of recording). Naturally, the neural recordings consisted only of neural data v and not of HU data h. We therefore computed the expected value of __ht at each time point t conditioned on the empirical data _v_t, as further detailed in Methods 7.5.1.

      [..]


      3) As a modeling paper, it would be great to have some testable predictions.

      We thank the reviewer for the enthusiasm and suggestion. We agree, and that is why we have included this in the form of functional connectivity matrices in Figures 5 and 6. To achieve this, we leveraged the generative aspect of the cRBM to perform in silico single-neuron perturbation experiments, which we aggregated to connectivity matrices. In other words, we have used our model to predict the functional connectivity between brain regions using the influence of single-neuron perturbations.

      Obtaining a measure of functional connectivity/influence using single-neuron perturbations is also possible using state-of-the-art neuro-imaging experiments (e.g., Chettih & Harvey, 2019, Nature), though not at the scale of our in silico experiments. We therefore verify our predictions using structural data from Kunst et al., 2019, which we have extended substantially. We provide our functional connectivity result in full, and hope that this can inspire future zebrafish research by predicting which regions are functionally connected, which includes many pairs of regions that have not yet directly been studied in vivo.

      Minor:

      1) The assembly is defined by the neurons that are strongly connected with a given hidden unit. Thus, some neurons may enter different assemblies. A statistics of such overlap would be helpful. For example, a ven diagram in figure 1 that shows how many of them assigned to 1, 2, etc assemblies.

      We thank the reviewer for this excellent suggestion. Indeed, neurons can be embedded in multiple assemblies. This is an important property of cRBMs, which deserves to be quantified in the manuscript. We have now added this analysis as a new supplementary figure 4. Neurons are embedded in an assembly if their connecting weight w_{i, \mu} is ‘significantly’ non-zero, depending on what threshold one uses. We have therefore shown this statistic for 3 values of the threshold (0.001, 0.01 and 0.1) - demonstrating that most neurons are strongly embedded in at least 1 assembly and that many neurons connect to more than 1 assembly.

      Updated text in Results:


      Further, we quantified the number of assemblies that each neuron was embedded in, which showed that increasing the embedding threshold did not notably affect the fraction of neurons embedded in at least 1 assembly (93% to 94%, see Figure S4).


      2) What does the link between hidden units in Figure 1B right panel mean?

      Thank you for the question, and we apologize for the confusion: if we understand the question right, the reviewer asks why the colored circles under the title ‘Neuronal assemblies of Hidden Units’ are linked. This schematic shows the same network of neurons as shown in gray at the left side of Fig 1B, but now colored by the assembly ‘membership’ of each neuron. Hence, the circles shown are still neurons (and not HUs), and their links still represent synaptic connections between neurons. We apologize for the confusion, and have updated the caption of Fig 1B to explain this better:


      “[..] The neurons that connect to a given HU (and thus belong to the associated assembly), are depicted by the corresponding color labeling (right panel).[..]”.


      3) A side-by-side comparison of neural activity predicted by model and the experimentally recorded activities would help the readers to appreciate the performance of the model. Such comparison can be done at both single neuron level or assembly level.

      We thank the reviewer for this suggestion. The cRBM model is a statistical model, meaning that it fits the statistics of the data, and not the dynamics. The data that it generates therefore (should) adhere to the statistics of the training data, but does not reflect their dynamics. We believe that showing generated activity side-by-side of empirical activity is therefore not a meaningful example of generated data, as this would exemplify the dynamics, which this model is not designed to capture. Instead, in Figure 2, we show the statistics of the generated data versus the statistics of the empirical data (e.g., Fig 2C for the mean activity of all neurons). We believe that this is a better example representation of the generative performance of the model.

      4) Definition of reconstruction quality in line 130.

      We thank the reviewer for the suggestion, and have added the following sentence after line 130:


      The reconstruction quality is defined as the log-likelihood of reconstructed neural data v___{recon} (i.e., __v that is first transformed to the low-dimensional h, and then back again to the high-dimensional __v___{recon}, see Methods 7.10.2).


      Further, please note that Methods describes the definition in detail (Eq 18 of the submitted manuscript), although we agree with the reviewer that more detail was required in the Results section at line 130.

      5) Line 165. If PCA is compared with cRBM, why other dimensionality reduction methods, such as k-means and non-negative matrix factorization, can not be compared in terms of the sparsity?

      Please see answer to question 1 from R1 and Revision Plan #2.

      6) Line 260, please provide minimum information about how the functional connectivity is defined based on assemblies discovered by cRBM.

      We apologize if this was not clear. The first paragraph of this section (lines 248-259) of the submitted manuscript, provides the detail that the reviewer asks for, and we realize that the sentence of line 260 is better placed in the first paragraph, as it has come across as a very minimal explanation of how functional connectivity is defined.

      We have now moved this sentence to the preceding paragraph, as well as specified the Method references (as suggested by this reviewer below), for additional clarity. We thank the reviewer for pointing out this sentence.

      7) Some analysis of the hidden units population activities. Such as whether or not there are interesting low dimensional structure from figure 4A.

      We thank the reviewer for their suggestion. In our manuscript we have used the cRBM model to create a low-dimensional (M=200) representation of zebrafish neural recordings (N=50,000). The richness of this model owes to possible overlaps between HUs/assemblies that can result in significant correlation in their activities. The latter is illustrated in Figure 4A-C: the activity of some HUs can be strongly correlated.

      The reviewer’s suggestion is similar; to perform some form of dimensionality reduction on the low-dimensional HU activity shown in Fig 4. We have now added a PCA analysis to Figure 4 to quantify the degree of low-dimensional structure in the HU dynamics, and show the results in a new panel Figure 4D.

      The following text has been added to the Results section:


      These clusters of HUs with strongly correlated activity suggest that much of the HU variance could be captured using only a small number of variables. We quantified this by performing PCA on the HU dynamics, finding that indeed 52% of the variance was captured by the first 3 PCs, and 85% by the first 20 PCs (Figure 4D).


      We believe that further visualization of these results, such as plotting the PC trajectories, would not further benefit the manuscript. The manuscript focuses on cRBM, and the assemblies/HUs it infers. Unlike PCA, these are not ranked/quantified by how much variance they explain individually, but rather they together ‘compose’ the entire system and explain its (co)variance (Figure 2). Breaking up a dominant activity mode (as found by PCA), such as the ARTR dynamics, into multiple HUs/assemblies, allows for some variation in activity of individual parts of the ARTR circuit (such as tail movement and eye movement generation), even though at most times the activity of these HUs is coordinated. We hope the reviewer agrees with our motivation to keep the manuscript focused on the nature of cRBM-inferred HUs.

      8) Figure 4B right panel, how did the authors annotate the cluster manually? As certain assembly may overlap with several different brain regions, for example, figure 4D.

      We thank the reviewer for this question, and we presume they meant to reference figure 3D as an example? For figure 4, as well as Figure 3, we used the ZBrain Atlas (Randlett et al., 2015) for definition of brain regions. This atlas presents a hierarchy of brain regions: for example, many brain regions are part of the rhombencephalon/hindbrain. This is what we used for midbrain/hindbrain/diencephalon. Further, many assemblies are solely confined to Optic Tectum (see Fig 3L), which we therefore used (split by hemisphere). Then, many brain regions are (partly) connected to the ARTR circuit, such as the example assembly of Figure 3D that the reviewer mentions. These we have all labeled as ARTR (left or right), though technically only part of their assembly is the ARTR. These two clusters therefore rather mean ‘ARTR-related’, in particular because their activity is locked to the rhythm of the ARTR (see Fig 4A). The final category is ‘miscellaneous’ (like Figure 3G).

      However we agree that this wasn’t clear from the manuscript text, so we have changed the figure 4C caption to mention that ‘ARTR’ stands for ARTR-related assemblies, which we hope clarifies that ARTR-clustered assemblies can exist of multiple, disjoint groups of neurons, which relate to the ARTR circuit.

      9) Better reference of the methods cited in the main text. The method part is quite long, it would be helpful to cite the section number when referring it in the main text.

      We thank the reviewer for this helpful suggestion, we agree that it would benefit the manuscript to reference specific sections of the Methods. We have now changed all references to Methods to incorporate this.

      10) Some discussion about the limitation of cRBM would be great.

      We thank the reviewer for this suggestion, and have now included this. As Reviewer 1 had the same suggestion, we refer our answer to questions 2 and 3 from R1 for more detail.

      Reviewer #3 (Significance (Required)):

      This work provides a timely new technique to extract meaningful neural assemblies from large scale recordings. This study should be interested to both researchers doing either experiments and computation/theory. I am a computational neuroscientist.

    2. Note: This preprint has been reviewed by subject experts for Review Commons. Content has not been altered except for formatting.

      Learn more at Review Commons


      Referee #2

      Evidence, reproducibility and clarity

      In their manuscript, van der Plas et al. present a generative model of neuron-assembly interaction. The model is a restricted Boltzmann machine with its visible units corresponding to neurons and hidden units to neural assemblies. After fitting their model to whole-brain neural activity data from larval zebrafish, the authors demonstrate that their model is able to replicate several data statistics. In particular, it was able to replicate the pairwise correlations between neurons as well as assemblies that it was not trained on. Moreover, the model allows the authors to extract neural assemblies that govern the population activity and compose functional circuits and can be assigned to anatomical structures. Finally, the authors construct functional connectivity maps from their model that are then shown to correlate with established structural connectivity maps.

      Overall, the authors present convincing evidence for their claims. Furthermore, the authors state that their code to train their restricted Boltzmann machine models is already available on GitHub and that the data underlying the results presented in this manuscript will be made publicly available upon publication, which will allow people to reproduce the results and apply the methods to their data.

      One thing the authors could maybe discuss a bit more is the "right" parameter value M, especially since they used the optimal value of 200 found for one sample also for all the others. More specifically, how sensitive are the results to this value? And, what happens if one would successively increase that number, would the number of assemblies (in the sense of hidden units that strongly couple to some of the visible units) eventually saturate?

      Moreover, regarding the presentation, I have a few minor suggestions and comments that the authors also might want to consider: - In Figure 6C, instead of logarithmic axes, it might be better to put the logarithmic connectivity on a linear axis. This way the axes can be directly related to the colour bars in Figures 6A and B. - In Equation (8), instead of $\Gamma_{\mu}(I)$ it should be $\Gamma_{\mu}(I_{\mu}(v))$. - In Section 7.0.5, it might make sense to have the subsection about the marginal distributions before the ones about the conditional distributions. The reason would be that if one wants to confirm Equation (8) one necessarily has to compute the marginal distribution in Equation (12) first. - In Line 647f, the operation the authors are referring to is strictly speaking not an L1-norm of the matrix block. It might be better to refer to that e.g. as a normalised L1-norm of the matrix block elements. - In Line 22, when mentioning dimensionality reduction methods to identify assemblies, it might make sense to also reference the work by Lopes-dos-Santos et al. (2013, J. Neurosci. Methods 220).

      Significance

      The work presented in this manuscript is very interesting for two reasons. First, it has long been suggested that assemblies are a fundamental part of neural activity and this work seems to support that by showing that one can generate realistic whole-brain population activity imposing underlying assembly dynamics. Second, in recent years much work has been devoted to developing methods to find and extract neural assemblies from data and this work and the modelling approach can also be seen as a new method to achieve that. As such, I believe this work is relevant for anyone interested in neural population activity and specifically neural assemblies and certainly merits publication.

      Regarding my field of expertise, I used to work on data analysis of neural population activity and in particular on the question of how one can extract neural assemblies from data. I have to say that I have not much experience with fitting statistical models to data, so I can't provide any in-depth comments on that part of the work, although what has been done seems plausible.

    1. both the package

      Code block below says load 'both packages', it would be useful know that you intend to load AER per the solution, the text only mentions MASS.

    1. Obnoxious.

      As someone recently pointed out on HN, it's very common nowadays to encounter the no-one-knows-else-what-they're-doing-here refrain as cover—I don't have to feel insecure about not understanding this because not only am I not alone, nobody else understands it either.

      Secondly, if your code is hard to understand regarding its use of this, then your code his hard to understand. this isn't super easy, but it's also not hard. Your code (or the code you're being made to wade into) probably just sucks. The this confusion is making you confront it, though, instead of letting it otherwise fly under the radar.* So fix it and stop going in for the low-effort, this-centric clapter.

      * Not claiming here that this is unique; there are allowed to be other things that work as the same sort of indicator.

    1. Another thing I’ll do when I’m King of the World is declare that executable code will always be inseparable from it’s source code. Using a script language solves that, of course, because a script is it’s source. For compiled code a second-best solution is the executable always contain pointers to where the source originated, but since that source may disappear the better solution is for language compilers to simply tack the original source code (and related make files and resources) onto the end of the executable in a way that can be commonly extracted. The law will be known as the “All boots shall contain their own bootstraps” decree.
    1. R is real data science software, which, with the language Python, dominate data science, the real stuff.

      Since we are not technically coding, which website would we use to find the code in order to analyze the data for us?

    1. At 3 am he realized he needed to change the process scheduler. He read enough code to find the right method, changed it, and continued with his project

      How do we enable this while preventing people from accidentally nuking their systems?

    2. Dan Ingalls implemented the first opaque overlapping windows to let users see more code and other objects on the screen

      This is interesting context. I wonder if that need has gone away with large screens or if we're not using it the way it was originally intended. My intuition is that auto-layout is generally better but for smaller pieces of data ad hoc overlaps seem fine.

    1. Reviewer #3 (Public Review):

      Truman et al. investigated the contribution and remodeling of individual larval neurons that provide input and output to the Drosophila mushroom body through metamorphosis. Hereto, they used a collection of split-GAL4 lines targeting specific larval mushroom body input and output neurons, in combination with a conditional flip-switch and imaging, to follow the fates of these cells.

      Interestingly, most of these larval neurons survive metamorphosis and persist in the adult brain and only a small percentage of neurons die. The authors also elegantly show that a substantial number of neurons actually trans-differentiate and exert a different role in the larval brain, compared to their final adult functionality (similar to their role in hemimetabolous insects). This process is relatively understudied in neuroscience and of great interest.

      Using the ventral nerve cord as a proxy, the authors claim that the larval state of the neuron would be their derived state, while their adult identity is ancestral. While the authors did not show this directly for the mushroom body neurons under study, it is a very compelling hypothesis. However, writing the manuscript from this perspective and not from the perspective of the neuron (which first goes through a larval state, metamorphosis, and finally adult state), results in confusing language and I would suggest the authors adjust the manuscript to the 'lifeline' of the neuron.

      In general, this manuscript does not explain how the larval brain has evolved as the title suggests but instead describes how the larval brain is remodeled during metamorphosis. It thus generates perspectives on the evolution of metamorphosis, rather than the larval state. Additionally, this manuscript would benefit from major rearrangements in both text and figures for the story to be better comprehended.

      The introduction is very focused on the temporal patterning of the insect nervous system, while none of the data collected incorporate this temporal code. Temporal patterning comes back in the discussion but is purely speculative.

      Furthermore, the second part of the introduction describes one strategy for remodeling and why that strategy is not likely but does not present an alternative hypothesis. The first section of the results might serve as a better introduction to the paper instead, as it places the results of the paper better and concludes with the main findings. The accompanying Figure 1 would also benefit from a schematic overview of the larval and adult mushroom bodies as presented in Fig. 2A (left).

      In the second results section, the authors show the post-metamorphic fates of mushroom body input and output neurons and introduce the concept of trans-differentiation. Readers might benefit from a short explanation of this process. I also encourage the authors to revisit this part of the text since it gives the impression that the neurons themselves undergo active migration (instead of axon remodeling).

      The discussion starts with a very comprehensive overview of the different strategies that neurons could use during metamorphosis (here too, re-writing the text from the neurons' perspective would increase the reflection of what actually happens to them).

      The discussion covers multiple topics concerning trans-differentiation, metamorphosis, memory, and evolution and is often disconnected from the results. It could be significantly shortened to discuss the results of the paper and place them in current literature. Generally, the figures supporting the discussion are hard to comprehend and often do not reflect what the text is saying they are showing.

    1. Installation

      !- installation : example apps | Peergos - From the top of this page click the green 'Code' button and select 'Download Zip'. - Unzip file and upload desired application folder to Peergos - Navigate into application folder, open the context menu for the file 'peergos-app.json' and choose 'Install App' - Make sure to take note of the file associations and permissions requested - Installed Apps are displayed on the Launcher page (top icon in left menu)

    1. . exp(a) computes

      Not easy to read this, it looks like some function f().exp(a)

      Replace last sentence with "Use exp(a) to compute", to separate code and full stop.

    1. True digital ownership is important because it allows gamers sovereignty over durable, on-chain assets. A few of these ownership-enabled use cases include open economies, provenance, and interoperability.

      I think its important to acknowledge that NFTs aren't ever actually owned by players, they are owned by smart contracts and subject to any code in that smart contract. Players have the right to sign transactions in that smart contract involving NFTs marked as being assigned to their wallet address but its really only an illusion of ownership!

    1. type="text/babel"

      important de spécifier cet attribut, afin que javascript ne tente pas d'exécuter ce code, contenant du JSX qui ne sera pas "compris" par JavaScript...

      Ce script sera au contraire exécuté par la librairie Babel, chargée plus haut

  3. betasite.razorpay.com betasite.razorpay.com
    1. curl -X POST https://api.razorpay.com/v1/transfers \ -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \ -H 'content-type: application/json' \ -d '{ "account": "acc_CPRsN1LkFccllA", "amount": 100, "currency": "INR" }' CopyRazorpayClient razorpay = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]"); JSONObject transferRequest = new JSONObject(); transferRequest.put("amount",50000); transferRequest.put("currency","INR"); transferRequest.put("account","acc_CPRsN1LkFccllA"); Transfer transfer = razorpay.transfers.create(transferRequest); Copy$api = new Api($key_id, $secret); $api->transfer->create(array('account' => $accountId, 'amount' => 500, 'currency' => 'INR')); Copyvar instance = new Razorpay({ key_id: 'YOUR_KEY_ID', key_secret: 'YOUR_SECRET' }) instance.transfers.create({ "amount": 500, "currency": "INR" }) Copyclient = razorpay.Client(auth=("YOUR_ID", "YOUR_SECRET")) client.transfer.create({ "amount":500, "currency":"INR" }) Copyrequire "razorpay" Razorpay.setup('YOUR_KEY_ID', 'YOUR_SECRET') para_attr = { "account": accountId, "amount": 500, "currency": "INR" } Razorpay::Transfer.create(para_attr) Copyimport ( razorpay "github.com/razorpay/razorpay-go" ) client := razorpay.NewClient("YOUR_KEY_ID", "YOUR_SECRET") data:= map[string]interface{}{ "account": "<accountId>", "amount": 100, "currency": "INR", } body, err := client.Transfer.Create(data, nil) Copy{ "id":"trf_E9utgtfGTcpcmm", "entity":"transfer", "transfer_status":"pending", "settlement_status":null, "source":"acc_CJoeHMNpi0nC7k", "recipient":"acc_CPRsN1LkFccllA", "amount":100, "currency":"INR", "amount_reversed":0, "notes":[ ], "fees":1, "tax":0, "on_hold":false, "on_hold_until":null, "recipient_settlement_id":null, "created_at":1580219046, "linked_account_notes":[ ], "processed_at":null, "error":{ "code":null, "description":null, "field":null, "source":null, "step":null, "reason":null } }

      @palu : Let's highlight that only 1 transfer request can be created in one API call

    2. error Provides error details that may occur during transfers. code string Type of the error.

      @palu: Same comments as I made in the transfer entity comments

    1. don't do peer-to-peer stuff directly in the browser for 00:03:08 privacy reasons for we don't have a broadcast uip address or anything like that so that's handled by the server but everything the server is treated as untrusted so everything the client gets whether it's a hash or a signature or 00:03:19 whatever is is checked uh in the client code
      • don't do p2p stuff directly in the browser
      • for privacy reason
      • do not broadcast ip address
    1. As just one example, in manycountries in the region homosexuality is criminalized and “homosexual acts”are punishable by law, but these practices clash with France’s legal code, whichboth affords protections and extends certain rights, like access to civil unions, tosame-sex couples

      Martinique criminalizes homosexuality which clashes with France's laws

    Annotators

    1. You could perhaps try `git clone xyz --depth 1` if you just want the source code. That definitely saved my life when I was fuzzing the Linux kernel and had to clone the repo for each version
      • [ ] 值得学习git 回滚
    1. Joe Armstrong - Keynote: The Forgotten Ideas in Computer Science - Code BEAM SF 2018

      [[Video: Joe Armstrong - Keynote: The Forgotten Ideas in Computer Science - Code BEAM SF 2018]] [[@Joe Armstrong]]

    1. Twine was created by a web developer named Chris Klimas in 2009. While in graduate school at the University of Baltimore’s Interaction Design and Information Architecture program, Klimas began writing what he calls “hypertext fiction”—playing with interactivity and narrative outside a game. In order to make life easier for himself, he invented a set of tools that turned source code into interactive HTML. He showed them around to some friends, but no one seemed particularly interested, mostly because they were heavy on programming language and hard to comprehend.
    1. the port is feature complete and can run the entire unit-test workflow

      It seems like there might be reason to shift from one code architecture to another, or some series of software design principles that are idiomatic in the target language but not in the source language, for fear of creating code that's not maintainable or easily understood by those familiar with work in the latter programming language. Does this matter if we're going to hide most of the work behind abstraction boundaries though?

    2. Translated the code directly without refactoring along the way. This makes it easier for reviewers to validate that the code does same thing in both languages. It also enables side-by-side functional and performance testing (on a per-function basis).

      How do we validate that the code does the same thing? I'm not sure that manual review is sufficient - there are too many "gotchas" here. How can we bring in contracts, tests or other semi-verified methods of confirming that computation is accurate, operating in a (relatively) language agnostic way? Is this even possible?

    1. Author Response

      Reviewer #1 (Public Review):

      In their manuscript, these authors present a novel geostatistical framework for modelling the complex animal-environment-human interaction underlying Leptospira infections in a marginalised urban setting in Salvador, Brazil.

      In their work, the authors combine human infection data and the rattiness framework of Eyre et al. (Journal of the Royal Society Interface, 2020) . They use seroconversion defined as an MAT titer increase from negative to over 1:50 or a four-fold increase in titer for either serovar between paired samples from cohort subjects. Whereas this is a commonly used measure of infection; the work would benefit from answering the question about how robust results are related to this definition of seroconversion.

      Thank you for your comment. We have acknowledged this on line 534 in the discussion by adding the following text: “A possible limitation of this study is the titre rise cut-off values used for classifying seroconversion and reinfection in the cohort that determine the sensitivity and specificity of the infection criteria. However, these criteria were used because they are the standard definitions for serological determination of infection that are commonly applied for leptospirosis and a wide range of other infections, and they enable the comparison of results with other previous leptospirosis studies.”

      The model framework relies on the concept of 'rattiness' previously defined by Eyre et al. (JRSI, 2020) and assumes conditional independence within its built up (equation (1)). Whereas this is a reasonable assumption, it would be good to discuss situations in which this assumption is questionable and what the implications are for applying the modelling framework to other settings.

      We have added the following text immediately after “is shown schematically in Figure 2” following equation (1) on line 225: “The conditional independence assumption in (1) is reasonable for a vector-borne disease or one that is transmitted indirectly, in which context the observed rat indices are to be considered as noisy indicators of the unobservable spatial variation in the extent to which the environment is contaminated with rat-derived pathogen. It would be more questionable for applications in which the disease of interest is spread by direct transmission from rat to human.”

      The authors provide an extensive model building exercise and investigate, in different ways, whether the model captures the necessary complexity (GAM smoothers - testing linearity, spatial correlation, etc). I believe the work would benefit from (1) a formal diagnostic investigation, if feasible; (2) providing guidelines on how model building should be performed.

      We have added a new Appendix 7 with diagnostic plots of randomized quantile residuals to check the rattiness-infection model fit with the human infection data and included the following text in Section 2.4 of the main text: “A formal diagnostic investigation of randomized quantile residuals is included in Appendix 7. We found no evidence in the diagnostic plots to suggest that there were issues with our modelling approach.”

      To supplement the R code that is publicly available for repeating all of the steps in this analysis, we have now also included a detailed step-by-step explanation of the model building process in Appendix 8 that outlines the key steps for building the rat and infection components of the model (variable selection and evaluation of residual spatial autocorrelation) and fitting and examining the joint rattiness-infection model. We have added the following text in Section 2.6 of the main text: “We also include a step-by-step explanation of the model building process to guide future users of the rattiness-infection framework in Appendix 8.”

      The authors are to be acknowledged for providing an extensive and thorough discussion of the different aspects of their work. Whereas the discussion is complete, I wonder whether the authors can give a brief example about how this model can be applied in a different setting.

      Thank you. We have added the following text on line 551 in the discussion: “The framework may have important applications beyond the study of zoonotic spillover, with the rattiness component replaced by other exposure measures e.g. mosquito density or ecological indices (such as pollution, where there are multiple, related measures of air or groundwater quality) to model associations with human or animal health outcomes.”

      Reviewer #2 (Public Review):

      Eyre et al. developed and applied a novel geostatistical framework for joint spatial modeling of multiple indices of pathogen (Leptospira) reservoir (rats) abundance and human infection risk. This framework enabled evaluation of infection risk at a fine spatial scale and accounted for uncertainty in the pathogen reservoir abundance estimates. The authors used data collected in two different field projects: (1) a rat ecology study in which three different approaches were used to detect rat presence "rattiness", and (2) a prospective community cohort study in which individuals were sampled during two different time periods to detect recent infections via seroconversion or a four-fold increase in anti-Leptospira antibody MAT titer. Univariable and then multivariable analyses were performed on these data to identify (1) the environmental variables that best predicted "rattiness", and (2) the demographic/social, environmental (household), occupational, and behavioral variables that best predicted human risk of infection. Once identified, the best predictors from (1) and (2) were included in a final, joint model to identify the significant predictors of both 'rattiness' and human infection risk. As a result of this study, the authors were able to detect spatial heterogeneity in leptospiral transmission to humans. They found that infection risk associated with increases in reservoir abundance differed by elevation, and that increases in reservoir abundance at high elevation were associated with a much higher odds ratio for infection than at low elevation. The authors suggest that this has to do with differences in how the infectious leptospires (shed by the rat reservoir) are dispersed in the environment. At high elevations, flooding is less frequent and thus rat shed leptospires are likely to stay where the rat deposited them. Whereas at lower elevations, flooding may play a large role in spreading leptospires more evenly across the landscape, reducing the importance of rat presence at smaller spatial scales. The final best model was then used to generate prediction maps of 'rattiness' as well as human infection risk at all locations within the study area (i.e. including those that lacked rat detection data and human infection data. This work represents an important advance in infection risk modeling as it explicitly incorporates estimates of reservoir abundance and the uncertainty surrounding these estimates into the infection risk assessment, and allows for modeling of infection risk at fine spatial scales. Findings from this study have important management implications at the authors' study site as it suggests that interventions directed at high elevations should be different from those designed to address infection risk at lower elevations. However these are broader implications, as this novel approach may be applied to other systems to enable identification of differences in infection risk for other pathogens at a fine spatial scale, predict infection risk more broadly, and facilitate intervention strategies targeted for the specific epidemiological and ecological conditions experienced by a population.

      This was a well-designed study. The field sampling approach was well balanced, well described and appropriate. Broadly the modeling framework is appropriate for the questions being asked and for the data being used. The variable and model selection approaches were clearly described and appropriate. Evaluation of the more detailed mathematical approach is outside of my area of expertise, so I am unable to comment on the validity of the approach.

      For the most part, the explanatory variables assessed in the different models were well described and justified, however there were some cases for which further explanation would have been helpful. For example, how did the authors determine which occupations to evaluate? Specifically, why traveling salesperson? What is the difference between open sewer within 10 m and unprotected from sewer?

      We have added the following additional text to Section 2.3.2 on line 297 to clarify the definition and reason for inclusion for these variables: “In the household environment domain, two variables were used to capture risk due to sewer flooding close to the household: i) the presence of an open sewer within 10 metres of the household location and ii) a binary `unprotected from open sewer' variable which identified those households within 10 metres of an open sewer that did not have any physical barriers erected to prevent water overflow. Three high-risk occupations were included in the occupational exposures domain as binary variables. Construction workers and refuse collectors have direct contact with potentially contaminated soil, building materials and refuse in areas that provide harbourage and food for rats. Travelling salespeople have regular and high levels of exposure to the environment (particularly during flooding events) as they move from house to house by foot. Two other binary occupational exposure variables were included that measured whether a participant worked in an occupation that involves contact with floodwater or sewer water.”

      I also had some concerns regarding the time-period of the rat ecology study used to determine abundance, potential fluctuations in rat abundance through time, and how this might align with sampling to detect infection in humans. Depending on the time scale of population fluctuation in rats as well as fluctuations in infection prevalence in rats, the abundances calculated from data from the ecology study may not be accurately reflecting true abundance (and therefore shedding and transmission risk) during the time period that a human may have been exposed. However, the authors do a nice job of addressing some of these issues in the discussion. They mention that infection prevalence in rats is consistently around 80% and that there don't appear to be seasonal fluctuations in human exposure risk in the study area.

      Thank you.

      Reviewer #3 (Public Review):

      The goal of the authors was to test how important local rat abundance is as a driver of Leptospira infection in humans.

      The authors approached this using a strong combination of datasets on human infection risk and rat abundance, across a spatial scale that is large enough to allow simultaneous assessment of multiple potentially important drivers of infection risk. This further enables the authors to develop infection prediction maps based on the fitted models.

      This study design is a major advance towards understanding link between rat abundance and human infection risk.

      Based on the top models tested in the study, the authors conclude that local rat abundance is indeed correlated with infection risk, and that this correlation is strongest at higher elevation.

      This is an impactful finding, but in my opinion it is not yet clear how robust and important this is, because of two reasons:

      (1) The infection risk data: while the actual infection risk data are not shown, the map shown in Figure 5B suggests that there is an infection hotspot that happens to be at high elevation. This raises the question of how strongly this single hotspot is driving the observed correlation between rat abundance and infection risk (which the authors find to be much stronger at high elevation than at lower elevations).

      We have added a new figure (Figure 4) earlier on in the article (we decided to add this here rather than to Figure 6 - formerly Figure 5 - to ensure that the map is large enough that points in Figure 4A are easily visible – please note that it is included as a larger and easier to view image in the main eLife template version) with the raw infection data overlaid on contour lines for the three elevation levels to provide the reader with a better overview of the raw data. This new Figure 4 shows that out of a total of 403 participants in the high elevation region there were 16 infections, of which only 5 (31%) were located in the large hotspot in Valley 3 (valleys are numbered 1 to 3 from west to east, see Figure 1A). In addition to the largest hotspot in the north of Valley 3, there are several other areas in the high elevation region with raised predicted infection risk values relative to their surroundings where there were also rattiness hotspots and infected participants in the raw data: fives cases (red and yellow infection risk areas in Figure 5B) on the western side of Valley 2; the two cases on the eastern edge of Valley 2; the two cases on the western edge of Valley 3; and the single case in the southwest of Valley 3. Other variables are also important drivers of infection risk and at several of these locations the contribution of rattiness increases infection risk significantly relative to the low-risk surrounding area (e.g. to 10% in areas where risk is closer to 1% or 2%) without reaching the more obviously visible high infection risk values closer to 20%. We believe that our statistical model provides a better test of whether there is a statistical association between rattiness and infection at high elevations than a visual examination, but that this is supported by the large number of observations in the high elevation area (403) and the distribution of infected and uninfected households, which demonstrates that the observed association is not only driven by the hotspot in Valley 2.

      (2) The statistical models: if I understand correctly, all tested models of infection risk include the variable rat abundance, and while the individual effect estimates for rat abundance are statistically significant (Table 3), the more important question of how the fit of a model without the rat abundance variables compares with those of the other tested models (shown in Supplementary Table S2) has not been addressed.

      These models were considered but were ranked outside of the top five models and for this reason were not reported in Table S2. We agree that showing the AIC of a model without rattiness in this table can more clearly demonstrate the improved fit of the model with rattiness. To do this we have added the highest ranked model without rattiness (M) to Table S2 and added a note to the table explaining the reason for its inclusion (“Model M was ranked outside of the top 5 models but is included here for reference to demonstrate the improvement in model fit when rattiness is included”). The AIC of M* was 532.13. This is substantially higher than the top five models (M1 = 523.14 and M5 = 525.04), justifying its inclusion in this model and in the joint rattiness-infection framework.

      Regardless of whether rat abundance is an important driver of human infection risk, this study is a major step in our understanding of the role of rats in the spread of leptospirosis, due to the strong combination of a unique combination of datasets and a spatial statistical modeling approach.

      Thank you.

    1. Don’t make claims unless you can cite documentation, formalized guidelines, and coding examples to back those claims up. People need to know why they are being asked to make a change, and another developer’s personal preference isn’t a good enough argument.
    1. Dynamic typing makes that harder

      So run a typechecker on the code to check your work if you want type checking. That is what TypeScript does, after all. And it's been around long enough that people shouldn't be making the mistake that a runtime that support dynamic types at runtime means that you can't use a static typechecker at "compile time" (i.e. while the code is still on the developer workstation).

    2. The point is to write bug-free code.

      With this comment, the anti-JS position is becoming increasingly untenable. The author earlier suggested C as an alternative. So their contention is that it's easier to write bug-free code in C than it is in JS. This is silly.

      C hackers like Fabrice Bellard don't choose C for the things they do because it's easier to write bug-free code in C.

    1. what’s the point of going with web-like scripts instead of more traditional code

      Where does it say they're "going with web-like scripts"? (And what is "more traditional code"?)

    1. if guess == 'help':

      You could make each of these branches its own function. This would shorten the code a bit and make it clearer because you could name the function something informative like: print_help()

    2. word_length = 5

      Often people will put the stuff at the top level (like this variable declaration, for instance) into a function, then only have one top level statement that looks like:

      if name == 'main': my_top_level_function()

      Doing so makes it so that other users can import your code without having it run. If you do it like this, the my_top_level_function will only run if it is directly invoked by the interpreter.

    1. Reviewer #1 (Public Review):

      This work describes a new method, Proteinfer, which uses dilated neural networks to predict protein function, using EC terms and GO terms. The software is fast and the server-side performance is fast and reliable. The method is very clearly described. However, it is hard to judge the accuracy of this method based on the current manuscript, and some more work is needed to do so.

      I would like to address the following statement by the authors: (p3, left column): "We focus on Swiss Prot to ensure that our models learn from human-curated labels, rather than labels generated by electronic annotation".

      There is a subtle but important point to be made here: while SwissProt (SP) entries are human-curated, they might still have their function annotated ("labeled") electronically only. The SP entry comprises the sequence, source organism, paper(s) (if any), annotations, cross-references, etc. A validated entry does not mean that the annotation was necessarily validated manually: but rather that there is a paper backing the veracity of the sequence itself, and that it is not an automatic generation from a genome project.<br /> Example: 009L_FRG3G is a reviewed entry, and has four function annotations, all generated by BLAST, with an IEA (inferred by electronic annotation) evidence code. Most GO annotations in SwissProt are generated that way: a reviewed Swissprot entry, unlike what the authors imply, does not guarantee that the function annotation was made by non-electronic means. If the authors would like to use non-electronic annotations for functional labels, they should use those that are annotated with the GO experimental evidence codes (or, at the very least, not exclusively annotated with IEA). Therefore, most of the annotations in the authors' gold standard protein annotations are simply generated by BLAST and not reviewed by a person. Essentially the authors are comparing predictions with predictions, or at least not taking care not to do so. This is an important point that the authors need to address since there is no apparent gold standard they are using.

      The above statement is relevant to GO. But since EC is mapped 1:1 to GO molecular function ontology (as a subset, there are many terms in GO MFO that are not enzymes of course), the authors can easily apply this to EC-based entries as well.

      This may explain why, in Figure S8(b), BLAST retains such a high and even plateau of the precision-recall curve: BLAST hits are used throughout as gold-standard, and therefore BLAST performs so well. This is in contrast, say to CAFA assessments which use as a gold standard only those proteins which have experimental GO evidence codes, and therefore BLAST performs much poorer upon assessment.

      Pooling GO DAGs together: It is unclear how the authors generate performance data over GO as a whole. GO is really 3 disjoint DAGs (molecular function ontology or MFO, Biological Process or BPO, Cellular component or CCO). Any assessment of performance should be over each DAG separately, to make biological sense. Pooling together the three GO DAGs which describe completely different aspects of the function is not informative. Interestingly enough, in the browser applications, the GO DAG results are distinctly separated into the respective DAGs.

      Figure 3 and lack of baseline methods: the text refers to Figures 3A and 3B, but I could only see one figure with no panels. Is there an error here? It is not possible at this point to talk about the results in this figure as described. It looks like Figure 3A is missing, with Fmax scores. In any case, Figure 3(b?) has precision-recall curves showing the performance of predictions is the highest on Isomerases and lowest in hydrolases. It is hard to tell the Fmax values, but they seem reasonably high. However, there is no comparison with a baseline method such as BLAST or Naive, and those should be inserted. It is important to compare Proteinfer with these baseline methods to answer the following questions: (1) Does Proteinfer perform better than the go-to method of choice for most biologists? (2) does it perform better than what is expected given the frequency of these terms in the dataset? For an explanation of the Naive method which answers the latter question, see: (https://www.nature.com/articles/nmeth.2340)

    2. Reviewer #2 (Public Review):

      In this paper, Sanderson et al. describe a convolutional neural network that predicts protein domains directly from amino acid sequences. They train this model with manually curated sequences from the Swiss-Prot database to predict Enzyme Commission (EC) numbers and Gene Ontology (GO) terms. This paper builds on previous work by this group, where they trained a separate neural network to recognize each known protein domain. Here, they train one convolutional neural network to identify enzymatic functions or GO terms. They discuss how this change can deal with protein domains that frequently co-occur and more efficiently handle proteins of different lengths. The tool, ProteInfer, adds a useful new tool for computational analysis of proteins that complements existing methods like BLAST and Pfam.

      The authors make three claims:<br /> 1) "ProteInfer models reproduce curator decisions for a variety of functional properties across sequences distant from the training data"<br /> .<br /> This claim is well supported by the data presented in the paper. The authors compare the precision-recall curves of four model variations. The authors focus their training on the maximum F1 statistic of the precision-recall curve. Using precision-recall curves is appropriate for this kind of problem.

      2) "Attribution analysis shows that the predictions are driven by relevant regions of each protein sequence".

      This claim is very well supported by the data and particularly well illustrated by Figure 4. The examples on the interactive website are also very nice. This section is a substantial innovation of this method. It shows the value of scanning for multiple functions at the same time and the value of being able to scan proteins of any length.

      3) "ProteInfer models create a generalised mapping between sequence space and the space of protein functions, which is useful for tasks other than those for which the models were trained."

      This claim is also well supported. The print version of the figure is really clear, and the interactive version is even better. It is a clever use of UMAP representations to look at the abstract last layer of the network. It was very nice how each sub-functional class clustered.

      The interactive website was very easy to use with a good user interface. I expect will be accessible to experimental and computational biologists.

      The manuscript has many strengths. The main text is clearly written, with high-level descriptions of the modeling. I initially printed and read the static PDF version of the paper. The interactive form is much more fun to read because of the ability to analyze my favorite proteins and zoom in on their figures (e.g. Figure 8). The new Figure 1 motivates the work nicely. The website has an excellent interactive graphic showing how the number of layers in the network and the kernel size change how data is pooled across residues. I will use this tool in my teaching.

      The manuscript has only minor weaknesses. It was not clear if the interactive model on the website was the Single CNN model or the Ensemble CNN model.

      Overall, ProteInfer will be a very useful resource for a broad user base. The analysis of the 171 new proteins in Figure 7 was particularly compelling and serves as a great example of the utility and power of ProteInfer. It completes leading tools in a very valuable way. I anticipate adding it to my standard analysis workflows. The data and code are publicly available.

    1. Reviewer #2 (Public Review):

      In this manuscript, Ibanez-Sole et al. focus on an important open question in ageing research; "how does transcriptional noise increase at the cellular level?". They developed two python toolkits, one for comparison of previously described methods to measure transcriptional noise, Decibel, and another one implementing a new method of variability measure based on cluster memberships, Scallop. Using published datasets and comparing multiple methods, they suggest that increased transcriptional noise is not a fundamental property of ageing, but instead, previous reports might have been driven by age-related changes in cell type compositions.

      I would like to congratulate the authors on openly providing all code and data associated with the manuscript. The authors did not restrict their paper to one dataset or one approach but instead provided a comprehensive analysis of diverse biology across murine and human tissues.

      While the results support their main conclusions, the lack of robustness/sensitivity measures for the methods used makes it difficult to judge the biology. The authors use real data to compare between methods but using synthetic data with known artificial 'variability' across cell clusters can first establish the methods, which would make the results more convincing and easier to interpret. Despite the comprehensive analysis of biological data, a detailed prior description of how the methods behave against e.g. the number of cells in each cell type cluster, the number of cell types in the dataset, and % feature expression, would make the paper more convincing. Once the details of the method is provided, the python toolkit can be widely used, not limited to the ageing research community. I am also concerned that a definition of 'transcriptional noise' (e.g. genome-wide noise, transcriptional dysregulation in cell-type-specific genes, noise in certain pathways) and its interpretation with regard to the biology of ageing is missing. Differences in different methods could be explained by the different biology they capture. Moreover, the interpretation of a lack of different types of variability may not be the same for the biology of ageing.

      Increased transcriptional noise is compatible with genomic instability, loss of proteostasis and epigenetic regulation. Showing a lack of consistent transcriptional noise can challenge the widespread assumptions about how these hallmarks affect the organism. Overall, I found the paper very interesting and central to the field of ageing biology. However, I believe it requires a more detailed description of the methods and interpretations in the context of biology and theories of ageing.

      Major comments:<br /> 1. The concept of transcriptional noise is central to the manuscript; however, what the authors consider as transcriptional noise and why is not clear. Genome-wide vs. function or cell-type specific noise could have different implications for the biology of ageing. In line with this, a discussion of the findings in the context of theories of ageing is necessary to understand its implications.<br /> 2. While I found the suggested method, Scallop, quite exciting and valuable, I would suggest including a number of performance/robustness measures (primarily based on simulations) on how sensitive the method is to the number of cells in each cell type (cellular composition), misannotations, % feature expression (number of 0s) etc.:<br /> 2.1. Most importantly, knowing that cell-type composition changes with age, it is important to know how sensitive community detection is to the number of cells in each cell type. While the average can be robust, I wonder if the size of the cell-type cluster affects membership (voting).<br /> 3. Although the Leiden algorithm is widely used by many single-cell clustering methods, since the proposed methodology is heavily dependent on clustering, I suggest including a description of the Leiden algorithm.<br /> 3.1. Most importantly, the authors comment that they found stronger expression of cell-type specific markers in the cells with high membership values - is it already a product of the Leiden algorithm that it weighs highly variable (thus cell-type specific) features higher - resulting in better prediction of cell-types for cells with strong cell-marker expression? It is important to make a description of transcriptional noise at this stage as it could be genome-wide or more specific to cell-type markers. Can authors provide any support that their method can capture both?<br /> 4. The authors conclude that Scallop outperforms other methods through the analysis of biological data, where there is no positive and negative control. I suggest creating synthetic datasets (which could be based on real data), introducing different levels of noise artificially (considering biological constraints like max/min expression levels) and then testing the performance where the truth about each dataset is known. Otherwise, the definitions of noisy and stable cells, regardless of the method, are arbitrary.

    1. Das BMBF will Anreizsysteme zur Erstellungund Nutzung von OER schaffen, ausbauen sowiebestehende technische, pädagogische undorganisatorische Rahmenbedingungen verbessern.

      Was ich vermisse: "rechtliche Rahmenbedingungen"

      Heißt das nun endlich auch, dass eine Förderung durch das BMBF an Offenheit als Voraussetzung geknüpft wird? Zum Beispiel "public money, public code", Material verpflichtend als OER, Publikationen unter offener Lizenz, Open Science, ...

    1. Reviewer #3 (Public Review):

      Numerous studies have demonstrated that the neural dynamics on different brain areas encode elapsed time, yet it has proven challenging to examine how these population clocks emerge over the course of learning because most temporal tasks require many training sessions. In this manuscript the authors use a simple timing task that can be learned in a single day, and accompany the changes in neural dynamics in the mPFC and STR of the first and second day on the task. The most interesting finding is a switch in which the mPFC provides a better code than the STR for elapsed time on the first day, but the STR provides a better code than the mPFC on the second day. Consistent with the increased encoding of time in the mPFC early in training, muscimol inactivation of the mPFC impaired learning of the task, but not performance in trained animals. Overall this study provides a number of novel contributions to our understanding of temporal processing, and show the first example of learning-dependent switch from the dynamics of the mPFC to that of the STR encode time.

    2. Evaluation Summary

      This study investigates the question of whether distinct brain areas differentially encode time during the learning of a simple motor timing task. The key novel result is that early in training the dynamics of the medial prefrontal cortex (mPFC) provides the best code for time, but later in training, the basal ganglia and in particular, the striatum provides a better code. In addition, the study shows that inactivation of mPFC produces a delayed learning effect, while inactivation of the striatum after learning led to impaired performance. The observation that temporal coding and the necessity of brain area for task performance transfers from medial prefrontal cortex to the striatum during learning is an intriguing observation for our understanding of the neural mechanisms underlying temporal processing in sensorimotor control.

      (This preprint has been reviewed by eLife. We include the public reviews from the reviewers here; the authors also receive private feedback with suggested changes to the manuscript. Reviewer #1 agreed to share their name with the authors.)

    1. Another consequence of restricted templates is that SSG documentation will then tell you to work in a third place: not in content, not in templates, but in “config code”. This is a problem because A) it’s probably one place too many and B) it’s often unclear at what time this config code is running or how often: once for every page generation or template run, or just once at the start of a build?

      I agree with this. I hate the config code and I get away with using almost none of it.

    2. Or you have to write some configuration code that populates “Collections” ahead of build time. (Too indirect, and breaks if you change your information architecture a bit. We need something a bit closer to direct manipulation!)

      You can do this in 11ty without configuration code with folder structures and directory data files.

    3. They’re often written by developers — professionals or hobbyists — to power their own small website or blog, and as such they tend to have a limited feature set. SSG are close parents to scripts: short programs (a few hundred lines of code), which can be used from a command prompt to achieve specific tasks. They’re often built as a hobby by one developer, sometimes getting help from a few others months or years later.

      Does it make sense to class the big'uns (Jekyll, Hugo, etc.) with somebody's bash script as the same kind of thing? Is there really more use of the latter?

    1. Reviewer #3 (Public Review):

      Understanding how neural representations throughout the brain, including the hippocampus, interact with neuromodulators such as acetylcholine to support flexible and lasting episodic memories is a fundamental question of interest to a broad neuroscientific community. Here, Blair et al. build on existing literature to concurrently characterize the relationships among these elements. Using large-population widefield miniscope recordings combined with systemic scopolamine administration in rats, the authors first demonstrate that localized aversive experiences result in lasting avoidance behavior as well as changes to (a.k.a. 'partial remapping of') the hippocampal neural code, with lasting changes occurring predominantly near the aversive experience, all replicating prior work with high precision. Next, the authors show that systemic administration of the acetylcholine antagonist scopolamine during the aversive experience gives rise to a different but reliable hippocampal code during that experience. Moreover, rats on scopolamine did not exhibit lasting avoidance behavior or changes to their hippocampal codes from before or after the experience, suggesting that the instantiation of a different hippocampal code during the aversive experience shielded the existing representation and its associated behavior from experience-induced changes. Together, these results demonstrate novel, provocative links between episodic memory, the plasticity of hippocampal neural codes, and the neuromodulator acetylcholine, with a number of important implications for how this memory system functions.

      In my eyes, this work has a number of strengths. One major strength is the power and precision afforded by the use of the large-field miniscope recordings. While this may leave questions of fine temporal structure unaddressable, many of the questions of interest here are best addressed with large populations of simultaneously-recorded neurons that can be confidently tracked across at least a week, all of which are strengths of this technique. Another strength of this work is the replicate and extend approach to addressing the relationships among this work's components. The links to prior work in all of these cases are well noted, the replications of prior results are often with significantly more statistical power than the original result had, and these replications raise confidence in the quality of the data and the novel results reported here.

      As with all work, this too has its limitations. One fundamental limitation is the inability to speak to functional localization. That is, although this work points to provocative correlational links among acetylcholine, the plasticity of hippocampal codes, and behavioral memory expression (all of which are well-motivated by existing literature) because the administration of scopolamine is systemic and only one region can be monitored it is impossible to draw causal conclusions from this work. While it is tempting to infer that manipulating acetylcholine modulation of hippocampal plasticity is necessary and sufficient to produce these results, it is also possible that the behavioral impact of the acetylcholine manipulation is driven by regions outside of the hippocampus and that changes to the hippocampal plasticity are not behaviorally relevant, or that these changes are necessary but not sufficient to drive memory expression. A specific version of this limitation is referenced by the authors in the discussion when considering the possible impact of the manipulation on amygdala responses.

      Despite its limitations, this work meaningfully complements and extends existing literature probing the links between episodic memory, the plasticity and stability of hippocampal codes, and neuromodulators such as acetylcholine.

    1. Write clean code with minimal cleverness Comprehensibility and resilience far outweigh cleverness. Arcane solutions are not a badge of honor, and understanding your code shouldn’t be a hazing ritual. Don’t be afraid to be boring. New problems do not typically require new technology, nor new architectures. Consistent code helps us ship quickly and sensibly: common conventions and patterns speed everyone up. Experienced team members can understand and extend such code with greater ease, and new developers can get up to speed in a project faster.
    2. 1. Ship quickly, but sustainably Ship useful stuff to our users frequently, but responsibly, by way of small iterations and resilient conventions. Keep your changes small Small pull requests (PRs) lead to stronger code, faster iteration, sustainable velocity and a happier team. Smaller PRs with well-structured commits are a kindness to your reviewers, who benefit from a lighter context-switching demand. Code review cycles are speedier and of higher quality: reviewers are able to evaluate the entire change, quickly, without undue cognitive fatigue or LGTM-overwhelm. Smaller changes sharpen your focus, encouraging modular code with a purity of purpose. This in turn elicits clear code organization and can make coding and test-writing faster. Iterate, deploy, repeat Frequently ship iterative changes, using a reliable and non-intimidating deployment mechanism. Smaller releases make it easier to pinpoint a problem should something go awry, and are more straightforward to verify in our QA step. Deploying more often gets features and fixes to users fast, and avoids making giant leaps in (potentially) the wrong direction.
    1. Github has removed Tornado Cash’s source code and banned source contributors (hence the need for decentralized alternatives like Radicle). 

    1. We are not asking people to send us VMs, but to send us what they think we need to get the experiment to run. This is usually a few megabytes of code and maybe executables. Assuming we can run it in a standard environment, we can make our own VM without one ever being sent to us.

      X for thee, not for me

    2. There has been significant pressure for scientists to make their code open, but this is not enough. Even if I hired the only postdoc who can get the code to work, she might have forgotten the exact details of how an experiment was run. Or she might not know about a critical dependency on an obsolete version of a library.
    1. the reason a lot of studies are made of these price and volume variables is that now, in the age of computers, there are almost endless data available about them. It isn’t necessarily because such studies have any utility; it’s simply that the data are there and academicians have worked hard to learn the mathematical skills needed to manipulate them. Once these skills are acquired, it seems sinful not to use them, even if the usage has no utility or negative utility.

      Applicable as criticism for: - marketing analytics for "data-driven" campaigns - the sort of resume-driven development that is fashionable on Github - naive code reuse, generally

    1. Finally, in anticipation of an argument that I expect to see, let me stress that this is not a technical issue. Computing technology moves at a fast pace, but that doesn’t mean that lack of stability is a fatality. My last Fortran code, published in 1994, still works without changing a single line. Banks have been running Cobol code unchanged for decades. Today’s Java implementations will run the very first Java code from 1995 without changes, and even much faster thanks to JIT technology. This last example also shows that stability is not in contradiction with progress. You can have both if that’s a design goal. It’s all a matter of policy, not technology.
    1. explicit documentation of both the execution environment used to run the software and all requirements and dependencies of systems, software, and libraries should be clearly noted in the code and/or readme file (Benureau and Rougier 2018). While time passing can make software obsolete, it also fades the memories of researchers. For that reason alone, it is important to annotate source code to explain the intended operations, which supports reproducibility for the original research team while also supporting future reusers (Benureau and Rougier 2018)
    1. over the seven years of the project, I ended upspending a lot of time catching up with dependencies. Newreleases of NumPy and matplotlib made my code collapse,and the increasing complexity of Python installations addedanother dose of instability. When I got a new computer in2013 and installed the then-current versions of everything,some of my scripts no longer worked and, worse, oneof them produced different results. Since then, softwarecollapse has become an increasingly serious issue for mywork. NumPy 1.9 caused the collapse of my MolecularModelling Toolkit, and it seems hardly worth doing muchabout it because the upcoming end of support for Python 2in 2020 will be the final death blow.
    1. Evaluation Summary:

      This study will interest basic and clinical scientists and, potentially, device manufacturers interested in the regulation of heart rate in health and disease. A major control of the heart is from the nervous system originating in a neuronal cluster sitting outside the heart called the stellate ganglia. This study has identified the neural code associated with a healthy heart and describes how it changes in disease. Whether the change in code is cause or effect remains equivocal although normalising the code may have valued therapeutic benefit. The study opens the way for sophisticated mimicking of healthy neural code applied to a diseased heart as a potential electroceutical approach.

      (This preprint has been reviewed by eLife. We include the public reviews from the reviewers here; the authors also receive private feedback with suggested changes to the manuscript. The reviewers remained anonymous to the authors.)

    2. Reviewer #1 (Public Review):

      The authors have performed a deep mathematical analysis of unitary data recorded from the stellate ganglion to understand how the neural code is altered in heart failure.

      The study is advantaged by being performed in vivo with afferent and efferent pathways intact. The use of modern microelectrode arrays has allowed mass activity to be recorded from multiple sites simultaneously within the ganglion. The authors have a number of powerful analytical tools that have revealed quantitative changes of interest.

      The data are from animals under anesthesia with an open chest and open pericardial sac and one wonders what effect this has on the neural activity given the changes in pulmonary physiology this will cause.

      Some of the data are from pigs where resiniferatoxin (a chemical agent to kill sensory afferents) was applied to the epicardial surface. Given the elevation in sensitivity of cardiac afferent reflexes in heart failure (Schultz, Zucker, and others), it is surprising that this had no effect on the neural activity recorded in the heart failure animals. Either the afferents were not destroyed (no data given to demonstrate this) or these sensory fibres play no role in the changes in neural activity reported from heart failure pigs. This would go against current data and remains unclear.

      Most of the stellate neurons project to non-cardiac tissues. One does not get a sense of the proportion of activity that was related to the heart (left ventricular pressure) and whether in heart failure there is an elevated activity within a confined network or recruitment of additional networks. In this regard, the manuscript is jargon-heavy and for those that are physiologists, the subtleties of the study may be lost.

      Finally, the authors could provide a clearer take-home message and break out of the shackles of math talk and interpret the possible physiological relevance of the work as well as why it is important to understand the changes in stellate neural network dynamics in heart failure.

    1. Author Response

      Reviewer #1 (Public Review):

      In this paper, Jan Kubanek attempts to derive an 'effective decision strategy' that is optimal (and therefore normative) given certain constraints resulting from computational capacity limitations. The author first points out that neoclassical economics (i.e., expected utility theory, EUT) provides normative predictions for decisions to maximize utility. Next, he (correctly) points out that finding the optimal solutions to decision problems requires computational resources that are unlikely to exist in actually existing decision-makers (animals and humans). He claims that this fact is the most severe problem for concluding that EUT is an accurate description of actual human or animal decision processes. I disagree with him on this point as I will lay out in more detail below. Next, the author attempts to find an 'efficient' (i.e., computationally reasonable) decision strategy that comes close to the original normative framework. He claims that such a strategy is EDM, whereby decisions are made by allocating relative effort in proportion to the relative reward of each option.

      Overall, I find this paper hard to judge. The considerations described in this paper are certainly interesting and I have no reason to presume that the mathematical derivations described are wrong (without having made an effort to follow and check it in detail). Still, I find the paper, in the end, sterile and I fear it will have only limited impact. I think the manuscript should be expanded in three different directions to make it more relevant for the neuroscientific understanding of decision making.

      First, the author needs to show that EDM can also explain other known violations of EUT related to the axiom of regularity (i.e., preferences between two options should not be affected by the presence of inferior options). This seems relevant because these behavioral effects robustly violate the choice allocation strategy of EDM.

      Second, EDM is so abstract that the actual structure and capacity of the nervous system are nearly irrelevant. The author should consider more deeply the computational requirements and capacities of different types of brains; fruit flies, frogs, and primates, and the consequences of these differences for what is (or should be) achievable in terms of optimal behavior.

      Third, the paper contains no test for EDM. This is in part because EDM is at no point compared to the predictions of alternative theories.

      I thank the Reviewer for these constructive comments, which are addressed below.

      My specific concerns are as follows:

      (1) The author claims that the most severe problem of EUT is that it is computationally implausible. However, I disagree.

      It could be claimed that EUT describes an (unattainable) optimal state that actual brains try to accomplish with limited resources. (In essence, the current paper follows this strategy).

      Correct, EDM stems from Expected Utility Theory subjected to specific biological considerations, as shown in Figure 1.

      Given this origin, the paper now makes more appropriate statements regarding the biologically-relevant shortcomings of EUT:

      i) Abstract: "the apparatus requires a large number of evaluations of the decision options as well as neural representations and computations that are not biologically plausible."—>"the apparatus requires a large number of evaluations of the decision options as well as neural representations and computations that are difficult to implement at the biological level" ii) Introduction: "To address these biologically implausible requirements, …" —> "To address the biological constraints, …").

      I think the situation is much direr. During the last 70 years, a small army of psychologists and behavioral economists have described a large number of violations of EUT's normative predictions: the Allais paradox, framing effects, the behavioral tendencies summarized in Prospect theory, and others. These differences between behavior and normative predictions are important because they violate basic assumptions of the normative theory.

      Prospect theory can be readily incorporated into EDM.

      This has resulted in the following paragraph in the Discussion:

      "Notably, the 𝑢𝑖 and 𝑒𝑖 variables can incorporate additional factors such as the probability of an outcome, as in prospect theory (Kahneman and Tversky, 1979). A previous study (Kubanek, 2017) demonstrates that prospect theory’s incorporation of probabilities into utilities does not change the relationship between the differential formulation of Equation 1 and the fractional formulation of Equation 2, which is crucial for EDM. Moreover, the 𝑢𝑖 and 𝑒𝑖 variables can be entirely subjective. So long as the representations are comparable by the brain (e.g., through relative firing rates; Figure 6), the 𝑒𝑖 = 𝑢𝑖 strategy provides an efficient allocation of the decision-maker’s resources."

      (2) The most interesting case of such violations is a set of well-known behavioral effects that occur in the context of multi alternative-multi attribute decision making. They are known as the attraction, similarity, and compromise effects (there is a large literature; more recently: Dumbalska T, Li V, Tsetsos K, Summerfield C. A map of decoy influence in human multi alternative choice. Proc Natl Acad Sci U S A. 2020 Oct 6;117(40):25169-25178. doi: 10.1073/pnas.2005058117. Epub 2020 Sep 21.) These biases have received so much attention because they violate a very basic axiom of EUT. Choices between two options should not be affected by the presence of a third option that is inferior to both of them. However, that is exactly what happens in these choice biases. The effects have been shown in many species ranging from humans to amphibians to invertebrates. As far as I can see, EDM cannot explain how choice allocation between two options A and B that have equal value would be changed by the inclusion of a new option D so that is of lower value than A or B in such a way that D is not chosen at all, but A is chosen more often than B if D is similar in attributes to A (the 'attraction' effect). If I am mistaken, the inclusion of an explanation of how this would work would be of major importance.

      The new Figure 6 provides a starting point for addressing these effects.

      Specifically, this comment has resulted in the following Discussion paragraph:

      "In EDM, the relativistic representation of utility at the neural level (black bars in Figure 6) involves divisive normalization. Divisive normalization a common operation performed by neural circuits (Carandini and Heeger, 2012). The specific form of this operation may be crucial for explaining attraction, similarity, and compromise effects observed in multi-alternative, multi-attribute decision environments (Noguchi and Stewart, 2014; Dumbalska et al., 2020). For instance, it has been found that a transformation of utilities by specific monotonic functions prior to divisive normalization can explain these behavioral effects parsimoniously (Dumbalska et al., 2020). On this front, monotonic transformations and divisive normalization are performed by several kinds of feedforward and feedback neural circuits (Lek et al., 1996; Carandini and Heeger, 2012). Nonetheless, how exactly individual attributes of decision options are encoded at the neural level should be investigated using large-scale neuronal recordings."

      (3) EDM as described in this manuscript is completely static, that is it ignores actual computational processes that underlie decision making. This is in opposition to an important modern branch of decision research that has stressed the importance of understanding processes (and their limitations) to understand how choices are made. Examples are: (1) Roe RM, Busemeyer JR, Townsend JT. Multialternative decision field theory: a dynamic connectionist model of decision making. Psychol Rev. 2001 Apr;108(2):370-92. doi: 10.1037/0033-295x.108.2.370. PMID: 11381834.; (2) Tsetsos K, Usher M, Chater N. Preference reversal in multiattribute choice. Psychol Rev. 2010 Oct;117(4):1275-93. doi: 10.1037/a0020580. PMID: 21038979. The relationship between EDM and algorithmic implementations should be explored.

      This point has been addressed in the following ways:

      1) EDM is now implemented at the algorithmic level while positioned within stochastic choice environments.

      2) The performance of EDM in the stochastic environments is reported in a new Figure 4.

      3) The performance of EDM within the stochastic and deterministic environments is now compared in a new Figure 5. The figure shows that both environments support the same principal conclusions.

      4) Figure 4b provides mechanistic examples of the individual effort allocations by EDM and alternative strategies.

      5) The Discussion includes a new paragraph that places EDM within a broader context of algorithmic implementations:

      "In deterministic environments, EDM comprises a single stage that embodies Equation 7. This rule is analogous to the evolutionarily stable “relative reward sum” in ecology (Harley, 1981; Hamblin and Giraldeau, 2009) and “local fractional income” in neuroscience (Sugrue et al., 2004). In dynamic and stochastic environments, the strategy should additionally incorporate an integration stage that mitigates the effect noise and thus provides meaningful estimates of the worth of each option. Several approaches can be used to keep track of dynamic, stochastic environments and thus estimate their relative worth 𝑢𝑖. The most compact are related to reinforcement learning, in which previous payoffs are discounted exponentially using a “learning rate.” This approach has been applied in ecology (Harley, 1981; Hamblin and Giraldeau, 2009), computer science (Sutton and Barto, 1998), neuroscience (Sugrue et al., 2004; Corrado et al., 2005), and was also applied here when assessing performance in stochastic environments. One benefit of this free parameter is that decision-makers can adapt the learning rate to the speed of change or the level of stochasticity of specific decision situations (Iigaya et al., 2019)."

      (4) Most importantly, what is missing is a clear prediction for a finding (behavioral or neuronal) that would only be predicted, but not by any other theory of decision making. Without such a proposed test, the idea has no scientific merit.

      The paper includes new analyses and text that provide predictions that are specific to EDM. Specifically, this point has been addressed in three ways:

      1) The three predictions that are specific to EDM are now made explicit in a new Figure 5. The figure also provides quantitative support of EDM through performance evaluations across these predictions.

      2) The Results include the following text regarding the key defining properties of EDM: "Figure 5 summarizes and expands on the defining properties of EDM. First, the main finding of this article is that EDM is characterized by high performance following a single evaluation of decision options (Figure 5a). Second, Figure 3a suggested that the proportional allocation of effort to relative utilities (𝛽 → 1) may represent an optimum, at least across the space of effort-utility contingencies tested. Figure 5b-top additionally evaluates the impact of this exponent in the stochastic choice situations. This figure replicates the findings of Figure 3a in that 𝛽 = 1 lies near the optimum, with 𝛽 = 1.0 and 𝛽 = 1.2 providing an average gain of 94.0% and 94.1%, respectively. Thus, the proportional allocation of effort to relative utilities is another defining trait of EDM, and this strategy provides near-optimal performance in all decision situations tested. And third, the effort allocation strategy in EDM, 𝑒harvest = 𝑢(𝑒eval), is invoked once regardless of the number of decision options. This is in contrast to optimization, whose convergence time scales with problem dimensionality, i.e., the number of options. The single-evaluation EDM strategy maintains performance across the number of options under the VI schedules (Figure 5c-top; slope 0.67% per option, 𝐹 = 4.46, 𝑝 = 0.073), although it does incur a performance loss (Figure 5c-bottom; slope -0.95% per option, 𝐹 = 34.66, 𝑝 = 0.00061) in the deterministic cases. Notably, to attain the performance of EDM, the theoretical maximizing agents required substantially more evaluations in situations involving a large number of options (Figure 5c gray; top: slope 2.8 evaluations per option, 𝐹 = 21.80, 𝑝 = 0.0023; bottom: slope 3.4 evaluations per option, 𝐹 = 250.2, 𝑝 = 9.7 × 10−7)."

      3) The Discussion now includes a dedicated paragraph on the testability of the EDM predictions at the behavioral and neural levels:

      "EDM is testable at the behavioral (Figure 5) and neural (Figure 6) levels. At the behavioral level, EDM possesses three distinctive characteristics. First, EDM obtains high reward rapidly (Figure 5a). This characteristic can be tested in choice environments that minimize noise as an additional factor (e.g., Figure 7a), providing performance versus evaluations plots analogous to Figure 2. Second, EDM allocates relative effort to relative utilities proportionally (Figure 5b). This characteristic can be tested in situations in which utilities can be measured precisely, e.g., through the volume of fluid rewards in animal experiments or money in human experiments. And third, EDM allocates effort rapidly regardless of the number of options. This is because the 𝑒harvest = 𝑢 (𝑒eval) strategy is agnostic to the number of options. This characteristic can be tested by varying the number of decision options and quantifying the number of times a decision-maker evaluates the options. At the neural level, EDM only requires the encoding of relative utilities of the recently sampled options. This relative code can be implemented using firing rates of the neuronal pools representing each alternative (Figure 6 top row, middle column). Indeed, this representation has been found in the primate brain. Specifically, the relative value associated with EDM, termed “fractional income,” captures firing rates of neurons in monkey area LIP (Sugrue et al., 2004)."

      Reviewer #2 (Public Review):

      In this article, Kubanek shows how simple, local decision strategies approximate optimal foraging behavior using analytical methods and model simulations. To ground the argument beyond model simulations, Kubanek generalizes previous theoretical frameworks in economics and foraging to show how evaluating relative utility and effort are sufficient to find optimal behavior. A particular strength of this study is its principled approach to linking general economic theory with foraging theory and deriving the conditions under which local behavioral strategies provide general and efficient means to the optimality problem. Re-casting utility and effort in relative terms offers attractive possibilities to apply these formulations in describing a range of phenomena. I, therefore, believe this short report will be of interest to a multidisciplinary audience from economics, psychology behavior theory, foraging, and neuroscience. The author's main claims are supported by their evidence.

      Potential weaknesses of the study include:

      1) Predictions from the proposed EDM framework are stated in vague terms and could be formulated more concretely and, if possible, included in the model simulations.

      The predictions are now stated explicitly in a new Figure 5 and the associated text, and supported through performance evaluations within deterministic and stochastic choice environments.

      Moreover, a new Figure 6 provides a representational and computational account of EDM, and summarizes the main point of the paper that EDM combines high performance with simple, biologically plausible evaluation.

      2) The specificity of the EDM model and related model is only briefly touched on. The EDM argument could be strengthened by making the relation to other behavioral models more explicit.

      The new Figure 5 now compares the key characteristics of EDM with a set of related and more complex models, and evaluates their performance across these characteristics. The relations to other behavioral models are further specified in two new Discussion paragraphs.

      3) Many behavioral situations, including the in this paper often-cited study by Sugrue et al (2004), involve reward contingencies with a high level of uncertainty and non-stationary environments. While the author mentions these situations at the end of the discussion, it remains vague how EDM precisely performs or relates to decision strategies that deal with such environments.

      The article now includes also stochastic choice environments, in addition to the original deterministic choice environments. This has resulted in new Figure 4, Figure 5, and the associated text.

      The results in the stochastic environment corroborate those obtained in the deterministic environments.

    1. Author Response

      Reviewer #1 (Public Review):

      Edmondson et al. develop an efficient coding approach to study resource allocation in resource constrained sensory systems, with a particular focus on somatosensory representations. Their approach is based on a simple, yet novel insight. Namely - to achieve output decorrelation when encoding stimuli from regions with different input statistics, neurons in the sensory bottleneck should be allocated to these regions according to jointly sorted eigenvalues of the input covariance matrix. The authors demonstrate that, even in a simple scenario, this allocation scheme leads to a complex, non-monotonic relationship between the number of neurons representing each region, receptor density and input statistics. To demonstrate the utility of their approach, the authors generate predictions about cortical representations in the star-nosed mole, and observe a close match between theory and data.

      Strengths:

      These results are certainly interesting and address an issue which to my knowledge has not been studied in-depth before. Touch is a sensory modality rarely mentioned in theoretical studies of sensory coding, and this work contributes to this direction of research.

      A clear strength of the paper is that it demonstrates the existence of non-trivial dependence between resource allocation, bottleneck size and input statistics. Discussion of this relationship highlights the importance of nuance and subtlety in theoretical predictions in neuroscience.

      The proposed theory can be applied to interpret experimental observations - as demonstrated with the example of the star-nosed mole. The prediction of cortical resource allocation is a close match to experimental data.

      We thank the reviewer for the feedback. Indeed, demonstrating an ‘interesting’ effect in even such a simple model was one of the main aims.

      Weaknesses:

      The central weakness of this work are the strong assumptions which are not clearly stated. In result, the consequences of these assumptions are not discussed in sufficient depth which may limit the generality of the proposed approach. In particular:

      1) The paper focuses on a setting with vanishing input noise, where the efficient coding strategy is toreduce the redundancy of the output (for example through decorrelation). This is fine, however, it is not a general efficient coding solution as indicated in the introduction - it is a specific scenario with concrete assumptions, which should be clearly discussed from the beginning.

      2) The model assumes that the goal of the system is to generate outputs, whose covariance structure isan identity matrix (Eq. 1). This corresponds to three assumptions: a) variances of output neurons are equalized, b) the total amount of output variance is equal to M (i.e. the number of of output neurons), c) the activity of output neurons is decorrelated. The paper focuses only on the assumption c), and does not discuss consequences or biological plausibility of assumptions a) and b).

      We have clarified the assumptions in the revised version. The original version did not distinguish clearly between assumptions that were necessary to allow study of the main effect, and assumptions that were included to present a full model but that could have been chosen otherwise without affecting the results.

      This has now been made much clearer. Regarding the noise issue (point 1), we have clarified the main strategy pursued by the model namely decorrelation, we acknowledge other possible strategies, and we make clear whether and how noise could be incorporated into the model. Regarding the biological plausibility of our assumptions (point 2),

      Reviewer #2 (Public Review):

      The authors propose a new way of looking at the amount of cortical resources (neurons, synapses, and surface area) allocated to process information coming from multiple sensory areas. This is the first theoretical treatment of attempting to answer this question with the framework of efficient coding that states that information should be preserved as much as possible throughout the early sensory stages. This is especially important when there is an explicit bottleneck such that some information has to be discarded. In this current paper, the bottleneck is quantified as the number of dimensions in a continuous space. Using only the second-order statistics of the stimulus, and assuming only the second-order statistics carrying information, the authors use variance instead of Shannon's information. The result is a non-trivial analysis of ordering in the eigenvalues of the corresponding representations. Using clever mathematical approximations, the authors arrive at an analytical expression -- advantageous since numerical evaluation of this problem is tricky due to the long thin tails of the eigenvalues of the chosen covariance function (common in decaying translation-invariant covariances). By changing the relative stimulus power (activity ratio), receptor density (effectively the width of the covariance function), and the truncation of dimensions (bottleneck width), they show that the cortical allocation ratio, surprisingly, is a non-trivial function of such variables. There are a number of weaknesses in this approach, however, it produced valuable insights that have a potential to start a new field of studying such resource allocation problems all across different sensory systems in different animals.

      Strengths

      • A new application of the efficient coding framework to a neural resource allocation problem given acommon bottleneck for multiple independent input regions. It's an innovation (initial results presented at NeurIPS 2019) that brings normative theory with qualitative predictions that may shed new light to seemingly disproportionate cortical allocations. This problem did not have a normative treatment prior to this paper.

      • New insights into allocation of encoding resources as a function of bottleneck, stimulus distribution, andreceptor density. The cortical allocation ratios have nontrivial relations that were not shown before.

      • An analytical method for approximating ordered eigenvalues for a specific stimulus distribution.

      Weaknesses

      The analysis is limited to noiseless systems. This may be a good approximation in the high signal-to-noise ratio regime. However, since the analysis of allocation ratio is very sensitive to the tail of eigenvalue distribution (and their relative rank order), not all conclusions from the current analysis may be robust. Supplemental figure S5 perhaps paints a better picture since it defines the bottleneck as a function of total variance explained instead of number of dimensions. The non-monotonic nonlinear effects are indeed mostly in the last 10% or so of the total variance.

      We agree that the model is most likely to apply in the low-noise regime, as stated in the Discussion. The robustness of the results is indeed a worry, and indeed we have encountered some difficulties when calculating model results numerically due to the issue pointed out by the reviewer, and this led us to focus on an analytical approach in the first case. However, to test model robustness we have now included numerical results for several other covariance functions to demonstrate that, at least qualitatively, the results presented in the paper are not simply a consequence of the particular correlation structure we investigated.

      In case where the stimulus distribution is Guassian, the proposed covariance implies that the stimulus distribution is limited to spatial Gaussian processes with Ornstein-Uhlenbeck prior with two parameters: (inverse) length-scale and variance. While this special case allowed the authors to approach the problem analytically, it is not a widely used natural stimuli distribution as far as I know. This assumed covariance in the stimulus space is quite rough, i.e., each realization of the stimulus is spatially continuous isn't differentiable. In terms of texture, this corresponds to rough surfaces. Of course, if the stimulus distribution is not Gaussian, this may not be the case. However, the authors only described the distribution in terms of the covariance function, and lacks additional detail to fill in this gap.

      We would argue that somewhat ‘rough’ covariance structure might be relatively common, for example in vision objects have clear borders leading to a power law relation and similarly in touch objects are either in contact with the skin or they are not. In either case, we have now extended the analysis to test several other covariance functions numerically. We found that, qualitatively, the main effects described in the paper were still present, though they could differ quantitatively. Interestingly, the convergence limit appeared to depend on the roughness/smoothness of the covariance function, indicating that this might be an important factor.

      The neural response model is unrealistic: Neuronal responses are assumed to be continuous with arbitrary variance. Since the signal is carried by the variance in this manuscript, the resource allocation counts the linear dimensions that this arbitrary variance can be encoded in. Suppose there are 100 neurons that encode a single external variable, for example, a uniform pressure plate stimulus that matches the full range of each sensory receptor. For this stimulus statistics, the variance of all neurons can be combined to a single cortical neuron with 100 times the variance of a single receptor neuron. In this contrived example, the problem is that the cortical neuron can't physiologically have 100 times the variance of the sensory neuron. This study is lacking power constraint that most efficient coding frameworks have (e.g. Atick & Redlich 1990).

      We agree that the response model, as presented, is very simplistic. However, the model can easily be extended to include a variety of constraints, including power constraints, without affecting the results at all. Unfortunately, we did not make this clear enough in the original version. The underlying reason is that decorrelation does not uniquely specify a linear transform and the remaining degrees of freedom can be used to enforce other constraints. As the allocation depends only on the decorrelation process (via PCA), we do not explicitly calculate receptive fields in the paper and any additional constraints (power, sparsity) would affect the receptive fields only and so were left out in the original specification. We have now added clearer pointers for how these could be included and why their inclusion would not affect the present results.

      The star-nosed mole shows that the usage statistics (translated to activity ratio) better explains the cortical allocation than the receptor density. However, the evidence presented for the full model being better than either factor is weak.

      We agree that the results do not present definitive evidence that the model directly accounts for cortical allocations and as we state in the paper, much stronger tests would be needed. Our idea here was to test whether, in principle, the model predictions are compatible with empirical evidence and therefore whether such models could become plausible candidates for explaining neural resource allocation problems. This seems to be the case, even though the evidence in favour of the ‘full model’ versus the ‘activity only’ model is indeed not overwhelming (though this might be expected as the regional differences in activity levels are much greater than those in density). We have now added additional tests to show that the results are not trivial. We would also like to note that it is not obvious that the ‘full’ model would perform better than the ‘activity only’ model: for either we choose the best-fitting bottleneck width (as the true bottleneck width is unknown), and therefore the degrees of freedom are equal (with both activity levels and densities fixed by empirical data).

      Reviewer #3 (Public Review):

      This work follows on a large body of work on efficient coding in sensory processing, but adds a novel angle: How do non-uniform receptor densities and non-uniform stimulus statistics affect the optimal sensory representation?

      The authors start with the motivating example of fingers and tactile receptors, which is well chosen, as it is not overstudied in the efficient coding literature. However, the connection between their model and the example seems to break down after a few lines when the authors state that they treat individual regions as independent, and set the covariance terms to zero. For finger, e.g. that would seem highly implausible, because we typically grasp objects with more than one finger, so that they will be frequently coactivated.

      Our aim was to take a first stab at a model that could theoretically account for neural resource allocation under changes in receptor density and activity levels, and by necessity this initial model is rather simple. Choosing a monotonically decreasing covariance function along with some other simplifications allowed us to quantify the most basic effects, and do so analytically. Any future work should take more complex scenarios into account. Regarding the sense of touch, we agree that the correlational structure of the receptor inputs will be more complex than assumed here, however, whether and how this would affect the results is less clear: Across all tactile experiences (not just grasps, but also single finger activities like typing), cross-finger correlations might not be large compared to intra-finger ones. Unfortunately, there is currently relatively little empirical data on this. That said, we agree with the broader point that complex correlational structure can be found in sensory systems and would need to be taken into account when efficiently representing this information.

      The bottleneck model posited by the authors requires global connectivity as they implement the bottleneck simply by limiting the number of eigenvectors that are used. Thus, in their model, every receptor potentially needs to be connected with every bottleneck neuron. One could also imagine more localized connectivity schemes that would seem more physiologically plausible given the observed connectivity patterns between receptors and relay neurons (e.g. in LGN in the visual system). It would be very interesting to know how this affects the predictions of the theory.

      We agree that the model in its current form is not biologically plausible. While individual receptive fields can be extremely localised, the initial allocation of neurons to regions we describe in the paper relies on a global PCA, and it is not clear how this might be arrived at in practice under biological constraints. However, our aim here was to specify a normative model that generates the optimal allocation and thereby answer what the brain should be doing under ideal circumstances. Future work should definitely ask whether and how these allocations might be worked out in practice and how biological constraints would affect the solutions.

      The representation of the results in the figures is very dense and due to the complex interplay between various factors not easy to digest. This paper would benefit tremendously from an interactive component, where parameters of the model can be changed, and the resulting surfaces and curves are updated.

      We have aimed to make the figures as clear as possible, but do appreciate that the results are relatively complex as they depend on multiple parameters. The code for re-creating the figures is available on Github (https://github.com/lauraredmondson/expansion_contraction_sensory_bottlenecks), making it easy to explore scenarios not described in the paper.

      For parts of the manuscript, not all conclusions made by the authors seem to follow directly from the figures: For example, the authors interpret Fig. 3 as showing that activation ratio determines more strongly whether a sensory representation expands or contracts than density ratio. This is true for small bottlenecks, but for relatively generous ones it seems the other way around. The interpretation by the authors, however, fits better the next paragraph, where they argue that the sensory resources should be relatively constant across the lifespan of an animal, and only stimulus statistics adapt. However, there are notable exceptions - for example, in a drastic example zebrafish change their sensory layout of the retina completely between larvae and adult.

      We have amended the text for this section in the paper to more closely reflect the conclusions that can be drawn from the figure. These are summarised below.

      The purpose of Fig. 3B is to show that knowledge of the activation ratio provides more information about the possible regime of the bottleneck allocations. We cannot tell the magnitude of the expansion or contraction from this information alone, or where in the bottleneck the expansion or contraction would occur. Typically, when we know the activation ratio only, we can tell whether regions will be expanded or contracted or whether both occur over all bottleneck sizes. For a given activation ratio (for example, a = 1:2, as shown in the 3B), we know that the lower activation region can be either contracted only or both expanded and contracted over the course of the bottleneck. In this case, regardless of the density ratio, the lower activation region cannot be contracted only. Conversely, for any density ratio (see dashed horizontal line in Fig. 3B), allocations can be in any regime.

      In the final part of the manuscript, the authors apply their framework to the star nosed mole model system, which has some interesting properties; in particular, relevant parameters seem to be known. Fitting to their interpretation of the modeling outcomes, they conclude that a model that only captures stimulus statistics suffices to model the observed cortical allocations. However, additional work is necessary to make this point convincingly.

      We have now included a further supplementary figure panel providing more details on the fitting procedure and results for each model. Given that we fit over a wide range of bottleneck sizes, where allocations for each ray can vary widely (see Figure 6, supplement 1A), we tested an additional model to confirm that the model requires accurate empirical density and/or activation values for each ray to provide a good fit to cortical data. Here we randomise the values for the density and activation of each ray within the possible range of values for each. We find that with this randomisation of the values the model performs poorly on fitting even with a range of bottleneck sizes. This suggests that the model can only be fitted to the empirical cortical data when using the empirically measured values.

    1. The ability to exit with your data intact is a core tenet of web3; web3 turns your data into your personal, programmable property.

      Yes, but without other platforms to go to (or the capacity to code own platform) the data, though owned, has little value. Thus the user remains dependent on platforms also in the web3 space

    1. Instead, we simplydescribe them from scratch every frame, whichdoesn’t actually result in more code. It’s more likewe run the “create” code every frame.

      Now imagine, as a performance optimization, a lib where you can write in IMGUI style, so you write the same amount of code, but behind the scenes, the lib is managing things, so it's actually free to do all the retained mode heavy lifting.

      We just invented declarative programming.

    1. The custom title bar has been a success on Windows, but the customer response on Linux suggests otherwise. Based on feedback, we have decided to make this setting opt-in on Linux and leave the native title bar as the default. The custom title bar provides many benefits including great theming support and better accessibility through keyboard navigation and screen readers. Unfortunately, these benefits do not translate as well to the Linux platform. Linux has a variety of desktop environments and window managers that can make the VS Code theming look foreign to users.
    1. This describes one of the most pleasing hacks I've ever come across. I just now tracked it down and added it to my bookmarks. (Not sure why it wasn't already there.)

      You could also conceive of going one step further. When your app (doesn't actually have to be a game, though admittedly it's much easier for you if it is) is compiled with tweak.h, it gives it the power to paint the source file on the screen—so you don't actually have to switch over to your text editor to save it, etc. Suppose you want to provide custom inputs like Bret Victor-style sliders for numeric values. You could edit it in your text editor, or you could derp around with it in-app. Tweaking the value in-app should of course both update it wrt the app runtime but also still write the file to disk, too, so if live reloading is turned on in your text editor, whatever changes you make inside the live process image gets synced out.

    1. Decision¶ The dcterms:subject property was selected. Example record - archivision:404 .. code-block:: xml <genre authority=”aat” valueURI=”http://vocab.getty.edu/aat/300021140”>Renaissance</genre>

      This needs to be cleaned up.

    1. Opening the code of the algorithm might be a good place to start, but it’s not unlike making an architectural excavation site open to the public: without the guidance of an archaeologist to explain it, it’s just a set of pottery shards. There is not much we as end users can do with “The Algorithm” as-is.

      This is taking the wrong parts as fixed.

    1. Reviewer #1 (Public Review):

      This work addresses the problem of accurately estimating dynamics parameters in single particle tracking applications. The authors give a very extensive overview of the current problems and solutions while dealing with imaging of diffusive motion of subcellular particles and challenges that one faces while trying to estimate the main parameters of interest, such as diffusion constants. The authors properly address the issues with short trajectories, which are typical in practice and propose two advanced approached, which successfully deal with the mentioned shortcomings (short trajectories from which it is difficult to estimate parameters reliably, and the measurement errors that contaminate the input data). The proposed techniques are very interesting, and the way how those pure mathematical (and long existing) concepts are applied for this specific application of single particle tracking is rather novel. The proposed methodology is supported by a thorough validation, which includes simulations of all possible conditions (numbers of trajectories, distributions of the diffusion constants within the population of particles, the levels of inaccuracies in the measurements, etc.). Additionally, the experiments with the real data are also very convincing. The authors do focus on a regular Brownian diffusion and hopefully will show the applicability of these approaches to more typical applications containing anomalous diffusion. The availability of the code, which the authors provide on github, is very important, especially to less (technically) skilled audience from the field of experimental biology, who would like to apply those techniques to their data.

    2. Reviewer #2 (Public Review):

      This paper will be of interest to the cellular biologists who perform single-particle tracking experiments and develop new tracking methodologies. The authors investigate a new way of estimating an unknown number of diffusion states from short single-molecule trajectories. Ideas developed in the paper are likely to be used for further algorithm development. The authors give the users access to a repository on GitHub that contains comprehensive code that supports the paper.

      Comments:

      1. The authors claim in their abstract that their algorithm works on tracks with variable localization precision. However, in their simulation section, they investigate only a single localization precision value per diffusion state. This doesn't match the reality since intensity and background from molecules (and over the field) is never a single value, but follows a distribution. To make this simulation realistic the authors would need to generate datasets where the localization precision comes from a distribution with different parameters per diffusion coefficient (e.g. a different mean and variance).<br /> 2. In the introduction the authors claim that they also address the problem of having an unknown number of diffusion states. However, I don't think that the paper addresses this issue, because with their current approach it is not possible to classify trajectory segments into a state.

    1. I've gotten to where "if I can't make sense of it and be productive in it with just vim, grep, and find, your code is too complex".

      See Too DRY - The Grep Test.

      But even allowing for grep is too lax, in my view. It's too high a cost. If I've got some file open and am looking at some Identifier X, I should be able to both deterministically and easily figure out exactly which file X lives in.

      Violating this is what sucks about C's text-pasting anti-module system, and it's annoying that Go's "package" system ends up causing similar problems. I shouldn't have to have a whole-project view. I should be able to just follow my nose.

    1. and free of globals

      Ah! This remark highlights a fundamental difference in understanding between two camps, which I have been (painfully) aware of, but the source of this confusion has eluded me until only just right now. (Really, this is a source of frustration going back years.)

      In one camp, the advice "don't use global variables" is a way of attacking a bunch of things endemic to their use, most notably unnecessary coupling to spooky state. In another camp "no global variables" is understood to mean literally that and taken no further—so you can have as much spookiness as you like, and so long as the value is not directly accessible (visible) from, say, another given piece of code appearing at the top-level ("global") context, as with the way i is bound to the activation record in this example but is not accessible outside the scope of getGetNext, then you're good.

      That is, there are two aspects to variables: visibility and extent, and the first interpretation seeks to avoid the negative effects on both dimensions, while the second is satisfied by narrowly prohibiting direct visibility across boundaries.

      I find the latter interpretation bizarre and completely at odds with the spirit of the exhortation for avoiding globals in the first place.

      (What's worse is the the second interpretation usually goes hand in hand with the practice of making extensive use of closures, which because they are propped up as being closely associated with functions, then leads people to regretfully refer to this style as functional programming. This is a grave error—and, to repeat, totally at odds with the spirit of the thing.)

    1. Behaviorism as we all know is an established method of biologicaland psychological study but I have nowhere seen an adequate at-tempt to analyze the intrinsic possibilities of types of behavior. Thishas become necessary to me in connection with the design of appara-tus to accomplish specific purposes in the way of the repetition andmodification of time pattern^.^

      All of the apparatus that Wiener designs have flaws that are based around human behavior. I think it would benefit him to learn about people's behaviors in a way that could explain them to computer code. I also believe that he sees cybernetics as a shortcut in this venture. Humans understand and can figure out human behaviors, we are good at identifying patterns, in a way that programs and non-humans are not. Ideally, the non-human part of a cybernetic being would bring tactics, consistency, and the ability to process information in an objective way. As where the human side would bring the ability to identify behaviors, patterns, and use senses to be processed by the non-human.

    1. Author Response

      Reviewer #1 (Public Review):

      “The authors suggest that they uncovered two distinct phases of how the posterior axial identity is controlled; the first involving TBXT/Wnt to generate posterior 'uncommitted progenitors', which then go on to generate NCCs, and the second involving FGF to impart posterior axial identity onto CNS/spinal cord cells.”

      Based on our new data we have slightly modified our model: (i) TBXT controls posterior axial identity acquisition in NMP precursors and both their trunk NC and CNS spinal cord derivatives; (ii) this early, TBXT-driven posteriorisation phase appears to be WNT dependent; (iii) a subsequent TBXT/WNT-independent phase of Hox cluster regulation occurring during the transition of NMPs towards their NC/spinal cord derivatives is controlled predominantly by FGF signalling. This model is shown in Figure 9 in the revised manuscript.

      “I am not convinced that their data show this; it is equally possible that NMPs are heterogeneous and the effects observed simply reflect a differential response of cells or selection. Since the authors largely analyse their data by qPCR it is difficult to disentangle this.”

      We believe that the inclusion of new data defining the emergence of NMP derivatives at the single cell level through analysis of key trunk lineage-specific markers (HOXC9, SOX10, SOX1, SOX2) via immunostaining and image analysis/flow cytometry (see Figure 3-figure supplement 1, Figure 4C-D, Figure 5-figure supplement 1, Figure 7D-E in revised manuscript) should address the reviewer’s point. See also our response to the editorial comments above. It should be note that the vast majority of day 3 hESC-derived NMPs (>95%) is positive for TBXT protein expression based on antibody staining and thus the starting population for the generation of trunk NC/spinal cord progenitors can be considered largely homogeneous when it comes to the expression of this transcription factor.

      “The authors include some expression data in mouse to support their in vitro findings. However, these need to be explained and integrated better.”

      We hope that breaking down figure 4 and the related text into two parts has improved the integration of the in vivo data in the revised version of the manuscript.

      Reviewer #2 (Public Review):

      “The fact that the regimes are distinct makes the comparisons of neural crest versus spinal cord difficult to interpret as the cells have been exposed for different amounts of time to WNT and FGF when they asses the Hox code in neural crest or spinal cord cells. Specially because the spinal cord induction protocol involves four additional days of culture with FGF and CHIR, and the cells after seven days are not mature neural progenitors.

      To address this point, we employed “neutral”, extrinsic signal-free culture conditions that drive NMPs towards a mixture of early pre-neural spinal cord progenitors and mutually exclusive SOX1+HOXC9+ CNS spinal cord and SOX10+HOXC9+ NC populations. This facilitated the effective assessment of cell fate and posterior axial identity acquisition simultaneously in both NMP-derived spinal cord and NC cells, during discrete time windows of TBXT knockdown (Figure 4 in revised manuscript). For details see our response above.

      Likewise, the authors have previously shown that such a treatment induces the expression of dorsal neural tube/early neural crest markers”.

      Although we have no evidence of SOX10 expression in cultures generated from NMPs following WNT and FGF agonist treatment for 4 days indicating absence of definitive NC cells, we opted to remove the “CNS” references when describing this cell population to accommodate for the possibility that it may be NC-potent given its previously described dorsal neural tube/early NC character (Cooper et al, 2022; Wind et al., 2021).

      “It would be good to see some quality controls on the percentages of neural crest progenitors or spinal cord neural progenitors that they get in each signalling regime. Can the authors separate neural progenitor cells and neural crest cells (for example by FACS sorting with specific markers) to confirm the cell-type specific expression of the HOX genes in these experiments?”.

      As mentioned above, we have now included immunostaining data quantifying thoroughly the induction of trunk SOX1+HOXC9+ CNS spinal cord and SOX10+HOXC9+ NC cells under different culture conditions/TBXT levels (see Figure 4C-D, Figure 5-figure supplement 1, Figure 7 and Figure 7-figure supplement 1).

      “In the neural crest differentiation protocol, there is a slight, non-significant upregulation of neural progenitor markers following TBXT knockdown, can the authors quantify the percentage of neural cells in their cultures to see how much of the observed effect is specific to neural crest cells?”

      We have quantified the emergence of SOX1+ CNS spinal cord progenitor cells in NMPderived trunk NC cultures using both FACS/intracellular staining and immunostaining/image analysis but their numbers are too small (2-3% of total cells with no statistically significant difference between control and TBXT knockdown cells, see Figure 3-figure supplement 1) to extract any meaningful conclusions on the effect of TBXT depletion on them. However, quantification of SOX1+HOXC9+ cells generated from NMPs upon culture in “neutral” basal conditions revealed that TBXT depletion results in a decrease in their number in addition to its established impact on trunk NC (see Figure 4C-D in revised manuscript).

      “Previous work from the lab showed that a 3-day FGF/CHIR treatment of hESCs followed by a two-day incubation on basal medium is sufficient to induce neural progenitors that express Hox genes of posterior identity (PMID: 25157815). Can the authors draw the same conclusions for the spinal cord cells with this protocol if they deplete TBXT during the first three days and assay at day 7 the cells on basal medium, or if they deplete TBXT during the last four days of the protocol? The comparison of the 3-day FGF/CHIR regime followed by basal medium treatment versus the continuous FGF/CHIR for a 7-day period may help clarify the temporal and cell-type specific effects of the HOX code via TBXT/FGF on the neural crest and/or spinal cord cells”.

      We have carried out this experiment as suggested by the reviewer (Figure 4C-D/line numbers 226-256 in the revised manuscript), for details see our responses above.

      “In their data, it seems that anterior HOX genes (PG1-5) as well as other posterior HOX (PG6-9) are expressed in wild-type posterior neural crest and early spinal cord cells. Can HOX genes that mark posterior cranial, vagal or trunk identities be co-expressed in trunk neural crest or spinal cord cells? Is it possible that the differentiations generate cells that have different axial identities? I wonder if this interpretation comes from the normalization. Perhaps the authors could clarify if the levels of expression of the 3' Hox genes are higher or lower than 5' Hox genes in their differentiations”.

      Co-expression of HOX paralogous group (PG) (1-5) and (6-9) transcripts does occur in the posterior part of the mouse embryo around E9.5, both in the NMP-containing tailbud region (Gouti et al, 2017) as well as in differentiated posterior neural/neural crest cells e.g. for Hoxb1 expression in E9.5 mouse embryos see (Arenkiel et al, 2003; Glaser et al, 2006); for Hoxc9 expression see (Bel et al, 1998). Thus, the presence of HOXPG(1-5) transcripts in HOXC9+ trunk NC cells is not surprising and in line with what has been reported previously in other studies describing the generation of posterior NC/spinal cord cell types from hESC/NMPs (Frith et al., 2018; Hackland et al, 2019; Lippmann et al, 2015; Mouilleau et al, 2021). Alternatively, the simultaneous detection of transcripts belonging to both HOXPG(1-5) and HOXPG(6-9) could indicate the co-emergence of a separate population of posterior cranial/cardiac/vagal NC cells during trunk NC differentiation. Moreover, the detection of HOX transcripts does not always correlate with corresponding protein positivity (Faustino Martins et al, 2020) pointing to the existence of post-transcriptional/-translational mechanisms controlling HOX protein expression. Unfortunately, we have not identified reliable (in our hands) antibodies against HOXPG(1-5) members that we can use together with HOXC9 in order to distinguish between these possibilities.

      “In the experiments where the authors asses if TBXT binds directly or indirectly to the HOX clusters, the authors compare pluripotent cells with hNMPs. This data confirms that TBXT acts as an activator in hNMPs and that it binds to regions in the HOX clusters. Do the HOX regions overlap with known enhancers for the HOX genes for neural crest or spinal cord?”

      We have included new ATAC-seq data mapping chromatin accessibility in day 8 trunk NC cells generated from TBXT-depleted and control hESC-derived NMPs. These data, combined with the ATAC-seq and TBXT ChIP-seq analyses from day 3 hESC-derived NMPs, indicate that TBXT controls chromatin accessibility in trunk NC-specific enhancers within HOX clusters, both directly through genomic binding, and indirectly possibly by influencing expression of other key transcriptional regulators such as CDX2. For details see Figure 8-figure supplement 2 and Appendix Table S9 and line numbers 458-482 in the revised manuscript.

      “As they see distinct temporal phases of TBXT activity on spinal cord progenitors versus neural crest cells, the authors should test if there are changes in accessibility or TBXT binding in neural crest and spinal cord cells in the HOX locus and/or genome-wide. This comparison may help identify cell-type specific TBXT targets (perhaps acting with distinct coactivators) that are key in the two distinct phases of posterior axial identity control”.

      As mentioned above, we have added new ATAC-seq data from analysis of trunk NC cells derived from TBXT knockdown shRNA hESC-derived NMPs in the presence and absence of Tet. These data can be found in Figure 8-figure supplement 2 and Appendix Table S9 in the revised manuscript. As expected, ATAC-seq analysis of pre-neural CNS spinal cord progenitors generated from TBXT knockdown shRNA hESC-derived NMPs in the presence and absence of Tet showed no significant differences in chromatin accessibility between the two conditions again our gene expression data (Figure 6 in revised manuscript). These data were not included in the new manuscript version but they are publicly available as part of our revised GEO submission (GSE184227). Mapping of TBXT genomic binding in NMP-derived trunk NC cells/spinal cord progenitors is not feasible due to the very low/absent expression of TBXT protein in these cell populations. See also our response to the editor’s suggestions.

      “In the experiments where the authors examine the signalling pathway dependence of HOX expression during the transition in the neural crest differentiation protocol, it appears that CHIR/LDN treatment induces the highest levels of HOX expression (FIG 3F). Also, there is an increased expression of SOX1 while SOX10 expression is not detected "pointing to a role for BMP signalling in steering NMPs/dorsal pre-neural progenitors toward a NC fate in agreement with previous observations". The results may indicate that WNT and BMP inhibition may induce HOX gene expression in neural cells irrespective of FGF. How do the authors interpret this? How does it affect their final model where FGF (and not WNT) drives the expression of HOX genes in late pre-neural spinal cord progenitors?”.

      Based on our data and published work, we speculate that during the transition of hESCderived NMPs towards trunk NC cell, cultures still exhibit autocrine and/or paracrine FGF signalling even in the absence of exogenous FGF agonist supplementation. This is supported by previous reports showing the expression of the active, phosphorylated version of the FGF effector ERK1/2 in differentiating pluripotent stem cells cultured in FGF-free media (Diaz-Cuadros et al, 2020; Stavridis et al, 2007; Ying et al, 2003). This endogenous FGF activity is probably sufficient for the maintenance of HOX gene expression in these cells, while exogenous BMP signalling stimulation is required for the induction of a NC fate. Given the reported antagonism between these two pathways during early neural/NC induction (Anderson et al, 2016; Marchal et al, 2009), treatment with the BMP inhibitor LDN193189 results in FGF signalling potentiation, which in turn leads to increased HOX gene expression and a switch toward a CNS neurectodermal fate at the expense of NC. Further work is needed to mechanistically dissect this hypothesis, which is beyond the scope of this manuscript.

      “The identity of the cells in the inhibition of WNT or FGF treatments during the final four days towards spinal cord cells experiments is unclear. It would be very useful if the authors could characterize what cell types emerge after the treatments. In principle, I would expect that these treatments would generate different progenitor types (FGF inhibition may presumably give rise to mesoderm cells, whereas WNT inhibited may be pre-neural). Why would the authors expect these different cell types to have similar levels of expression of WNT targets or Hox genes?”

      The inclusion of the new immunostaining data and the quantification of the proportions of SOX2+HOXC9+ emerging upon various WNT/FGF inhibitor treatments (Figure 7D-E in revised manuscript) has now enabled us to define the role of these signalling pathways in controlling HOX gene expression specifically in pre-neural spinal progenitors thus confirming our conclusions from the qPCR data without any bias introduced from contaminating, nonneural HOXC9+ cells.

    2. Reviewer #2 (Public Review):

      How cell types acquire regional identity during embryonic development remains largely unknown. In this manuscript, Gogolou et al. study the role of TBXT in the establishment of posterior identity of neural crest and spinal cord cells derived from human neuromesodermal progenitors (hNMPs). Previously, it was shown that activation of human pluripotent stem cells with FGF and Wnt/β-catenin, establishes a progressive and full colinear HOX activation in human axial progenitors in vitro. In this manuscript, the authors confirm these findings and show unexpected temporally restricted and cell-specific modes of acquisition of posterior identities in neural crest and spinal cord cells. Specifically, they find that TBXT depletion impedes posterior identity acquisition in neural crest cells whereas it does not impact spinal cord regionalization. Instead, they find that FGF is the main driver for spinal cord axial patterning.

      This work addresses a very important question and the results they provide support their final model. The work opens up new interpretations on how cells define their axial identity and sets the ground to investigate how TBXT cooperates with other transcription factors to establish posterior identities prior to the acquisition of a neural crest or spinal cord fate. Further, this mechanistic insight may help explain the impairment of neural crest specification and HOX dysregulation in neural tube defects.

      A rigorous characterization of the cell types that are generated during this differentiation under various signaling regimes is essential to separate the cell-specific effect of WNT and FGF on the HOX code versus the temporally restricted windows in which this can happen. In their experiments towards neural crest or spinal cord differentiation, the starting hNMP population is homologous and it emerges after a 3-day treatment of the cells with FGF and CHIR. Then, the authors use specific signalling regimes for the generation of neural crest or spinal cord cells. The fact that the regimes are distinct makes the comparisons of neural crest versus spinal cord difficult to interpret as the cells have been exposed for different amounts of time to WNT and FGF when they asses the Hox code in neural crest or spinal cord cells. Specially because the spinal cord induction protocol involves four additional days of culture with FGF and CHIR, and the cells after seven days are not mature neural progenitors. Likewise, the authors have previously shown that such a treatment induces the expression of dorsal neural tube/early neural crest markers (PMID: 33658223).

      - It would be good to see some quality controls on the percentages of neural crest progenitors or spinal cord neural progenitors that they get in each signalling regime. Can the authors separate neural progenitor cells and neural crest cells (for example by FACS sorting with specific markers) to confirm the cell-type specific expression of the HOX genes in these experiments?

      - In the neural crest differentiation protocol, there is a slight, non-significant upregulation of neural progenitor markers following TBXT knockdown, can the authors quantify the percentage of neural cells in their cultures to see how much of the observed effect is specific to neural crest cells?

      - Previous work from the lab showed that a 3-day FGF/CHIR treatment of hESCs followed by a two-day incubation on basal medium is sufficient to induce neural progenitors that express Hox genes of posterior identity (PMID: 25157815). Can the authors draw the same conclusions for the spinal cord cells with this protocol if they deplete TBXT during the first three days and assay at day 7 the cells on basal medium, or if they deplete TBXT during the last four days of the protocol? The comparison of the 3-day FGF/CHIR regime followed by basal medium treatment versus the continuous FGF/CHIR for a 7-day period may help clarify the temporal and cell-type specific effects of the HOX code via TBXT/FGF on the neural crest and/or spinal cord cells.

      - In their data, it seems that anterior HOX genes (PG1-5) as well as other posterior HOX (PG6-9) are expressed in wild-type posterior neural crest and early spinal cord cells. Can HOX genes that mark posterior cranial, vagal or trunk identities be co-expressed in trunk neural crest or spinal cord cells? Is it possible that the differentiations generate cells that have different axial identities? I wonder if this interpretation comes from the normalization. Perhaps the authors could clarify if the levels of expression of the 3' Hox genes are higher or lower than 5' Hox genes in their differentiations.

      - In the experiments where the authors asses if TBXT binds directly or indirectly to the HOX clusters, the authors compare pluripotent cells with hNMPs. This data confirms that TBXT acts as an activator in hNMPs and that it binds to regions in the HOX clusters. Do the HOX regions overlap with known enhancers for the HOX genes for neural crest or spinal cord?

      - As they see distinct temporal phases of TBXT activity on spinal cord progenitors versus neural crest cells, the authors should test if there are changes in accessibility or TBXT binding in neural crest and spinal cord cells in the HOX locus and/or genome-wide. This comparison may help identify cell-type specific TBXT targets (perhaps acting with distinct co-activators) that are key in the two distinct phases of posterior axial identity control.

      - In the experiments where the authors examine the signalling pathway dependence of HOX expression during the transition in the neural crest differentiation protocol, it appears that CHIR/LDN treatment induces the highest levels of HOX expression (FIG 3F). Also, there is an increased expression of SOX1 while SOX10 expression is not detected "pointing to a role for BMP signalling in steering NMPs/dorsal pre-neural progenitors toward a NC fate in agreement with previous observations". The results may indicate that WNT and BMP inhibition may induce HOX gene expression in neural cells irrespective of FGF. How do the authors interpret this? How does it affect their final model where FGF (and not WNT) drives the expression of HOX genes in late pre-neural spinal cord progenitors?

      - The identity of the cells in the inhibition of WNT or FGF treatments during the final four days towards spinal cord cells experiments is unclear. It would be very useful if the authors could characterize what cell types emerge after the treatments. In principle, I would expect that these treatments would generate different progenitor types (FGF inhibition may presumably give rise to mesoderm cells, whereas WNT inhibited may be pre-neural). Why would the authors expect these different cell types to have similar levels of expression of WNT targets or Hox genes?

    1. Author Response

      Reviewer #1 (Public Review):

      Jones et al. investigated the relationship between scale free neural dynamics and scale free behavioral dynamics in mice. An extensive prior literature has documented scale free events in both cortical activity and animal behavior, but the possibility of a direct correspondence between the two has not been established. To test this link, the authors took advantage of previously published recordings of calcium events in thousands of neurons in mouse visual cortex and simultaneous behavioral data. They find that scale free-ness in spontaneous behavior co occurs with scale free neuronal dynamics. The authors show that scale free neural activity emerges from subsets of the larger population - the larger population contains anticorrelated subsets that cancel out one another's contribution to population-level events. The authors propose an updated model of the critical brain hypothesis that accounts for the obscuring impact of large populations on nested subsets that generate scale free activity. The possibility that scale free activity, and specifically criticality, may serve as a unifying theory of brain organization has suffered from a lack of high-resolution connection between observations of neuronal statistics and brain function. By bridging theory, neural data, and behavioral dynamics, these data add a valuable contribution to fields interested in cortical dynamics and spontaneous behavior, and specifically to the intersection of statistical physics and neuroscience.

      Strengths:

      This paper is notably well written and thorough.

      The authors have taken a cutting-edge, high-density dataset and propose a data-driven revision to the status-quo theory of criticality. More specifically, due to the observed anticorrelated dynamics of large populations of neurons (which doesn't fit with traditional theories of criticality), the authors present a clever new model that reveals critical dynamics nested within the summary population behavior.

      The conclusions are supported by the data.

      Avalanching in subsets of neurons makes a lot of sense - this observation supports the idea that multiple, independent, ongoing processes coexist in intertwined subsets of larger networks. Even if this is wrong, it's supported well by the current data and offers a plausible framework on which scale free dynamics might emerge when considered at the levels of millions or billions of neurons.

      The authors present a new algorithm for power law fitting that circumvents issues in the KS test that is the basis of most work in the field.

      Weaknesses:

      This paper is technically sound and does not have major flaws, in my opinion. However, I would like to see a detailed and thoughtful reflection on the role that 3 Hz Ca imaging might play in the conclusions that the authors derive. While the dataset in question offers many neurons, this approach is, from other perspectives, impoverished - calcium intrinsically misses spikes, a 3 Hz sampling rate is two orders of magnitude slower than an action potential, and the recordings are relatively short for amassing substantial observations of low probability (large) avalanches. The authors carefully point out that other studies fail to account for some of the novel observations that are central to their conclusions. My speculative concern is that some of this disconnect may reflect optophysiological constraints. One argument against this is that a truly scale free system should be observable at any temporal or spatial scale and still give rise to the same sets of power laws. This quickly falls apart when applied to biological systems which are neither infinite in time nor space. As a result, the severe mismatch between the spatial resolution (single cell) and the temporal resolution (3 Hz) of the dataset, combined with filtering intrinsic to calcium imaging, raises the possibility that the conclusions are influenced by the methods. Ultimately, I'm pointing to an observer effect, and I do not think this disqualifies or undermines the novelty or potential value of this work. I would simply encourage the authors to consider this carefully in the discussion.

      R1a: We quite agree with the reviewer that reconciling different scales of measurement is an important and interesting question. One clue comes from Stringer et al’s original paper (2019 Science). They analyzed time-resolved spike data (from Neuropixel recordings) alongside the Ca imaging data we analyzed here. They showed that if the ephys spike data was analyzed with coarse time resolution (300 ms time bins, analogous to the Ca imaging data), then the anticorrelated activity became apparent (50/50 positive/negative loadings of PC1). When analyzed at faster time scales, anticorrelations were not apparent (mostly positive loadings of PC1). This interesting point was shown in their Supplementary Fig 12.

      This finding suggests that our findings about anticorrelated neural groups may be relevant only at coarse time scales. Moreover, this point suggests that avalanche statistics may differ when analyzed at very different time scales, because the cancelation of anticorrelated groups may not be an important factor at faster timescales.

      In our revised manuscript, we explored this point further by analyzing spike data from Stringer et al 2019. We focused on the spikes recorded from one local population (one Neuropixel probe). We first took the spike times of ~300 neurons and convolved them with a fast rise/slow fall, like typical Ca transient. Then we downsampled to 3 Hz sample rate. Next, we deconvolved using the same methods as those used by Stringer et al (OASIS nonnegative deconvolution). And finally, we z-scored the resulting activity, as we did with the Ca imaging data. With this Ca-like signal in hand, we analyzed avalanches in four ways and compared the results. The four ways were: 1) the original time-resolved spikes (5 ms resolution), 2) the original spikes binned at 330 ms time res, 3) the full population of slow Ca-like signal, and 4) a correlated subset of neurons from the slow Ca-like signal. Based on the results of this new analysis (now in Figs S3 and S4), we found several interesting points that help reconcile potential differences between fast ephys and slow Ca signals:

      1. In agreement with Sup Fig 12 from Stringer et al, anticorrelations are minimal in the fast, time-resolved spike data, but can be dominant in the slow, Ca-like signal.

      2. Avalanche size distributions of spikes at fast timescales can exhibit a nice power law, consistent with previous results with exponents near -2 (e.g. Ma et al Neuron 2019, Fontenele et al PRL 2019). But, the same data at slow time scales exhibited poor power-laws when the entire population was considered together.

      3. The slow time scale data could exhibit a better power law if subsets of neurons were considered, just like our main findings based on Ca imaging. This point was the same using coarse time-binned spike data and the slow Ca-like signals, which gives us some confidence that deconvolution does not miss too many spikes.

      In our opinion, a more thorough understanding of how scale-free dynamics differs across timescales will require a whole other paper, but we think these new results in our Figs S3 and S4 provide some reassurance that our results can be reconciled with previous work on scale free neural activity at faster timescales.

      Reviewer #2 (Public Review):

      The overall goal of the paper is to link spontaneous neural activity and certain aspects of spontaneous behavior using a publicly available dataset in which 10,000 neurons in mouse visual cortex were imaged at 3 Hz with single-cell resolution. Through careful analysis of the degree to which bouts of behavior and bouts of neural activity are described (or not) by power-law distributions, the authors largely achieve these goals. More specifically, the key findings are that (a) the size of bouts of whisking, running, eye movements, and pupil dilation are often well-fit by a power-law distribution over several decades, (b) subsets of neurons that are highly correlated with one of these behavioral metrics will also exhibit power-law distributed event sizes, (c) neuron clusters that are uncorrelated with behavior tend to not be scale-free, (d) crackling relationships are generally not found (i.e. size with duration exponent (if there is scaling) was not predicted by size power-law and duration power-law), (e) bouts of behavior could be linked to bouts of neural activity. In the second portion of the paper, the authors develop a computational model with sets of correlated and anti-correlated neurons, which can be accomplished under a relatively small subset of connection architectures: out of the hundreds of thousands of networks simulated, only 31 generated scale-free subsets/non-scale-free population/anti correlated e-cells/anti-correlated i-cells in agreement with the experimental recordings.

      The data analysis is careful and rigorous, especially in the attention to fitting power laws, determining how many decades of scaling are observed, and acknowledging when a power-law fit is not justified. In my view, there are two weaknesses of the paper, related to how the results connect to past work and to the set-up and conclusions drawn from the computational modeling, and I discuss those in detail below. While my comments are extensive, this is due to high interest. I do think that the authors make an important connection between scale-free distributions of neural activity and behavior, and that their use of computational modeling generates some interesting mechanistic hypotheses to explore in future work.

      My first general reservation is in the relationship to past work and the overall novelty. The authors state in the introduction, "according to the prevailing view, scale-free ongoing neural activity is interpreted as 'background' activity, not directly linked to behavior." It would be helpful to have some specific references here, as several recent papers (including the Stringer et al. 2019 paper from which these data were taken, but also papers from McCormick lab and (Anne) Churchland lab) showed a correlation between spontaneous activity and spontaneous facial behaviors. To my knowledge, the sorts of fidgety behavior analyzed in this paper have not been shown to be scale-free, and so (a) is a new result, but once we know this, it seems that (e) follows because we fully expect some neurons to correlate with some behavior.

      R2a: We agree with the reviewer that our original introductory, motivating arguments needed improvement. We have now rewritten the last 2 paragraphs of the introduction. We hope we have now laid out our argument more clearly, with more appropriate supporting citations. In brief, the logic is this:

      1. Previous theory, modeling, and experiments on the topic of scale-free neural activity suggest that this phenomenon is an autonomous, internally generated thing, independent of anything the body is doing.

      2. Relatively new experiments (including those by Churchland’s lab and McCormmick’s lab: Stringer 2019; Salkoff 2020; Clancy 2019; Musall 2019) suggest a different picture with a link between spontaneous behaviors and ongoing cortical activity, but these studies did not address any questions about scale-free-ness.

      3. Moreover, these new experiments show that behavioral variables only manage to explain about 10-30% of ongoing activity.

      4. Is this behaviorally-explainable 10-30% scale-free or perhaps the scale-free aspects of cortical dynamics fall withing the other 70-90%. Our goal is to find out.

      Digging a bit more on this issue, I would argue that results (b) and (c) also follow. By selecting subsets of neurons with very high cross-correlation, an effective latent variable has emerged. For example, the activity rasters of these subsets are similar to a population in which each neuron fires with the same time-varying rate (i.e., a heterogeneous Poisson process). Such models have been previously shown to be able to generate power-law distributed event sizes (see, eg., Touboul and Destexhe, 2017; also work by Priesemann). With this in mind, if you select from the entire population a set of neurons whose activity is effectively determined by a latent variable, do you not expect power laws in size distributions?

      Our understanding is that not all Poisson processes with a time-varying rate will result in a power law. It is quite essential that the fluctuations in rate must themselves be power-law distributed. As a clear example of how this breaks down, consider a Poisson rate that varies according to a sine wave with fixed period and amplitude. In this case, the avalanche size distribution is definitely not scale-free, it would have a clear typical scale. Another point of view on this comes from some of the simplest models used to study criticality – e.g. all-to-all connected probabilistic binary neurons (like in Shew et al 2009 J Neurosi). These models do generate spiking with a time-varying Poisson rate when they are at criticality or away from criticality. But, only when the synaptic strength is tuned to criticality is the time-varying rate going to generate power-law distributed avalanches. I think the Priesmann & Shriki paper made this point as well.

      My second reservation has to do with the generality of the conclusions drawn from the mechanistic model. One of the connectivity motifs identified appears to be i+ to e- and i- to e+, where potentially i+/i- are SOM and VIP (or really any specific inhibitory type) cells. The specific connections to subsets of excitatory cells appear to be important (based on the solid lines in Figure 8). This seems surprising: is there any experimental support for excitatory cells to preferentially receive inhibition from either SOM or VIP, but not both?

      R2b: There is indeed direct experimental support for the competitive relationship between SOM, VIP, and functionally distinct groups of excitatory neurons. This was shown in the paper by Josh Trachtenberg’s group: Garcia-Junco-Clemente et al 2017. An inhibitory pull-push circuit in frontal cortex. Nat Neurosci 20:389–392. However, we emphasize that we also showed (lower left motif in Fig 8G) that a simpler model with only one inhibitory group is sufficient to explain the anticorrelations and scale-free dynamics we observe. We opted to highlight the model with two inhibitory groups since it can also account for the Garcia-Junco-Clemente et al results.

      In the section where we describe the model, we state, “We considered two inhibitory groups, instead of just one, to account for previous reports of anticorrelations between VIP and SOM inhibitory neurons in addition to anticorrelations between groups of excitatory neurons (Garcia-Junco-Clemente et al., 2017).”

      More broadly, I wonder if the neat diagrams drawn here are misleading. The sample raster, showing what appears to be the full simulation, certainly captures the correlated/anti-correlated pattern of the 100 cells most correlated with a seed cell and 100 cells most anti-correlated with it, but it does not contain the 11,000 cells in between with zero to moderate levels of correlation.

      R2c: We agree that our original model has several limitations and that one of the most obvious features lacking in our model is asynchronous neurons (The limitations are now discussed more openly in the last paragraph of the model subsection). In the data from the Garcia-Junco-Clemente et al paper above there are many asynchronous neurons as well. To ameliorate this limitation, we have now created a modified model that now accounts for asynchronous neurons together with the competing anticorrelated neurons (now shown and described in Fig S9). We put this modified model in supplementary material and kept the simpler, original model in the main findings of our work, because the original model provides a simpler account of the features of the data we focused on in our work – i.e. anticorrelated scale-free fluctuations. The addition of the asynchronous population does not substantially change the behavior of the two anticorrelated groups in the original model.

      We probably expect that the full covariance matrix has similar structure from any seed (see Meshulam et al. 2019, PRL, for an analysis of scaling of coarse-grained activity covariance), and this suggests multiple cross-over inhibition constraints, which seem like they could be hard to satisfy.

      R2d: We agree that it remains an outstanding challenge to create a model that reproduces the full complexity of the covariance matrix. We feel that this challenge is beyond the scope of this paper, which is already arguably squeezing quite a lot into one manuscript (one reviewer already suggested removing figures!).

      We added a paragraph at the end of the subsection about the model to emphasize this limitation of the model as well as other limitations. This new paragraph says:

      While our model offers a simple explanation of anticorrelated scale-free dynamics, its simplicity comes with limitations. Perhaps the most obvious limitation of our model is that it does not include neurons with weak correlations to both e+ and e- (those neurons in the middle of the correlation spectrum shown in Fig 7B). In Fig S9, we show that our model can be modified in a simple way to include asynchronous neurons. Another limitation is that we assumed that all non-zero synaptic connections were equal in weight. We loosen this assumption allowing for variable weights in Fig S9, without changing the basic features of anticorrelated scale-free fluctuations. Future work might improve our model further by accounting for neurons with intermediate correlations.

      The motifs identified in Fig. 8 likely exist, but I am left with many questions of what we learned about connectivity rules that would account for the full distribution of correlations. Would starting with an Erdos-Renyi network with slight over-representation of these motifs be sufficient? How important is the homogeneous connection weights from each pool assumption - would allowing connection weights with some dispersion change the results?

      R2e: First, we emphasize that our specific goal with our model was to identify a possible mechanism for the anticorrelated scale-free fluctuations that played the key role in our analyses. We agree that this is not a complete account of all correlations, but this was not the goal of our work. Nonetheless, our new modified model in Fig S9 now accounts for additional neurons with weak correlations. However, we think that future theoretical/modeling work will be required to better account for the intermediate correlations that are also present in the experimental data.

      We confirmed that an Erdo-Renyi network of E and I neurons can produce scale-free dynamics, but cannot produce substantial anticorrelated dynamics (Fig 8G, top right motif). Additionally, the parameter space study we performed with our model in Fig 8 showed that if the interactions between the two excitatory groups exceed a certain tipping point density, then the model behavior switches to behavior expected from an Erdos-Renyi network (Fig 8F). Finally, we have now confirmed that some non-uniformity of synaptic weights does not change the main results (Fig S9). In the model presented in Fig S9, the value of each non-zero connection weight was drawn from a uniform distribution [0,0.01] or [-0.01,0] for excitatory and inhibitory connections, respectively. All of these facts are described in the model subsection of the paper results.

      As a whole, this paper has the potential to make an impact on how large-scale neural and behavioral recordings are analyzed and interpreted, which is of high interest to a large contingent of the field.

      Reviewer #3 (Public Review):

      The primary goal of this work is to link scale free dynamics, as measured by the distributions of event sizes and durations, of behavioral events and neuronal populations. The work uses recordings from Stringer et al. and focus on identifying scale-free models by fitting the log-log distribution of event sizes. Specifically, the authors take averages of correlated neural sub-populations and compute the scale-free characterization. Importantly, neither the full population average nor random uncorrelated subsets exhibited scaling free dynamics, only correlated subsets. The authors then work to relate the characterization of the neuronal activity to specific behavioral variables by testing the scale-free characteristics as a function of correlation with behavior. To explain their experimental observation, the authors turn to classic e-i network constructions as models of activity that could produce the observed data. The authors hypothesize that a winner-take-all e-i network can reproduce the activity profiles and therefore might be a viable candidate for further study. While well written, I find that there are a significant number of potential issues that should be clarified. Primarily I have main concerns: 1) The data processing seems to have the potential to distort features that may be important for this analysis (including missed detections and dynamic range), 2) The analysis jumps right to e-i network interactions, while there seems to be a much simpler, and more general explanation that seems like it could describe their observations (which has to do with the way they are averaging neurons), and 3) that the relationship between the neural and behavioral data could be further clarified by accounting for the lop-sidedness of the data statistics. I have included more details below about my concerns below.

      Main points:

      1) Limits of calcium imaging: There is a large uncertainty that is not accounted for in dealing with smaller events. In particular there are a number of studies now, both using paired electro-physiology and imaging [R1] and biophysical simulations [R2] that show that for small neural events are often not visible in the calcium signal. Moreover, this problem may be exacerbated by the fact that the imaging is at 3Hz, much lower than the more typical 10-30Hz imaging speeds. The effects of this missing data should be accounted for as could be a potential source of large errors in estimating the neural activity distributions.

      R3a: We appreciate the concern here and agree that event size statistics could in principle be biased in some systematic way due to missed spikes due to deconvolution of Ca signals. To directly test this possibility, we performed a new analysis of spike data recorded with high time resolution electrophysiology. We began with forward-modeling process to create a low-time-resolution, Ca-like signal, using the same deconvolution algorithm (OASIS) that was used to generate the data we analyzed in our work here. In agreement with the reviewer’s concern, we found that spikes were sometimes missed, but the loss was not extreme and did not impact the neural event size statistics in a significant way compared to the ground truth we obtained directly from the original spike data (with no loss of spikes). This new work is now described in a new paragraph at the end of the subsection of results related to Fig 3 and in a new Fig S3. The new paragraph says…

      Two concerns with the data analyzed here are that it was sampled at a slow time scale (3 Hz frame rate) and that the deconvolution methods used to obtain the data here from the raw GCAMP6s Ca imaging signals are likely to miss some activity (Huang et al., 2021). Since our analysis of neural events hinges on summing up activity across neurons, could it be that the missed activity creates systematic biases in our observed event size statistics? To address this question, we analyzed some time-resolved spike data (Neuropixel recording from Stringer et al 2019). Starting from the spike data, we created a slow signal, similar to that we analyzed here by convolving with a Ca-transient, down sampling, deconvolving, and z-scoring (Fig S3). We compared neural event size distributions to “ground truth” based on the original spike data (with no loss of spikes) and found that the neural event size distributions were very similar, with the same exponent and same power-law range (Fig S3). Thus, we conclude that our reported neural event size distributions are reliable.

      However, although loss of spikes did not impact the event size distributions much, the time-scale of measurement did matter. As discussed above and shown in Fig S4, changing from 5 ms time resolution to 330 ms time resolution does change the exponent and the range of the power law. However, in the test data set we worked with, the existence of a power law was robust across time scales.

      2) Correlations and power-laws in subsets. I have a number of concerns with how neurons are selected and partitioned to achieve scale-free dynamics. 2a) First, it's unclear why the averaging is required in the first place. This operation projects the entire population down in an incredibly lossy way and removes much of the complexity of the population activity.

      R3b: Our population averaging approach is motivated by theoretical predictions and previous work. According to established theoretical accounts of scale-free population events (i.e. non-equilibrium critical phenomena in neural systems) such population-summed event sizes should have power law statistics if the system is near a critical point. This approach has been used in many previous studies of scale-free neural activity (e.g. all of those cited in the introduction in relation to scale-free neuronal avalanches). One of the main results of our study is that the existing theories and models of critical dynamics in neural systems fail to account for small subsets of neurons with scale-free activity amid a larger population that does not conform to these statistics. We could not make this conclusion if we did not test the predictions of those existing theories and models.

      2b) Second, the authors state that it is highly curious that subsets of the population exhibit power laws while the entire population does not. While the discussion and hypothesizing about different e-i interactions is interesting I believe that there's a discussion to be had on a much more basic level of whether there are topology independent explanations, such as basic distributions of correlations between neurons that can explain the subnetwork averaging. Specifically, if the correlation to any given neuron falls off, e.g., with an exponential falloff (i.e., a Gaussian Process type covariance between neurons), it seems that similar effects should hold. This type of effect can be easily tested by generating null distributions using code bases such as [R3]. I believe that this is an important point, since local (broadly defined) correlations of neurons implying the observed subnetwork behavior means that many mechanisms that have local correlations but don't cluster in any meaningful way could also be responsible for the local averaging effect.

      R3c: We appreciate the reviewer’s effort, trying out some code to generate a statistical model. We agree that we could create such a statistical model that describes the observed distribution of pairwise correlations among neurons. For instance, it would be trivial to directly measure the covariance matrix, mean activities, and autocorrelations of the experimental data, which would, of course, provide a very good statistical description of the data. It would also be simple to generate more approximate statistical descriptions of the data, using multivariate gaussians, similar to the code suggested by the reviewer. However, we emphasize, this would not meet the goal of our modeling effort, which is mechanistic, not statistical. The aim of our model was to identify a possible biophysical mechanism from which emerge certain observed statistical features of the data. We feel that a statistical model is not a suitable strategy to meet this aim. Nonetheless, we agree with the reviewer that clusters with sharp boundaries (like the distinction between e+ an e- in our model) are not necessary to reproduce the cancelation of anticorrelated neurons. In other words, we agree that sharp boundaries of the e+ and e- groups of our model are not crucial ingredients to match our observations.

      2c) In general, the discussion of "two networks" seems like it relies on the correlation plot of Figure~7B. The decay away from the peak correlation is sharp, but there does not seem to be significant clustering in the anti-correlation population, instead a very slow decay away from zero. The authors do not show evidence of clustering in the neurons, nor any biophysical reason why e and i neurons are present in the imaging data.

      R3d: First a small reminder: As stated in the paper, the data here is only showing activity of excitatory neurons. Inhibitory neurons are certainly present in V1, but they are not recorded in this data set. Thus we interpret our e+ and e- groups as two subsets of anticorrelated excitatory neurons, like those we observed in the experimental data. We agree that our simplified model treats the anticorrelated subsets as if they are clustered, but this clustering is certainly not required for any of the data analyses of experimental data. We expect that our model could be improved to allow for a less sharp boundary between e+ and e- groups, but we leave that for future work, because it is not essential to most of the results in the paper. This limitation of the model is now stated clearly in the last paragraph of the model subsection.

      The alternative explanation (as mentioned in (b)) is that the there is a more continuous set of correlations among the neurons with the same result. In fact I tested this myself using [R3] to generate some data with the desired statistics, and the distribution of events seems to also describe this same observation. Obviously, the full test would need to use the same event identification code, and so I believe that it is quite important that the authors consider the much more generic explanation for the sub-network averaging effect.

      R3e: As discussed above, we respectfully disagree that a statistical model is an acceptable replacement for a mechanistic model, since we are seeking to understand possible biophysical mechanisms. A statistical model is agnostic about mechanisms. We have nothing against statistical models, but in this case, they would not serve our goals.

      To emphasize our point about the inadequacy of a statistical model for our goals, consider the following argument. Imagine we directly computed the mean activities, covariance matrix, and autocorrelations of all 10000 neurons from the real data. Then, we would have in hand an excellent statistical model of the data. We could then create a surrogate data set by drawing random numbers from a multivariate gaussian with same statistical description (e.g. using code like that offered by reviewer 3). This would, by construction, result in the same numbers of correlated and anticorrelated surrogate neurons. But what would this tell us about the biophysical mechanisms that might underlie these observations? Nothing, in our opinion.

      2d) Another important aspect here is how single neurons behave. I didn't catch if single neurons were stated to exhibit a power law. If they do, then that would help in that there are different limiting behaviors to the averaging that pass through the observed stated numbers. If not, then there is an additional oddity that one must average neurons at all to obtain a power law.

      R3f: We understand that our approach may seem odd from the point of view of central-limit-theorem-type argument. However, as mentioned above (reply R3b) and in our paper, there is a well-established history of theory and corresponding experimental tests for power-law distributed population events in neural systems near criticality. The prediction from theory is that the population summed activity will have power-law distributed events or fluctuations. That is the prediction that motivates our approach. In these theories, it is certainly not necessary that individual neurons have power-law fluctuations on their own. In most previous theories, it is necessary to consider the collective activity of many neurons before the power-law statistics become apparent, because each individual neurons contributes only a small part to the emergent, collective fluctuations. This phenomenon does not require that each individual neuron have power-law fluctuations.

      At the risk of being pedantic, we feel obliged to point out that one cannot understand the peculiar scale-free statistics that occur at criticality by considering the behavior of individual elements of the system; hence the notion that critical phenomena are “emergent”. This important fact is not trivial and is, for example, why there was a Nobel prize awarded in physics for developing theoretical understanding of critical phenomena.

      3) There is something that seems off about the range of \beta values inferred with the ranges of \tau and $\alpha$. With \tau in [0.9,1.1], then the denominator 1-\tau is in [-0.1, 0.1], which the authors state means that \beta (found to be in [2,2.4]) is not near \beta_{crackling} = (\alpha-1)/(1-\tau). It seems as this is the opposite, as the possible values of the \beta_{crackling} is huge due to the denominator, and so \beta is in the range of possible \beta_{crackling} almost vacuously. Was this statement just poorly worded?

      R3g: The point here is that theory of crackling noise predicts that the fit value of beta should be equal to (1-alpha)/(1-tau). In other words, a confirmation of the theory would have all the points on the unity line in the rightmost panels of Fig9D and 9E, not scattered by more than an order of magnitude around the unity line. (We now state this explicitly in the text where Fig 9 is discussed.) Broad scatter around the unity line means the theory prediction did not hold. This is well established in previous studies of scale-free brain dynamics and crackling noise theory (see for example Ma et al Neuron 2019, Shew et al Nature Physics 2015, Friedman et al PRL 2012). A clearer single example of the failure of the theory to predict beta is shown in Fig 5A,B, and C.

      4) Connection between brain and behavior:

      4a) It is not clear if there is more to what the authors are trying to say with the specifics of the scale free fits for behavior. From what I can see those results are used to motivate the neural studies, but aside from that the details of those ranges don't seem to come up again.

      R3h: The reviewer is correct, the primary point in Fig 2 is that scale-free behavioral statistics often exist. Beyond this point about existence, reporting of the specific exponents and ranges is just standard practice for this kind of analysis; a natural question to ask after claiming that we find scale behavior is “what are the exponents and ranges”. We would be remiss not to report those numbers.

      4b) Given that the primary connection between neuronal and behavioral activity seems to be Figure~4. The distribution of points in these plots seem to be very lopsided, in that some plots have large ranges of few-to-no data points. It would be very helpful to get a sense of the distribution of points which are a bit hard to see given the overlapping points and super-imposed lines.

      R3i: We agree that this whitespace in the figure panels is a somewhat awkward, but we chose to keep the horizontal axis the same for all panels of Fig 4B, because this shows that not all behaviors, and not all animals had the same range of behavioral correlations. We felt that hiding this was a bit misleading, so we kept the white space.

      4c) Neural activity correlated with some behavior variables can sometimes be the most active subset of neurons. This could potentially skew the maximum sizes of events and give behaviorally correlated subsets an unfair advantage in terms of the scale-free range.

    2. Reviewer #3 (Public Review):

      The primary goal of this work is to link scale free dynamics, as measured by the distributions of event sizes and durations, of behavioral events and neuronal populations. The work uses recordings from Stringer et al. and focus on identifying scale-free models by fitting the log-log distribution of event sizes. Specifically, the authors take averages of correlated neural sub-populations and compute the scale-free characterization. Importantly, neither the full population average nor random uncorrelated subsets exhibited scaling free dynamics, only correlated subsets. The authors then work to relate the characterization of the neuronal activity to specific behavioral variables by testing the scale-free characteristics as a function of correlation with behavior. To explain their experimental observation, the authors turn to classic e-i network constructions as models of activity that could produce the observed data. The authors hypothesize that a winner-take-all e-i network can reproduce the activity profiles and therefore might be a viable candidate for further study. While well written, I find that there are a significant number of potential issues that should be clarified. Primarily I have main concerns: 1) The data processing seems to have the potential to distort features that may be important for this analysis (including missed detections and dynamic range), 2) The analysis jumps right to e-i network interactions, while there seems to be a much simpler, and more general explanation that seems like it could describe their observations (which has to do with the way they are averaging neurons), and 3) that the relationship between the neural and behavioral data could be further clarified by accounting for the lop-sidedness of the data statistics. I have included more details below about my concerns below.

      Main points:<br /> 1)Limits of calcium imaging: There is a large uncertainty that is not accounted for in dealing with smaller events. In particular there are a number of studies now, both using paired electro-physiology and imaging [R1] and biophysical simulations [R2] that show that for small neural events are often not visible in the calcium signal. Moreover, this problem may be exacerbated by the fact that the imaging is at 3Hz, much lower than the more typical 10-30Hz imaging speeds. The effects of this missing data should be accounted for as could be a potential source of large errors in estimating the neural activity distributions.

      2) Correlations and power-laws in subsets. I have a number of concerns with how neurons are selected and partitioned to achieve scale-free dynamics.<br /> 2a) First, it's unclear why the averaging is required in the first place. This operation projects the entire population down in an incredibly lossy way and removes much of the complexity of the population activity.<br /> 2b) Second, the authors state that it is highly curious that subsets of the population exhibit power laws while the entire population does not. While the discussion and hypothesizing about different e-i interactions is interesting I believe that there's a discussion to be had on a much more basic level of whether there are topology independent explanations, such as basic distributions of correlations between neurons that can explain the subnetwork averaging. Specifically, if the correlation to any given neuron falls off, e.g., with an exponential falloff (i.e., a Gaussian Process type covariance between neurons), it seems that similar effects should hold. This type of effect can be easily tested by generating null distributions using code bases such as [R3]. I believe that this is an important point, since local (broadly defined) correlations of neurons implying the observed subnetwork behavior means that many mechanisms that have local correlations but don't cluster in any meaningful way could also be responsible for the local averaging effect.<br /> 2c) In general, the discussion of "two networks" seems like it relies on the correlation plot of Figure~7B. The decay away from the peak correlation is sharp, but there does not seem to be significant clustering in the anti-correlation population, instead a very slow decay away from zero. The authors do not show evidence of clustering in the neurons, nor any biophysical reason why e and i neurons are present in the imaging data. The alternative explanation (as mentioned in (b)) is that the there is a more continuous set of correlations among the neurons with the same result. In fact I tested this myself using [R3] to generate some data with the desired statistics, and the distribution of events seems to also describe this same observation. Obviously, the full test would need to use the same event identification code, and so I believe that it is quite important that the authors consider the much more generic explanation for the sub-network averaging effect.<br /> 2d) Another important aspect here is how single neurons behave. I didn't catch if single neurons were stated to exhibit a power law. If they do, then that would help in that there are different limiting behaviors to the averaging that pass through the observed stated numbers. If not, then there is an additional oddity that one must average neurons at all to obtain a power law.

      3) There is something that seems off about the range of \beta values inferred with the ranges of \tau and $\alpha$. With \tau in [0.9,1.1], then the denominator 1-\tau is in [-0.1, 0.1], which the authors state means that \beta (found to be in [2,2.4]) is not near \beta_{crackling} = (\alpha-1)/(1-\tau). It seems as this is the opposite, as the possible values of the \beta_{crackling} is huge due to the denominator, and so \beta is in the range of possible \beta_{crackling} almost vacuously. Was this statement just poorly worded?

      4) Connection between brain and behavior:<br /> 4a) It is not clear if there is more to what the authors are trying to say with the specifics of the scale free fits for behavior. From what I can see those results are used to motivate the neural studies, but aside from that the details of those ranges don't seem to come up again.<br /> 4b) Given that the primary connection between neuronal and behavioral activity seems to be Figure~4. The distribution of points in these plots seem to be very lopsided, in that some plots have large ranges of few-to-no data points. It would be very helpful to get a sense of the distribution of points which are a bit hard to see given the overlapping points and super-imposed lines.<br /> 4c) Neural activity correlated with some behavior variables can sometimes be the most active subset of neurons. This could potentially skew the maximum sizes of events and give behaviorally correlated subsets an unfair advantage in terms of the scale-free range.

    1. Reviewer #1 (Public Review):

      The authors of this paper are offering the electron microscopy community an affordable tool to semi-automatize some of the most challenging and time-consuming steps to target a region of interest in a sample prepared for electron microscopy. This article is sharing in total transparency all their work and the immense development efforts put in by the authors in terms of finance, manpower, software, and hardware development. A huge effort has been done to make all the parts of the workflow accessible. The way to add the hardware to the existing ultramicrotomes is clearly explained and documented. The hardware to be purchased and adapted is also clearly documented. All the software needed is open-source, the code fully documented and the implementation documented. A critical assessment of the performances is shown for the two main and only suppliers of ultramicrotomes. The reproducibility of the approach has been quantified on numerous samples in a fair and systematic way. The limits and ways for improvements are openly and clearly discussed at the end of the article. All the process is documented by clear and didactic figures helping the readers to put the equations in context.

      The implementation of this solution by laboratories will still be a substantial investment but the impact on the research can be so crucial that it can motivate groups to make the effort. The generosity of the authors to share all the data and the fact that nothing is hidden or prevents anybody to adapt this solution is exceptional and should be encouraged.

    1. I’d be interested in hearing more about the ways oral cultures did their thinking, if you have resources on that handy. Otherwise if you recall your source for that could you pass it on?

      Below are some sources to give you a start on orality. I've arranged them in a suggested watching/reading order with some introductory material before more technical sources which will give you jumping off points for further research.

      • Modern Memory, Ancient Methods. TEDxMelbourne. Melbourne, Australia, 2018. https://www.ted.com/talks/lynne_kelly_modern_memory_ancient_methods.
      • Kelly, Lynne. The Memory Code. Allen & Unwin, 2016.
      • Kelly, Lynne. Knowledge and Power in Prehistoric Societies: Orality, Memory and the Transmission of Culture. Cambridge: Cambridge University Press, 2015. https://doi.org/10.1017/CBO9781107444973.
      • Ong, Walter J. Orality and Literacy: The Technologizing of the Word. Taylor & Francis, 2007.
      • Parry, Milman, and Adam Parry. The Making of Homeric Verse: The Collected Papers of Milman Parry. Oxford University Press, 1971.
      • Neale, Margo, and Lynne Kelly. Songlines: The Power and Promise. First Knowledges, 1.0. Thames & Hudson, 2020.
    1. is less than 0.0001

      isn't it the area under the curve for these tails?

      and, imagine a PDF that isn't so peaked and a "large" p-value. It would be great if you would show the code to calculate the actual p-value (rather than just eye-balling it)

    1. why hasn't anyone done this? QmULUeqtF5FM2cRdqmeQVQgmrko5A1EN56bsnbXqaDn39d there's a Node.js SMTP server that will already route mail ... with like one line of code change to an IPFS location; we could make this in a minute. the reading client might need a weeks worth of work to "read it and display it" in a normal way. i deduce "in obviousness" that ofozonesol@ .. leaves me with a RH that is ... "fromthemachine .... the org" that decides what 0.1.2.7 is ... today I think that is probablh still owned by DARPA. We sell these numbers as a way to connect hardware and software in the TCP "internet" they are nearly a postal or phone number; something that you can't lose because of a password today. lots of other things are not tied t

      POSIX SMTP IMAP AND ETHEREUM, LINKED TO IPFS #8 Open teliten opened this issue now · 0 comments Comments @teliten teliten commented now why hasn't anyone done this?

      QmULUeqtF5FM2cRdqmeQVQgmrko5A1EN56bsnbXqaDn39d

      there's a Node.js SMTP server that will already route mail ... with like one line of code change to an IPFS location; we could make this in a minute.

      the reading client might need a weeks worth of work to "read it and display it" in a normal way.

      i deduce "in obviousness" that ofozonesol@ .. leaves me with a RH that is ... "fromthemachine .... the org" that decides what 0.1.2.7 is ... today I think that is probablh still owned by DARPA.

      We sell these numbers as a way to connect hardware and software in the TCP "internet" they are nearly a postal or phone number; something that you can't lose because of a password today.

      lots of other things are not tied to these numbers, but to credit cards and bank accounts--that gives lots of services added security in case you lose your passwords.

      free "internet" providers don't.

      it would be ince to have a credit card linked to your "ETH/IPFS" hash; which means the first service to do "credit card authorization" or consortium of banks or other services that do this; might have a good "scheme" for what is called multi-key cryptography. you might trust your bank to give you your password if you forget it; that's a really good service. and one we probably all need.

      THANKS FOR BEING HERE. WE SHOULD BE OFFERING FREE "MAKE A GITHUB ACCOUNT AND PIN 2GB OF DATA THERE" PLUGINS FOR CHROME, AND ALSO A "INET2::NNTP MASSIVE FREE STORAGE, ONE TIME FEE FOR UPLOAD" SERVICE.

      THIS WILL INCENTIVIZE PEOPLE TO USE THIS NEW SERVICE, WHICH IS MORE VALUABLE THAN 6 GOOGLES. [ that's a funny! ]

    1. cl = Client() # Download f = cl.get_file_by_name("my_sheet") workbook = f.download_workbook() # openpyxl workbook # save your download: workbook.save("myfile.xlsx") # Upload workbook = Workbook() d = cl.get_shared_directory("My Shared Directory") cl.upload_excel_workbook(d, "my_other_sheet", workbook)

      Excel Python Code edit for Partner Portal Automation

    1. Even though I’m an amateur researcherMeaning I do it as part of my job as a designer and writer, but in a rather a naive way compared to anyone writing a PhD., I still spend a good chunk of time hunting down and reading academic publications.

      One really oughtn't downplay their research skills like this, rather they should wear them as a badge of honor. Downplaying them leeches away one's power.

      Ph.D. researchers may potentially go deeper into sources, but this is only a function of time and available attention.

      This sort of debate also plays out in spaces like writing computer code. The broader industry determines who is and isn't a "coder", but this is only a means of creating power structures that determine who has power and who doesn't or who is part of the conversation and who isn't.

      Don't let Maggie fool you here, she is definitely part of this conversation.


      What areas of work over time does this pattern of level of experience not apply to?

      There is definitely a level of minimal literacy at which one could be considered a reader, but there is no distinction between amateur reader and professional reader the way there might be between an "amateur researcher" and a full time "academic researcher".

      Other examples of this? Video game playing?

  4. gbracha.blogspot.com gbracha.blogspot.com
    1. Static variables are bad for re-entrancy. Code that accesses such state is not re-entrant. It is all too easy to produce such code. Case in point: javac. Originally conceived as a batch compiler, javac had to undergo extensive reconstructive surgery to make it suitable for use in IDEs. A major problem was that one could not create multiple instances of the compiler to be used by different parts of an IDE, because javac had significant static state.

      Walter Bright described similar issues with the Digital Mars compiler in a recent NWCPP talk "Adding Modules to C in 10 Lines of Code", albeit Walter's compiler sounds like it was far easier to fix.

      It's funny that this happens with compilers. Wirth's Oberon compiler (module ORP) also depends on static state. But compilers seem natural to me to be something that you want to allow multiple instances of—it's not even among the list of things I'd expect people to make excuses for (cf https://kentonshouse.com/singletons).

    1. Since the original Pascal was implemented with a one-pass compiler, the language believes strongly in declaration before use.  In particular, procedures and functions must be declared (body and all) before they are used.  The result is that a typical Pascal program reads from the bottom up - all the procedures and functions are displayed before any of the code that calls them, at all levels.  This is essentially opposite to the order in which the functions are designed and used.

      Worth noting that almost every C program is impaired by a similar limitation in the C language (despite the disclaimer that follows this passage about the use of the preproccessor), and many programmers' thought processes suffer because of it—no consideration for the presentability of code (even when not in languages that are affected by this limitation!)

    1. by calling the method and then defining a proc

      Uhhh yeah so actually its the proc itself that calls the method and the proc itself will be executed inside a different namespace than Metasploit::Framework::LoginScanner::HTTP I think (since your return the proc). Its not until the <proc name>.call() function is called that this actually executes so the method isn't called at this point.

      Your also missing the code snippet where you actually make this call.

    2. Figure 5: Code example showing Metasploit::Framework::LoginScanner::HTTP

      This is way too wordy and confusing. Please reword this to be clearer and more succinct. You seem to be trying to express 3 ideas at once here vs focusing on the one important idea.

      Sorry couldn't highlight the entire quote but this applies to the entire quote.

    3. Figure 3: Code example showing the usage of print statements in Rex:: namespace, which is not ideal

      Should look at changing the configuration of this caption text in your posts to be smaller. Its bigger than the main text of the article which is odd.

    4. implement a register option in the Rex:: namespace, nor can we use print statements for logging in the Rex:: layer. This is because the Rex:: layer is meant to work independently as a gem and it should not access Metasploit code in any way.

      The relationship here isn't explained well. You lack the explanation of the datastore and how that can only be accessed from the Metasploit:: namespace.

    5. code.

      For what purpose? Should reiterate the goal here otherwise you saying your doing a piece of work and my next reaction is "okay but why". Keep in minder the reader may forget points as they go along so having these explanations at hand helps make your text easier to read vs them having to now go back, find the paragraph where you explained why this concept was needed, and then reread.

      You often hear people say that certain books are hard to read. This can be one of the reasons why people might state this.

    6. >

      This looks like a greater than sign vs an arrow.

      It may be better to separate this into a code section with indentation to better show the class heirarchy and what relies on what.

      We could also use arrows with --> but personally I would say that is also confusing as to what inherits what without further text explaining things.

    1. informal governance systems, which use a combination of offline coordination and online code modifications to effect changes, on-chain governance systems work only online.

      this is bitcoin.

    1. Reviewer #1 (Public Review):

      In this manuscript, Blanc et al. developed a tool to align different larval zebrafish brains with pan-neural markers and additional birthdate labeling into a common atlas. By aligning transgenic lines into this reference atlas, the authors tried to infer the birth date and growth patterns of different neuron populations. The intention of providing an open-access tool and developmental atlas is good, especially considering most of the current zebrafish brain atlases were made for adult or larval zebrafish more than 5 days old. However, the key features claimed by the authors i.e., the "temporal dynamic" is essentially missing from the atlas. The tool was still built for a single development stage and reflected no information on growth patterns except the neuronal birthdate. Moreover, the accuracy of the registration method, the rationality of the birthdate labeling, and the validity of the proof-of-concept inference were also not sufficiently demonstrated in the experimental design.

      Overall, I believe the manuscript has the potential to be a useful tool and an impactful developmental atlas for the community, but it would need substantial improvement in method design, experimental validation, and data/software availability.

      Major points:

      1. The authors claimed to have made a "3D-temporal" atlas for developing zebrafish hindbrain. However, the "temporal" component was solely birthdate inferred from temporal labeling. Images were still acquired at the same developmental stage, which makes the atlas and registration method not substantially different from the other existing atlases (e.g. ViBE-Z (Ronneberger 2012), Z-Brain (Randlett 2015), ZBB (Tabor 2019), Mapzebrain (Kunst 2019) - note not all of these tools were cited in introduction). The authors would have to either add temporal tracing of the population and provide registration between different developmental stages, or tune down the "temporal" term only to "birthdating".

      2. Rigid registration was used to align the images from different individuals, as opposed to the more complicated non-linear registration used by all the tools above. The accuracy of such registration needs to be measured to justify the choice of method, by measuring the inter-individual variability using different registration methods. Variability should be quantified in 3D rather than along specific anatomical axes.

      3. Birthdate labeling was achieved by photoconverting Kaede at different stages (24, 36, 48 hpf) and imaging at 72hpf. This method suffers from an intrinsic bias: the Kaede-red was subject to different time windows for diluting and metabolizing over development, making the age labeling incomparable between different labeling lengths. To verify the experimental design, the authors should 1) demonstrate that the red cells labeled in an early conversion are strictly included in the red cells labeled in a late conversion, and 2) provide an additional age-labeling method like BrdU treatment, to show the new cells incorporated between the two time points are reflected in the growing photoconverted population.

      4. Proof-of-concept inference of GABAergic neuron birth date in Figure 5 is very vague. No link was shown between the red cells in Fig 5B and the gad1b in situ-positive cells in Fig 5D. If tracing the fate of these cells from 24-72hpf is not possible, the authors should at least demonstrate that they are 1) post-mitotic at 24hpf, i.e. HuC-positive; and 2) appear in similar numbers and similar neighborhood context as the red cells in Fig 5B. I also want to point out that while it is true that mRNAs are expressed earlier than fluorescent proteins in the transgenic line, an early-born cell expressing a specific gene late development does not mean it would express the gene early on. A gene can be ON early on and turned OFF later; Conversely, a gene can express late in the differentiation process while the cell is committed and went through terminal division early in the lineage.

      5. It is mentioned many times that the platform is "open-access" and "expandable", but no source or browsable atlas was provided (maybe I was wrong, but I did not find the Fiji macro and R code on the provided website). The software and data availability should be improved, and more demonstration is needed to show its "expendability" -guidelines should be provided on how to upload users' own data to use this platform, and what kind of additional data is supported.

    1. Evaluation Summary:

      By integrating in silico predictions and mass-spectrometry, this manuscript tackles the problem of annotating the currently nameless stretches of genomic sequence that actually code for proteins. The hundreds of protein coding fruit fly genes described here offer new inroads for studying some of the very youngest functional elements in genomes, particularly those that have recently emerged from non-coding DNA sequences. To clarify the biological significance of the present study, the authors should both highlight the genes mostly like to encode functional products and conduct a comparison to published datasets that used different methods to identify such genes in fruit flies.

      (This preprint has been reviewed by eLife. We include the public reviews from the reviewers here; the authors also receive private feedback with suggested changes to the manuscript. The reviewers remained anonymous to the authors.)

    2. Reviewer #3 (Public Review):

      The goal of this work is to understand the role that previously neglected, unannotated ORFs play in the evolution of gene novelty in the Drosophila melanogaster lineage. These are ORFs that mostly code for small proteins, most of them having noncanonical start codons. The authors sought to identify translated ORFs using published MS proteomics datasets, making sure to achieve a balance between false positives and false negatives; they succeed rather convincingly. They then focused on when these ORFs first appeared and how they evolved, mainly aiming to understand whether some of them have emerged de novo and the evolutionary trajectories that they have taken.

      The major strengths of the manuscript lie in its scope, as it takes advantage of recently published data to exhaustively search the entire ORF catalogue of D. melanogaster for translation, in the application of rigorous methodologies for the identification of MS-supported ORFs and in the inference of the phylogenetic age of the ORF using a novel synteny-based approach. About this last point, however, I feel that some methodological details are missing. I understand that the genomic MSA of the D. melanogaster ORF and its orthologous region is extracted and that a search for the optimally aligning segment in the sequence of each species is conducted. Does that search include only ORFs in each orthologous region? I assume this is the case because the similarity cut-off of 2.5 is then calculated from protein alignments. If that is the case, why not use global alignments of entire ORFs? Furthermore, why is there no gap penalty used? Finally, I cannot see where the genomic similarity scoring part detailed in the methods is used, which adds to my confusion.

      Albeit not a major one, an additional weakness comes from the use of Latent Class Analysis to identify subpopulations of ORFs within the greater set, and examine their differences. I see why the authors did it and in theory, I have no objection, but given the small number of factors (8 if I'm counting correctly), it's unclear if it's worth the added level of complexity. Plus there's some potential bias involved since it requires binning continuous variables and hence defining bins. It seems to me that the authors could have achieved more or less the same by looking for specific subgroups based on criteria that they set themselves a priori.

      A crucial part of the work is the attribution of de novo origin to utORFs. Here, I find the initial analysis, wherein a single outgroup species is sufficient to invoke de novo origination, relatively unnecessary. Especially since the authors go on to state themselves that only two or more supporting outgroups can provide convincing evidence. I would add that at least two of the outgroups should be non-monophyletic. It is also unclear why an ORF needs to be present in the outgroups at all (and lacking significant similarity). Is there a limit to how small that ORF can be? If so, and if there happens to be no such ORF in a region, why would that not count as evidence?

      I feel that the authors achieve most of their aims, at least the ones that I perceive as the most important.<br /> There are however some findings that are not sufficiently well supported.

    1. Reviewer #3 (Public Review):

      The paper describes an ingenious and painstakingly reported method of evaluating the informativeness of clinical trials. The authors have checked all the marks of robust, well-designed and transparently reported research: the study is registered, deviations from the protocol are clearly laid out, the method is reported with transparency and all the necessary details, code and data are shared, independent raters were used etc. The result is a methodology of assessing informativeness of clinical trials, which I look forward to use in my own content area.

      My only reserve, which I submit more for discussion than for other changes, is the reliance on clinicaltrials.gov. Sadly, and despite tremendous efforts from the developers of clinicaltrials.gov (one of the founders is an author of this paper and I am well-aware of her unrelenting work to improve reporting of information on clinicaltrials.gov), this remains a resource where many trials are registered and reported in a patchy, incomplete or downright superficial and sloppy manner. For outcome reporting, the authors compensate this limitation by searching for and subsequently checking primary publications. However, for the feasibility surrogate this could be a problem. Also, for risk of bias, for the trials the authors had to rate themselves (i.e., ratings were not available in a high-quality systematic review), what did the authors use, the publication or the record from the trial registry?

      In general, it seems like a problem for this sophisticated methodology might be the scarcity of publicly available information that is necessary to rate the proposed surrogates. Though the amount of work involved is already tremendous, the validity of the methodology would be improved by extracting information from a larger and more diverse pool of sources of information (e.g., protocols, regulatory documents, sponsor documents).

      In that sense, maybe it would be interesting for the authors to comment on how their methodology would be improved by having access to clinical trial protocols and statistical analysis plans. Of course, one would also need to know what was prospective and what was changed in those protocols, i.e., having protocols and statistical analysis plans prospectively registered and publicly available. Having access to these documents would open interesting possibilities to assessing changes in primary outcomes, though as the authors say that evaluation would also require making a judgement as to whether the change was justified. Relatedly, perhaps registered reports could be a potential candidate for clinical trials that would also support a more accurate assessment of informativeness, per the authors' method, provided the protocol is made openly available.

      Still related to protocols, were FDA documents consulted for pivotal trials, which again could give an indication of the protocol approved by the FDA and subsequent changes to it?

    2. Author Response

      Reviewer 1

      This article creates a formal definition of the 'informativeness' of a randomized clinical trial. This definition rests upon four characteristics: feasibility, reporting, importance, and risk of bias. The authors have conducted a retrospective review of trials from three disease areas and reported the application of their definition to these trials. Their primary finding is that about one quarter of the trials deemed to be eligible for assessment satisfied all four criteria, or, equivalently, about three quarters failed one or more of their criteria. Notably, industry‐sponsored studies were much more likely to be informative than nonindustry‐sponsored studies. It would be interesting to see a version of Figure 3 that categorizes by industry/non‐industry to see the differences in fall‐off between the four criterion.

      Thank you for this suggestion. We have added an additional figure to the supplement, eFigure 1 ‐ The Cumulative Proportion of Trials Meeting Four Conditions of Informativeness by Sponsor.

      We have also indicated the following in the legend of Table 1: (as related to study sponsor)

      Lines 332 – 334 “Included within the designation “Other” are 7 trials that received funding from the U.S. National Institutes of Health (NIH) or other U.S. Federal agencies, and 60 trials that are nonindustry and non‐NIH/U.S. Federal agency funded.”

      As the authors point out, the key limitations to this work are its inherent retrospective nature and subjectiveness of application, making any sort of prospective application of this idea all but impossible. Rather, this approach is useful as a 'thermometer' for the overall health of the type of trials satisfying the eligibility criteria of this metric. A secondary and inherent limitation of this measure is the sequential nature of the four criteria: only among the trials that have been determined to be feasible (the first criterion measured) can one measure reporting, importance, and lack of bias. And only among those trials that are both feasible and reported properly can one measure their importance and lack of bias, and so forth. Thus, except for feasibility, one cannot determine the proportion of all trials that were properly reported, were importance, or evinced lack of bias.

      “Thermometer” is an apt metaphor. Please see response to Essential Revisions # 4 regarding the retrospective nature of our assessment.

      The sequential nature of our assessment is indeed a limitation for readers wanting to know the fraction of trials fulfilling each of the four criteria. This reflects a compromise between our aspirations and our labor capacity. However, we emphasize that our pre‐specified primary outcome was the fraction of trials fulfilling all informativeness criteria. We have also elaborated upon the following in our limitations section:

      Line 521 – 533 “Third, we used a longitudinal and sequential approach, since some of the conditions were only relevant once others had been met. For example, incorporation into a clinical synthesizing document can only occur once results have been reported. Our sequential approach enabled us to address our primary outcome with an economy of resources. However, our study does not enable an assessment of the proportion of trials fulfilling three of the four criteria in isolation from each other. In addition, changes in research practices or policy occurring over the last decade might produce different estimates for the proportion of randomized trials that are informative.

      Reviewer 2

      The authors present a systematic review of 125 trials (in three disease areas: ischemic heart disease, diabetes mellitus and lung cancer) available on clinicaltrials.gov, with the goal of estimating how often clinical trials result in a meaningful impact on clinical practice (or policy or research decisions). This is a very interesting and important question which, if not approached carefully, could lead to results that are misleading and/or difficult to interpret.

      Thank you!

      To help reduce the potential for misleading results, the authors employed sensible criteria for inclusion of trials in this analysis (with trials being independently evaluated by multiple authors to determine whether they should be included). Once trials were selected, they had to be classified as "informative" or not. While such classification is, by definition, subjective, the authors attempted to make this process as objective as possible. They proposed a definition of "informative" based on four factors: feasibility (of achieving the target enrollment/completing the trial in a timely fashion), reporting (of results; either on clinicaltrials.gov or in a publication), importance (of the clinical question being addressed) and the quality of the design. As with the evaluation of trial inclusion, the authors independently evaluated each trial to determine informativeness.

      The authors provide a thorough discussion of key issues that could affect the interpretability of a trial and include a nice discussion of the limitations of their research. To me, the major limitation of this analysis (which the authors acknowledge) is that "clinically interesting/informative" is subjective. It is possible that their criteria will miss informative trials (or classify truly non‐informative trials as informative). For example, while perhaps uncommon, a trial could be classified as non‐informative due to poor design selection, but could end up being truly informative due to overwhelmingly positive results. Also, the "importance" component of their classification criteria could lead to truly important "niche" trials being misclassified as non‐informative.

      Thank you for this assessment. We agree that our measures of informativeness are imperfect. We hope that we have been forthright in the limitations of our approach. We believe that our first study limitation (lines 498 ‐ 513) outlines the issues highlighted above.

      Reviewer 3

      The paper describes an ingenious and painstakingly reported method of evaluating the informativeness of clinical trials. The authors have checked all the marks of robust, welldesigned and transparently reported research: the study is registered, deviations from the protocol are clearly laid out, the method is reported with transparency and all the necessary details, code and data are shared, independent raters were used etc. The result is a methodology of assessing informativeness of clinical trials, which I look forward to use in my own content area.

      Thank you!

      My only reserve, which I submit more for discussion than for other changes, is the reliance on clinicaltrials.gov. Sadly, and despite tremendous efforts from the developers of clinicaltrials.gov (one of the founders is an author of this paper and I am well‐aware of her unrelenting work to improve reporting of information on clinicaltrials.gov), this remains a resource where many trials are registered and reported in a patchy, incomplete or downright superficial and sloppy manner. For outcome reporting, the authors compensate this limitation by searching for and subsequently checking primary publications. However, for the feasibility surrogate this could be a problem. Also, for risk of bias, for the trials the authors had to rate themselves (i.e., ratings were not available in a high‐quality systematic review), what did the authors use, the publication or the record from the trial registry?

      Thank you. We agree that the sources of data that we relied on for this assessment are imperfect.

      We added the following to our limitations section:

      Lines 534 ‐ 535 “Fourth, our evaluation is limited by the accuracy of information contained in the ClinicalTrials.gov registration record...

      We also added the following sentence to clarify the sources of our risk of bias assessment in eMethods 9:

      Lines 996 – 998 “Information from both the primary study publication and the ClinicalTrials.gov registration record were used in our risk of bias assessments.

      In general, it seems like a problem for this sophisticated methodology might be the scarcity of publicly available information that is necessary to rate the proposed surrogates. Though the amount of work involved is already tremendous, the validity of the methodology would be improved by extracting information from a larger and more diverse pool of sources of information (e.g., protocols, regulatory documents, sponsor documents).

      In that sense, maybe it would be interesting for the authors to comment on how their methodology would be improved by having access to clinical trial protocols and statistical analysis plans. Of course, one would also need to know what was prospective and what was changed in those protocols, i.e., having protocols and statistical analysis plans prospectively registered and publicly available. Having access to these documents would open interesting possibilities to assessing changes in primary outcomes, though as the authors say that evaluation would also require making a judgement as to whether the change was justified. Relatedly, perhaps registered reports could be a potential candidate for clinical trials that would also support a more accurate assessment of informativeness, per the authors' method, provided the protocol is made openly available.

      Still related to protocols, were FDA documents consulted for pivotal trials, which again could give an indication of the protocol approved by the FDA and subsequent changes to it?

      We appreciate this comment and suggestion! And thanks for acknowledging the work it took to derive our estimates. Please see our full response to Essential Revision # 2 above.

    1. Code Information: Code Availability MDAR If we find code information, then SciScore expects to find the following items (randomization, blinding, power); Code Identifiers MDAR URL from github, google code, bitbucket

      Code

    1. Reviewer #1 (Public Review):

      This paper describes a new software tool: smartScope, for automated screening of cryo-EM grids. SmartScope can also perform automated data collection on suitable grids, including using beam-image shifts and tilted stage geometries. SmartScope uses deep-learning approaches for the selection of squares and holes of interest. The description of the software given in the paper is very promising, and as the code has not yet been made available, I cannot comment on its modularity, ease of installation, or general usability.

      The convolutional neural networks for square and hole detection were trained on relatively few examples, and supposedly all from the same microscope. How easy would it be for users to re-train these detectors for their own purposes? Could a description of that be added to the paper/documentation?

      The introduction makes the same point over multiple pages, and could probably be easily cut in half length-wise. This will force the authors to formulate more succinctly, and thereby more clearly. Hopefully, this would then eliminate wooly or incorrect statements like: "the beginning of each new project is fraught with uncertainty", "[The number of combinations] grows exponentially with the inclusion of each parameter" (it doesn't!), "would be an invaluable tool".

      Also, the first half of the Abstract needs some rewriting. It focuses first on grid optimisation, which is not what smartScope is about. SmartScope is about grid screening. Just say that and save some lines in the Abstract too.

      Lines 257-261 describe some setup in serialEM. Perhaps because I am not familiar with that software myself, but I had no clue what those lines meant. Perhaps some example setup files could be provided as supplementary information?

      For the DNA polymerase data set: mention in the Results section how long the entire data collection (or 4.3k images) took. Also, the sharpened map in the validation file has a very weird distribution of greyscale values. Its inclusion of volume with varying greyscale is basically a step function, indicating that this is more or less a binary density map. I suspect that this is a result of the DeepEMhancer procedure. But given that the scattering potential of proteins is not binary, I wonder how such a map can be justified. Also, the FSC curve shown in the paper does not mention any masks, but the reported resolution of 3.4A is higher than the unmasked resolution calculated by the PDB: 3.7A. Why is the DeepEMhancer software used here? Is it hiding a slightly suboptimal map? As map quality is not what this paper is about, perhaps it would suffice to show the original map alone?

    1. So they started studying what happens if you throw stuff at a D-brane, and this led to Maldacena’s recognizing this duality between gauge fields and strings. This entropy counting is neat, but the gauge/gravity duality is amazing, because it really says that gravity and string theory are not anything new; they’ve always been present in the framework of quantum field theory or gauge theory, if we simply knew how to read the code, and Maldacena told us how to read the code. This has many implications. One is it does resolve the information problem at least implicitly, because it shows that you can formulate the quantum mechanics of the black hole in terms of the gauge theory which is purely quantum mechanical — it satisfies the ordinary laws of quantum mechanics. It shows that Hawking was wrong about the breakdown of the laws of quantum mechanics. What does break down in some sense is locality. The fundamental degrees of freedom in the gauge theory are not local in space time.
      • MALDACENA
      • HAWKING - QM?
    1. Code enables engineers to create highly visible

      visibility is not acessibility. (via github). code is largely opaque and its understandabiliiity iis largely dependent on the discipline/habits of. the coder

    1. Author Response

      Reviewer 1

      Sadeh and Clopath analyze two mouse datasets from the Allen Brain Atlas and show that sensory representations can have apparent representational drift that is entirely due to behavioral modulation. The analysis serves as a caution against over-interpreting shifts in the neural code. The analysis of data is coupled with careful modeling work that shows that the behavioral state reliably shifts sensory representations independently of stimulus modulation (rather than acting as a gain factor), and further show that it is reproducibly shifted when the behavioral state is adequately controlled for. The methods presented point towards a more careful consideration and measurement of behavioral states during sensory recordings, and a re-analysis of previous findings. The findings held up for both standard drifting grating stimuli as well as natural movies.

      The fact that neurons may have different tuning depending on the behavioral state of the animal raises obvious questions about readout. The authors show that neurons with strong behavioral shifts should simply be ignored and that this can be achieved if the downstream decoder weights inputs with more stimulus information. While questions remain about why behavior shifts representations and how that could be more effectively utilized by downstream circuits, the results presented clearly show that sensory representations might not always be simply drifting over time, and will spark some careful analysis of past and future experimental results.

      Many thanks for a clear summary of the work and emphasizing the significance of the results.

      Reviewer 2

      Studies from recent years have shown that neuronal responses to the same stimuli or behavior can gradually change with time - a phenomenon known as representational drift. Other recent studies have shown that changes in behavior can also modulate neuronal responses to a given sensory stimulus. In this manuscript, Sadeh and Clopath analyzed publicly available data from the Allen Institute to examine the relationship between animal behavioral variability and changes in neuronal representations. The paper is timely and certainly has the potential to be of interest to neuroscientists working in different fields. However, there are currently several important issues with the analysis of the data and their interpretations that the authors should address. We believe that after these concerns are addressed, this study will be an important contribution to the field.

      We really appreciate the time and the effort the reviewer(s) have taken to evaluate our results and analysis in detail. Their comments are very relevant and critical to the improvement of the manuscript. We explain below how we addressed their various comments and concerns

      1. The manuscript raises a potential problem: while previous work suggested that the passage of time leads to gradual changes in neuronal responses, the causality structure is different: i.e., the passage of time leads to gradual changes in behavior, which in turn lead to gradual changes in neuronal responses. The authors conclude that "variable behavioral signal might be misinterpreted as representational drift". While this may be true, in its current form, the paper lacks critical analyses that would support such a claim. It is possible that both factors - time and behavior - have a unique contribution to changes in neuronal responses, or that only time elicits changes in neuronal responses (and behavior is just correlated with time). Thus, the authors should demonstrate that these changes cannot be explained solely by the passage of time and elucidate the unique contributions of behavior (and elapsed time) to changes in representations.

      This is a very important point and we addressed it with new analyses, by dedicating a new figure (Figure 1–figure supplement 5) and a new part of the Results section to it. The results of our new analyses show that strong representational drift mainly exists in those animals/sessions with large behavioral changes between the two blocks, and that in animals/sessions with small behavioral changes, such drift is minimal, despite the passage of time (see our responses below to Major comments for further details).

      1. There are also several issues with the analysis of the data and the presentation of the results. The most concerning of which is that the data shows a non-linear (and non-monotonic) relationship between behavioral changes and representational similarity. In many of the presented cases, the data points fall into two or more discrete clusters. This can lead to the false impression that there is a monotonic relationship between the two variables, even though there is no (or even opposite) relationship within each cluster. This is a crucial point since the clusters of data points most likely represent different blocks that were separated in time (or separation between within-block and acrossblock comparisons).

      This is an important concern. To address this, we analyzed the source of the non-monotonic relationship / opposite trend in the data and demonstrated the results in a new figure (Figure 4–figure supplement 2). Our results show that the non-monotonic relationship does not compromise the result of our previous analysis. Furthermore, it suggests that the non-monotonic / opposite trend is emerging as a result of more complex interactions between different aspects of behavior. We have also shown, in separate analyses, that the passage of time is not the main contributing factor to representational drift, rather large behavioral changes are correlated with strong drifts between the two blocks of presentation (Figure 1—figure supplement 5, and Figure 3—figure supplement 2).

      More generally, we did not intend to claim that the relationship with behavioral changes is linear or/and monotonic. We used linear analysis just to show the main trend of decrease in representational similarity with large behavioral changes. Any other analysis should assume some form of nonlinearity, but because the nonlinear relationships between behavior and activity were complex, it was not easy to assume such nonlinearity.

      We in fact tried to use two other ways of analysis, nonlinear correlations and generalized linear models (GLM), but there were issues hindering a proper use of each analysis. Nonlinear correlations assume a specific type of nonlinearity, but the nature of nonlinearity underlying the data is not clear (in fact, it looks to be different in different example non-monotonic trends in the data). We could not, therefore, assume a nonlinearity that best fitted all the data; we believe the nature of this nonlinearity, or how behavior modulates neuronal activity in a nonlinear manner, is in itself an interesting and open question for future investigation, but beyond the scope of this study. GLM did not provide useful results either, as the relationship between behavioral changes and neural activity/representational similarity was state-dependent and transitioning between nonlinear states, therefore hindering the usage of linear methods.

      We therefore opted for the simplest analysis which can show and quantify this dependence - emphasizing that further analyses are in fact needed to get to the bottom of the exact nonlinear relationship (for further details, see the responses below to Major comments).

      1. The authors also suggest that using measures of coding stability such as 'population-vector correlations' may be problematic for quantifying representational drift because it could be influenced by changes in the neuronal activity rates, which may be unrelated to the stimulus. We agree that it is important to carefully dissociate between the effects of behavior on changes in neuronal activity that are stimulus-dependent or independent, but we feel that the criticism raised by the authors ignores the findings of multiple previous papers, which (1) did not purely attribute the observed changes to the sensory component, and (2) did dissociate between stimulus-dependent changes (in the cells' tuning) and off-context/stimulus-independent changes (in the cells' activity rates).

      That’s a very valid point. As population vector correlations are used quite often in (experimental and theoretical) works on representational drift, we wanted to highlight the pitfalls of such a metric in dissociating between sensory-evoked and sensory-independent components. However, as the reviewers have mentioned, these two aspects have been separated and addressed independently in some of the past literature in the field. For instance, as we discussed in the Discussion, Deitch et al. (Current Biology, 2021) have calculated this for different metrics, including tuning curve correlations, which can potentially alleviate this problem:

      A recent analysis of similar datasets from the Allen Brain Observatory reported similar levels of representational drift within a day and over several days5. The study showed that tuning curve correlations between different repeats of the natural movies were much lower than population vector and ensemble rate correlations5; it would be interesting to see if, and to which extent, similarity of population vectors due to behavioural signal that we observed here may contribute to this difference.

      We tried to highlight these contributions better in the revised manuscript (see further on this below in our responses to Major comments).

      1. Another important issue relates to the interchangeable use of the terms 'representational drift' and 'representational similarity'. Representational similarity is a measure to identify changes in representations, and drift is one such change. This may confuse the reader and lead to the misconception that all changes in neuronal responses are representational drift.

      We thank the reviewer(s) for raising this point. We have clarified our use of the terms representational similarity and representational drift in the revised manuscript. Specifically, we have quantified representational drift index between the two blocks according to a previously used metric (RDI; Marks & Goard, 2021) in our new analysis (Figure 1–figure supplement 5).

      For the main part of the paper, however, we have decided to base our analysis on representational similarity (RS), and to evaluate the drop of RS with changes in behavior. Our reasoning for this is twofold. First, any measure of representational drift should ultimately be a function of the representational similarity. The measure we used above, for instance, is calculated as RD = (RS_ws - RS_bs)/(RS_ws + RS_bs) (Marks and Goddard, 2021), with RS_ws and RS_bs referring to the average representational similarity within a session or between different sessions. However, RS contains more information, especially with regard to fine-tuned changes - the above metric, for instance, averages all the changes within each block of presentation. By focusing on the basic function of representational similarity, we could capture both the gross changes between the blocks as well as more nuanced changes that can arise within them, especially with regard to behavioral changes. Another aspect that would have been lost by only using the usual metric of representational drift is the direction of change. In our analysis, we in fact found that the average RS increased within the second block of presentation, which might be contrary to the usual direction of drift. We found this unconventional change of RS interesting and informative too. We could highlight that, presenting the raw RS provided a better analysis strategy. Based on these reasons, we think representational similarity would be a better metric to base our analyses upon, although we have now calculated a conventional representational drift index for comparison too.

      Reviewer 3

      Although it is increasingly realized that cortical neural representations are inherently unstable, the meaning of such "drift" can be difficult or impossible to interpret without knowing how the representations are being read out and used by the nervous system (i.e. how it contributes to what the experimental animal is actually doing now or in the future). Previous studies of representational drift have either ignored or explicitly rejected the contribution of what the animal is doing, mostly due to a lack of high-dimensional behavioural data. Here the authors use perhaps the most extensive opensource and rigorous neural data available to take a more detailed look at how behaviour affects cortical neural representations as they change over repeated presentations of the same visual stimuli.

      The authors apply a variety of analyses to the same two datasets, all of which convincingly point to behavioural measures having a large impact on changing neural representations. They also pit models against each other to address how behavioural and stimulus signals combine to influence representations, whether independently or through behaviour influencing the gain of stimuli. One analysis uses subsets of neurons to decode the stimulus, and the independent model correctly predicts the subset to use for better decoding. However, one caveat may be that the nervous system does not need to decode the stimulus from the cortex independently of behaviour; if necessary, this could be done elsewhere in the nervous system with a parallel stream of visual information.

      Overall the authors' claims are well-supported and this study should lead to a re-assessment of the concept of "representational drift". Nonetheless, a weakness of all analyses presented here is that they are all based on data in head-fixed mice that were passively viewing visual stimuli, such that it is unclear what relevance the behaviour has. Furthermore, the behavioural measurements available in the opensource dataset (pupil movements and running speed) are still a very low dimensional representation of what the mice were actually doing (e.g. detailed kinematics of all body movements and autonomic outputs). Thus, although the authors here as well as other large-scale neural recording studies in the past decade or so make it clear that relatively basic measures of behaviour can dramatically affect cortical representations of the outside world, the extent to which any cortical coding might be considered purely sensory remains an important question. Moreover, it is possible that lowerdimensional signals are overly represented in visual areas, and that in other areas of the cortex (e.g. somatosensory for proprioception), the line between behaviour parameters and sensory processing is blurred.

      Many thanks for the clear and insightful summary of the results, significance and caveats of our analysis. We totally agree with this critical evaluation - and suggestions for future work.

  5. Jul 2022
    1. Company Name: Beefy THE Multichain Yield Optimizer Total Prize Pool For All Bounties: $5000 Bounty #1: Most interesting use of Beefy vaults in a project Beefy vaults are interest-bearing tokens and can be used as money legos. Create an exciting project that builds on top of Beefy. Bounty Prize Amount(s): 1st prize: 2,500 2nd prize: 1,500 3rd prize: 1,000 Requirements: Any working dApp which interacts with Beefy vaults. Resources: https://beefy.com/ https://docs.beefy.finance/ecosystem/products/vaults https://github.com/beefyfinance/beefy-contracts Judging Criteria: Innovation Originality Code quality
    2. Company Name: Āut Protocol Native, role-based membership & governance for DAOs. Total Prize Pool For All Bounties: $5,000 Bounty #1: Add a new DAO Standard Examples of DAO Standards are the Moloch contracts (you can see an example in our repo). Add and Integrate a new DAO standard in the Āut repo, so that our protocol can expand it. Choose your favorite DAO standard, build a MembershipChecker following the tutorial and write tests for it! There are two (2) prizes for this challenge, each of 1000 USD(C) - so potentially you can compete for both, as long as you provide two (2) different (and functional) solutions. Standards that we would like to see submitted (and we will prioritize) are: Colony DAOStack Aragon" Bounty Prize Amount(s): 2 equal prizes of 1000 USDC per successful solution Requirements: A well described pull request to the aut protocol repository. One must be able to integrate an existing DAO of the chosen standard and the membership checker should work accordingly. Well written tests for your work. The contract must work. Resources: Tutorial: https://docs.aut.id/v2/protocol/add-a-new-standard/add-new-dao-type Repo: https://github.com/Aut-Protocol/contracts/ General Docs: https://docs.aut.id Judging Criteria: Good code quality and functional contract Bounty #2: Use Āut for your DAO + DApp This goes to projects using one or more of āut products for the DAO + DApp. We're mainly interested in Creative DApps (i.e.: Art, Music, Poetry, ...) or Public Goods DApps (i.e.: ReFi, NGOs, governance, ...). Functional uses of Āut we will consider are: use āutID for Social Profiles, community analytics or role-based membership use dĀut decentralized authentication system for your DApp/Platform's login use Āut Dashboard + Āut bot for role-based community activities such as gatherings (calls) and voting routines (polls). Bounty Prize Amount(s): 1st prize: 1500 2nd prize: 1000 3rd prize: 500 Requirements: join Āut Hacker DAO & claim your ĀutID expand your new DAO with Āut, and give it the name of your project use at least one of the products in our product suite (āutID, dĀut, Dashboard) functionally in your DApp the integration needs to be functional and well described Resources: Join HackerDAO: https://autprotocol.notion.site/Hackers-Onboarding-7b9ff1613a2946d1a65810c7d693149e General Docs: https://docs.aut.id Āut Expansion: https://docs.aut.id/v2/product-suite/aut-exp. dĀut: https://docs.aut.id/v2/product-suite/daut Āut Dashboard: https://docs.aut.id/v2/product-suite/autboard ĀutID: https://docs.aut.id/v2/product-suite/my-autid Judging Criteria: Creativity and innovation of the solution: how unique is it? Technical value of the solution: how hard is it? Feasibility: how viable and scalable is it? Impact: how much value does it bring to your users/category/stakeholders? Completion: how refined and functional is the final delivery?
    1. Privacy <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-57GHMWX" height="0" width="0" style="display:none;visibility:hidden"></iframe> Skip to content window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("nav-ad"); }); TechRepublic Search Close Search Top Products Lists Developer 5G Security Cloud Artificial Intelligence Tech & Work Mobility Big Data Innovation Cheat Sheets TechRepublic Academy CES Toggle TechRepublic mobile menu More TechRepublic Premium Top Products Lists Developer 5G Security Cloud Artificial Intelligence Tech & Work Mobility Big Data Innovation Cheat Sheets TechRepublic Academy CES See All Topics Sponsored Newsletters Forums Resource Library TechRepublic Premium Join / Sign In Account Information TechRepublic close modal Join or sign in Register for your free TechRepublic membership or if you are already a member, sign in using your preferred method below. Use Your Email Use FacebookUse Linkedin Join or sign in We recently updated our Terms and Conditions for TechRepublic Premium. By clicking continue, you agree to these updated terms. Welcome back! Invalid email/username and password combination supplied. Reset password An email has been sent to you with instructions on how to reset your password. Back to TechRepublic Welcome to TechRepublic! Country United States Afghanistan Aland Islands Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua And Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bosnia and Herzegovina Botswana Bouvet Island Brazil British Indian Ocean Territory Brunei Darussalam Bulgaria Burkina Faso Burundi Cambodia Cameroon Canada Cape Verde Caribbean Netherlands Cayman Islands Central African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Congo, DROC Cook Islands Costa Rica Cote D'ivoire Croatia Cuba Curazao Cyprus Czech Republic Denmark Djibouti Dominica Dominican Republic East Timor Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Ethiopia Falkland Islands (Malvinas) Faroe Islands Fiji Finland France French Guiana French Polynesia French Southern Territories Gabon Gambia Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guernsey Guinea Guinea-Bissau Guyana Haiti Heard And Mc Donald Islands Holy See (Vatican City State) Honduras Hong Kong Hungary Iceland India Indonesia Iran (Islamic Republic Of) Iraq Ireland Isle of Man Israel Italy Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Kuwait Korea, Republic Of Kosovo Kyrgyzstan Lao People's Democratic Republic Latvia Korea, Democratic People's Republic of Lebanon Lesotho Liberia Libyan Arab Jamahiriya Liechtenstein Lithuania Luxembourg Macau Macedonia Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Micronesia, Federated States of Moldova, Republic Of Monaco Mongolia Montenegro Montserrat Morocco Mozambique Myanmar Namibia Nauru Nepal Netherlands Netherlands Antilles New Caledonia New Zealand Nicaragua Niger Nigeria Niue Norfolk Island Northern Mariana Islands Norway Oman Pakistan Palau Palestinian Territory, Occupied Panama Papua New Guinea Paraguay Peru Philippines Pitcairn Poland Portugal Puerto Rico Qatar Reunion Romania Russia Rwanda S. Georgia And S. Sandwich Isles Saint Barthelemy Saint Kitts And Nevis Saint Lucia Saint Martin Saint Vincent And The Grenadines Samoa San Marino Sao Tome And Principe Saudi Arabia Senegal Serbia Serbia and Montenegro Seychelles Sierra Leone Singapore Sint Maarten Slovakia Slovenia Solomon Islands Somalia South Africa South Sudan Spain Sri Lanka St. Helena St. Pierre And Miquelon Sudan Suriname Svalbard And Jan Mayen Islands Swaziland Sweden Switzerland Syrian Arab Republic Taiwan Tajikistan Tanzania, United Republic Of Thailand Togo Tokelau Tonga Trinidad And Tobago Tunisia Turkey Turkmenistan Turks And Caicos Islands Tuvalu U.S. Minor Outlying Islands Uganda Ukraine United Arab Emirates United Kingdom Uruguay Uzbekistan Vanuatu Venezuela Viet Nam Virgin Islands (British) Virgin Islands (U.S.) Wallis And Futuna Islands Western Sahara Yemen Yugoslavia Zambia Zimbabwe By registering, you agree to the Terms of Use and acknowledge the data practices outlined in the Privacy Policy. You will also receive a complimentary subscription to TechRepublic's News and Special Offers newsletter and the Top Story of the Day newsletter. You may unsubscribe from these newsletters at any time. All fields are required. Username must be unique. Password must be a minimum of 6 characters and have any 3 of the 4 items: a number (0 through 9), a special character (such as !, $, #, %), an uppercase character (A through Z) or a lowercase (a through z) character (no spaces). Loading Account Information TechRepublic close modal Image: Chaosamran_Studio/Adobe Stock dataLayer.push({'post_author': "Franklin Okeke"}); window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("leader-plus-top"); }); The 12 best IDEs for programming Account Information TechRepublic close modal Share with Your Friends The 12 best IDEs for programming Check out this article I found on TechRepublic. Your email has been sent by Franklin Okeke in Developer on July 7, 2022, 7:48 AM PDT The 12 best IDEs for programming IDEs are essential tools for software development. Here is a list of the top IDEs for programming in 2022. Image: Chaosamran_Studio/Adobe Stock Software developers have battled with text editors and command-line tools that offered little or nothing in the automation, debugging and speedy execution of codes. However, the software development landscape is rapidly changing, and this includes programming tools. To accommodate the evolution in software development, software engineers came up with more sophisticated tools known as integrated development environments. To keep up with the fast pace of emerging technologies, there has been an increasing demand for the best IDEs among software development companies. We will explore the 12 best IDEs that offer valuable solutions to programmers in 2022. Jump to: What is an IDE? The importance of IDEs in software programming Standard features of an IDE Classifications of IDEs Best IDEs for programmers Factors to consider when picking an IDE What is an IDE? IDEs are software development tools developers use to simplify their programming and design experience. IDEs come with an integrated user interface that combines everything a developer needs to write codes conveniently. The best IDEs are built with features that allow developers to write and edit code with a code editor, debug code with a debugger, compile code with a code compiler and automate some software development tasks. SEE: Hiring kit: Back-end Developer (TechRepublic Premium) The best IDEs come with class browsers to examine and reference properties, object browsers to investigate objects and class hierarchy diagrams to see object-oriented programming code. IDEs are designed to increase software developer productivity by incorporating close-knit components that create a perfect playground where they can write, test and do whatever they want with their code. Why are IDEs important in software programming? IDEs provide a lot of support to software developers, which was not available in the old text editors. The best IDEs around do not need to be manually configured and integrated as part of the setup process. Instead, they enable developers to begin developing new apps on the go. Must-read developer coverage The 12 best IDEs for programming Best DevOps Tools & Solutions 2022 CI/CD platforms: How to choose the right system for your business Hiring kit: Python developer Additionally, since every feature a programmer needs is available in the same development environment, developers don’t have to spend hours learning how to use each separately. This can be extremely helpful when bringing on new developers, who may rely on an IDE to familiarize themselves with a team’s standard tools and procedures. In reality, most IDE capabilities, such as intelligent code completion and automatic code creation, are designed to save time by eliminating the need to write out entire character sequences. Other standard IDE features are designed to facilitate workflow organization and problem-solving for developers. IDEs parse code as it is written, allowing for real-time detection of human-related errors. As such, developers can carry out operations without switching between programs because the needed utilities are represented by a single graphical user interface. Most IDEs also have a syntax highlighting feature, which uses visual clues to distinguish between grammar in the text editor. Class and object browsers, as well as class hierarchy diagrams for certain languages, are additional features that some IDEs offer. All these features help the modern programmer to turn out software development projects fast. For a programming project requiring software-specific features, it’s possible to manually integrate these features or utilities with Vim or Emacs. The benefit here is that software developers can easily have their custom-made IDEs. However, for enterprise uses, the above process might take time and impact standardization negatively. Most enterprises encourage their development teams to go for pre-configured IDEs that suit their job demands. Other benefits of IDEs An IDE serves as a centralized environment for the needs of most software developers, such as version control systems, Platform-as-a-Service and debugging tools. An IDE improves workflow due to its fast code completion capabilities. An IDE automates error-checking on the fly to ensure top-quality code. An IDE has refactoring capabilities that allow programmers to make comprehensive and renaming changes. An IDE ensure a seamless development cycle. An IDE facilitates developer efficiency and satisfaction. Standard features of an IDE Text editor Almost all IDEs will offer a text editor made specifically for writing and modifying source code. While some tools may allow users to drag and drop front-end elements visually, the majority offers a straightforward user interface that emphasizes language-specific syntax. Debugger Debugging tools help developers identify and correct source code mistakes. Before the application is published, programmers and software engineers can test the various code parts and find issues. Compiler The compiler feature in IDE assists programmers in translating programming languages into machine-readable languages such as binary code. The compiler also helps to ensure the accuracy of these machine languages by analyzing and optimizing them. Code completion This feature helps developers to intelligently and automatically complete common code components. This process helps developers to save time and reduces bugs that come from typos. Programming language support Although some IDEs are pre-configured to support one programming language, others offer multi-programming language support. Most times, in choosing an IDE, users have to figure out which programming languages they will be coding in and pick an IDE accordingly. Integrations and plugins Integration capability is one feature that makes an IDE stand out. IDEs support the integration of other development tools through plugins to enhance productivity. Classifications of IDEs IDEs come in different types and according to the programming languages they support. While some support one language, others can support more than one. Multi-language IDE Multi-language IDEs are IDE types that support multiple programming languages. This IDE type is best suited for beginner programmers still at the exploration stage. An example of this type of IDE is the Visual Studio IDE. It’s popular for its incredible supporting features. For example, users can easily code in a new programming language by adding the language plugin. Mobile development IDE As the market for mobile app development grows, numerous programming tools are becoming available to help software developers build efficient mobile apps. Mobile development IDEs for the Android and iOS platforms include Android Studio and Xcode. Web/cloud-based IDE If an enterprise supports a cloud-based development environment, it may need to adopt a cloud-based IDE. One of the advantages of using this type of IDE is that it can run heavy projects without occupying any computational resources in a local system. Again, this type of IDE is always platform-independent, making it easy to connect to many cloud development providers. Specific-language IDE This IDE type is a typical opposite of the multiple-language IDE. They are specifically built to support developers who work on only one programming language. Some of these IDEs include Jcreator for Java, Idle for Python and CodeLite for C++. Best IDEs for programmers in 2022 Visual Studio Microsoft Visual Studios The Visual Studio IDE is a Microsoft-powered integrated development interface developed to help software developers with web developments. The IDE uses artificial intelligence features to learn from the edit programmer’s make to their codes, making it easy for it to complete lines of code automatically. One of the top features many developers have come to like about Visual Studio is that it aids collaborative development between teams in live development. This feature is very crucial, especially during the debugging process. The IDE also allows users to share servers, comments and terminals. Visual Studio has the capability to support mobile app, web and game development. It also supports Python language, Node.js, ASP.NET and Azure. With Visual Studio, developers can easily create a development environment in the cloud. SEE: Hiring kit: Python developer (TechRepublic Premium) With its multi-language support, Visual Studio has features that integrate flawlessly with Django and Flask frameworks. It can be used as an IDE for Python on the Mac, Windows and Linux operating systems. IntelliJ IDEA IntelliJ IDEA IntelliJ Idea has been around for years and has served as one of the best IDEs for Java programming. The IntelliJ Idea UI is designed in a sleek way that makes coding appealing to many Java developers. With this IDE, code can get indexed, providing relevant suggestions to help complete code lines. It also takes this suggestive coding further by automating several tasks that may be repetitive. Apart from supporting web, enterprise, and mobile Java programming, it is also a good option for JavaScript, SQL and JPQL programming Xcode Xcode Xcode might be the best IDE tool for Apple product developers. The tool supports iOS app development with its numerous iOS tools. The IDE supports programming languages such as Swift, C++ and Object-C. With XCode, developers can easily manage their software development workflow with quality code suggestions from the interface. Android Studio Android Studio The Android Studio is one of the best IDEs for Android app development. This IDE supports Kotlin and Java programming languages. Some important features users can get from the Android Studio are push alerts, camera integrations and other mobile technology features. Developers can also create variants and different APKs with the help of this flexible IDE, which also offers extended template support for Google Services. AWS Cloud9 IDE AWS Cloud9 The AWS Cloud9 IDE is packed with a terminal, a debugger and a code editor, and it supports popular programming languages such as Python and PHP. With Cloud9 IDE, software developers can work on their projects from almost anywhere in the globe as long as they have a computer that is connected to the internet, because it is cloud-based. Developers may create serverless applications using Cloud9 and easily collaborate with different teams in different development environments. Eclipse Eclipse Eclipse is one of the most popular IDEs. It’s a cross-platform tool with a powerful user interface that supports drag and drop. The IDE is also packed with some important features such as static analysis tools, debugging and profiling capabilities. Eclipse is enterprise development-friendly and it allows developers to work on scalable and open-source software development easily. Although Eclipse is best associated with Java, it also supports multiple programming languages. In addition, users can add their preferred plugins to the IDE to support software development projects. Zend Studio Zend Studio Zend Studio is a leading PHP IDE designed to support PHP developers in both web and mobile development. The tool features advanced debugging capabilities and a code editor with a large community to support its users. There is every possibility that PHP developers will cling to the Zend IDE for a long time as it has consistently proven to be a reliable option for server-side programming. Furthermore, programmers can take advantage of Zend Studio’s plugin integrations to maximize PHP applications’ deployment on any server. PhpStorm PhpStorm PhpStorm is another choice to consider if users use PHP for web development. Although it focuses on the PHP programming language, front-end languages like HTML 5, CSS, Sass, JavaScript and others are also supported. It also supports popular website-building tools, including WordPress, Drupal and Laravek. It offers simple navigation, code completion, testing, debugging and refactoring capabilities. PhpStorm comes with built-in developer tools that help users perform routine tasks directly from the IDE. Some of these built-in tools serve as a version control system, remote deployment, composer and Docker. Arduino IDE Arduino Arduino is another top open source, cross-platform IDE that helps developers to write clean code with an option to share with other developers. This IDE offers both online and local code editing environments. Developers who want to carry out sophisticated tasks without putting a strain on computer resources love it for how simple it is to utilize. The Arduino IDE includes current support for the newest Arduino boards. Additionally, it offers a more contemporary editor and a dynamic UI with autocompletion, code navigation and even live debugger features. NetBeans NetBeans You can’t have a list of the best IDE for web development without including NetBeans. It’s among one of the most popular options for the best IDE because it’s a no-nonsense software for Java, JavaScript, PHP, HTML 5, CSS and more. It also helps users create bug-free codes by highlighting code syntactically and semantically. It also has a lot of powerful refactoring tools while being open source. RubyMine RubyMine Although RubyMine primarily supports the Ruby, it also works well with JavaScript, CSS, Less, Sass and other programming languages. The IDE has some crucial automation features such as code completion, syntax and error-highlighting, an advanced search option for any class and symbol. WebStorm WebStorm The WebStorm IDE is excellent for programming in JavaScript. The IDE features live error detection, code autocompletion, a debugger and unit testing. It also comes with some great integrations to aid web development. Some of these integrations are GitHub, Git and Mercurial. Factors to consider when picking an IDE Programming language support An IDE should be able to support the programming language used in users’ software development projects. Customizable text editors Some IDEs offer the ability to edit the graphical user interface. Check if the preferred IDE has this feature, because it can increase productivity. Unit testing Check if the IDE can add mock objects to some sections of the code. This feature helps test code straight away without completing all the sections. Source code library Users may also wish to consider if the IDE has resources such as scripts and source code. Error diagnostics and reports For new programmers, sometimes it’s good to have an IDE that can automatically detect errors in code. Have this factor in mind if users will need this feature. Code completion Some IDEs are designed to intelligently complete lines of code, especially when it comes to tag closing. If developers want to save some coding time from tag closing, check for IDEs that offer this option. Integrations and plugins Do not forget to check the integration features before making a choice. Code search Some IDEs offer the code search option to help search for elements quickly in code. Look for IDEs that support this productivity feature. Hierarchy diagrams If users often work on larger projects with numerous files and scripts that all interact in a certain way, look for IDEs that can organize and present these scripts in a hierarchy. This feature can help programmers observe the order of file execution and the relationships between different files and scripts by displaying a hierarchy diagram. Model-driven development Some IDEs help turn models into code. If users love creating models for the IDE, consider this factor before choosing an IDE. Programming language courses No matter what language you write or want to learn, TechRepublic Academy has a number of different programming courses to help you level-up your skills. Start with these: Python JavaScript Ruby on Rails All programming languages courses Developer Essentials Newsletter From the hottest programming languages to the jobs with the highest salaries, get the developer news and tips you need to know. Delivered Thursdays Sign up today Franklin Okeke Published:  July 7, 2022, 7:48 AM PDT Modified:  July 29, 2022, 10:40 PM PDT See more Developer Also See How to become a developer: A cheat sheet (TechRepublic) Python programming language: This training will jump-start your coding career (TechRepublic Academy) 8 must-have tools for developers on Linux (TechRepublic Premium) Programming languages and developer career resources (TechRepublic on Flipboard) window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("mpu-plus-top"); }); (function() { if(isTRgamMobile && !isTRgamTablet && gam_is_topic) { var mpuPlusTopInsert = document.querySelectorAll(".list-featured .related-resources")[0]; var mpuPlusTopContent = document.getElementById('mpu-plus-top'); mpuPlusTopInsert.parentNode.insertBefore(mpuPlusTopContent, mpuPlusTopInsert); } })(); WHITE PAPERS, WEBCASTS, AND DOWNLOADS EaseUS Data Recovery Wizard Downloads from EaseUS Software Give It A Try! EaseUS Todo PCTrans Downloads from EaseUS Software Get It Today EaseUS Disk Copy for Disk Upgrade Downloads from EaseUS Software Download Now EaseUS RecExperts Downloads from EaseUS Software Download Now EaseUS Todo Backup Downloads from EaseUS Software Download Now window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("native-rr-article"); }); window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("mpu-middle"); }); (function() { if(isTRgamMobile && !isTRgamTablet && gam_is_topic) { var mpuMiddleInsert = document.querySelectorAll(".list-featured .related-resources")[1]; var mpuMiddleContent = document.getElementById('mpu-middle'); mpuMiddleInsert.parentNode.insertBefore(mpuMiddleContent, mpuMiddleInsert); } })(); window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("mpu-bottom"); }); Account Information TechRepublic close modal Share with Your Friends The 12 best IDEs for programming Check out this article I found on TechRepublic. Your email has been sent Share: The 12 best IDEs for programming By Franklin Okeke Franklin Okeke is a freelance content writer with a strong focus on cybersecurity, search engine optimization, and software development content. Account Information TechRepublic close modal Contact Franklin Okeke Your message has been sent | See all of Franklin's content window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("native-boap"); }); var boapAfterContent = document.querySelector(".article .categories"); var boapContent = document.getElementById('native-boap'); boapAfterContent.parentNode.insertBefore(boapContent, boapAfterContent); boapContent.style.height = 'auto'; boapContent.style.width = '100%'; Developer Software Top Products Editor's Picks Image: Rawpixel/Adobe Stock TechRepublic Premium TechRepublic Premium editorial calendar: IT policies, checklists, toolkits, and research for download TechRepublic Premium content helps you solve your toughest IT issues and jump-start your career or next project. TechRepublic Staff Published:  May 30, 2022, 9:30 AM PDT Modified:  May 31, 2022, 5:32 AM PDT Read More See more TechRepublic Premium Image: Jacob Lund/Adobe Stock Innovation Best tech products and most innovative AI/ML companies of 2022 TechRepublic contributing writers ranked the best tech in multiple categories, including VPNs, password managers, and headsets, as well as AI/ML companies. Connor R. Smith Published:  July 18, 2022, 7:01 AM PDT Modified:  July 18, 2022, 10:33 AM PDT Read More See more Innovation Image: Olga/Adobe Stock Developer Meta launches entry-level developer courses through Coursera Meta's new front-end, back-end, mobile and database development courses prepare entry-level professionals for development careers in less than eight months. Brenna Miles Published:  July 19, 2022, 7:48 AM PDT Modified:  July 21, 2022, 7:48 AM PDT Read More See more Developer Image: Nuthawut/Adobe Stock Software Best project management software and tools 2022 With so many project management software options to choose from, it can seem daunting to find the right one for your projects or company. We’ve narrowed them down to these nine. Sam Ingalls Published:  July 19, 2022, 12:25 PM PDT Modified:  July 29, 2022, 1:58 PM PDT Read More See more Software Apple announced iOS 16 on June 6, 2022 during the WWDC keynote. Image: Apple Mobility iOS 16 cheat sheet: Complete guide for 2022 Learn about the new features available with iOS 16, and how to download and install the latest version of Apple’s mobile operating system. Cory Bohon Published:  July 14, 2022, 7:00 AM PDT Modified:  July 29, 2022, 7:37 AM PDT Read More See more Mobility Image: Chaosamran_Studio/Adobe Stock Developer The 12 best IDEs for programming IDEs are essential tools for software development. Here is a list of the top IDEs for programming in 2022. Franklin Okeke Published:  July 7, 2022, 7:48 AM PDT Modified:  July 29, 2022, 10:40 PM PDT Read More See more Developer window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("leader-bottom"); }); TechRepublic Premium TechRepublic Premium Industrial Internet of Things: Software comparison tool IIoT software assists manufacturers and other industrial operations with configuring, managing and monitoring connected devices. A good IoT solution requires capabilities ranging from designing and delivering connected products to collecting and analyzing system data once in the field. Each IIoT use case has its own diverse set of requirements, but there are key capabilities and ... Downloads Published:  May 26, 2022, 5:00 PM PDT Modified:  May 28, 2022, 8:00 AM PDT Read More See more TechRepublic Premium TechRepublic Premium How to recruit and hire an Operations Research Analyst Recruiting an Operations Research Analyst with the right combination of technical expertise and experience will require a comprehensive screening process. This Hiring Kit provides an adjustable framework your business can use to find, recruit and ultimately hire the right person for the job.This hiring kit from TechRepublic Premium includes a job description, sample interview questions ... Downloads Published:  May 19, 2022, 5:00 PM PDT Modified:  May 21, 2022, 12:00 PM PDT Read More See more TechRepublic Premium TechRepublic Premium Quick glossary: Industrial Internet of Things The digital transformation required by implementing the industrial Internet of Things (IIoT) is a radical change from business as usual. This quick glossary of 30 terms and concepts relating to IIoT will help you get a handle on what IIoT is and what it can do for your business.. From the glossary’s introduction: While the ... Downloads Published:  May 19, 2022, 5:00 PM PDT Modified:  May 21, 2022, 12:00 PM PDT Read More See more TechRepublic Premium TechRepublic Premium Software Procurement Policy Procuring software packages for an organization is a complicated process that involves more than just technological knowledge. There are financial and support aspects to consider, proof of concepts to evaluate and vendor negotiations to handle. Navigating through the details of an RFP alone can be challenging, so use TechRepublic Premium’s Software Procurement Policy to establish ... Published:  April 14, 2022, 5:00 PM PDT Modified:  April 16, 2022, 1:00 PM PDT Read More See more TechRepublic Premium Services About Us Newsletters RSS Feeds Site Map Site Help & Feedback FAQ Advertise Do Not Sell My Information Explore Downloads TechRepublic Forums Meet the Team TechRepublic Academy TechRepublic Premium Resource Library Photos Videos TechRepublic TechRepublic on Twitter TechRepublic on Facebook TechRepublic on LinkedIn TechRepublic on Flipboard © 2022 TechnologyAdvice. All rights reserved. Privacy Policy Terms of Use Property of TechnologyAdvice var REPORT_POST = {"ajax_url":"https:\/\/www.techrepublic.com\/wp-admin\/admin-ajax.php","nonce":"ac0f8f85a3","post_id":"3981951"}; var medusa_ajax = {"url":"https:\/\/www.techrepublic.com\/wp-admin\/admin-ajax.php"}; var load_more_posts = {"ajax_url":"https:\/\/www.techrepublic.com\/wp-admin\/admin-ajax.php","nonce":"e7122233fc"}; var share_email = {"ajax_url":"https:\/\/www.techrepublic.com\/wp-admin\/admin-ajax.php","nonce":"0c76aa4155"}; var email_author = {"ajax_url":"https:\/\/www.techrepublic.com\/wp-admin\/admin-ajax.php","nonce":"f085617501"}; var show_more_forum_posts = {"ajax_url":"https:\/\/www.techrepublic.com\/wp-admin\/admin-ajax.php","nonce":"82a930466d"}; var social_registration = {"ajax_url":"https:\/\/www.techrepublic.com\/wp-admin\/admin-ajax.php","nonce":"9c2163d8c6","site_url":"https:\/\/www.techrepublic.com"}; (function (undefined) {var _localizedStrings={"redirect_overlay_title":"Hold On","redirect_overlay_text":"You are being redirected to another page,<br>it may take a few seconds."};var _targetWindow="prefer-popup";var _redirectOverlay="overlay-with-spinner-and-message"; window.NSLPopup = function (url, title, w, h) { var userAgent = navigator.userAgent, mobile = function () { return /\b(iPhone|iP[ao]d)/.test(userAgent) || /\b(iP[ao]d)/.test(userAgent) || /Android/i.test(userAgent) || /Mobile/i.test(userAgent); }, screenX = window.screenX !== undefined ? window.screenX : window.screenLeft, screenY = window.screenY !== undefined ? window.screenY : window.screenTop, outerWidth = window.outerWidth !== undefined ? window.outerWidth : document.documentElement.clientWidth, outerHeight = window.outerHeight !== undefined ? window.outerHeight : document.documentElement.clientHeight - 22, targetWidth = mobile() ? null : w, targetHeight = mobile() ? null : h, V = screenX < 0 ? window.screen.width + screenX : screenX, left = parseInt(V + (outerWidth - targetWidth) / 2, 10), right = parseInt(screenY + (outerHeight - targetHeight) / 2.5, 10), features = []; if (targetWidth !== null) { features.push('width=' + targetWidth); } if (targetHeight !== null) { features.push('height=' + targetHeight); } features.push('left=' + left); features.push('top=' + right); features.push('scrollbars=1'); var newWindow = window.open(url, title, features.join(',')); if (window.focus) { newWindow.focus(); } return newWindow; }; var isWebView = null; function checkWebView() { if (isWebView === null) { function _detectOS(ua) { if (/Android/.test(ua)) { return "Android"; } else if (/iPhone|iPad|iPod/.test(ua)) { return "iOS"; } else if (/Windows/.test(ua)) { return "Windows"; } else if (/Mac OS X/.test(ua)) { return "Mac"; } else if (/CrOS/.test(ua)) { return "Chrome OS"; } else if (/Firefox/.test(ua)) { return "Firefox OS"; } return ""; } function _detectBrowser(ua) { var android = /Android/.test(ua); if (/Opera Mini/.test(ua) || / OPR/.test(ua) || / OPT/.test(ua)) { return "Opera"; } else if (/CriOS/.test(ua)) { return "Chrome for iOS"; } else if (/Edge/.test(ua)) { return "Edge"; } else if (android && /Silk\//.test(ua)) { return "Silk"; } else if (/Chrome/.test(ua)) { return "Chrome"; } else if (/Firefox/.test(ua)) { return "Firefox"; } else if (android) { return "AOSP"; } else if (/MSIE|Trident/.test(ua)) { return "IE"; } else if (/Safari\//.test(ua)) { return "Safari"; } else if (/AppleWebKit/.test(ua)) { return "WebKit"; } return ""; } function _detectBrowserVersion(ua, browser) { if (browser === "Opera") { return /Opera Mini/.test(ua) ? _getVersion(ua, "Opera Mini/") : / OPR/.test(ua) ? _getVersion(ua, " OPR/") : _getVersion(ua, " OPT/"); } else if (browser === "Chrome for iOS") { return _getVersion(ua, "CriOS/"); } else if (browser === "Edge") { return _getVersion(ua, "Edge/"); } else if (browser === "Chrome") { return _getVersion(ua, "Chrome/"); } else if (browser === "Firefox") { return _getVersion(ua, "Firefox/"); } else if (browser === "Silk") { return _getVersion(ua, "Silk/"); } else if (browser === "AOSP") { return _getVersion(ua, "Version/"); } else if (browser === "IE") { return /IEMobile/.test(ua) ? _getVersion(ua, "IEMobile/") : /MSIE/.test(ua) ? _getVersion(ua, "MSIE ") : _getVersion(ua, "rv:"); } else if (browser === "Safari") { return _getVersion(ua, "Version/"); } else if (browser === "WebKit") { return _getVersion(ua, "WebKit/"); } return "0.0.0"; } function _getVersion(ua, token) { try { return _normalizeSemverString(ua.split(token)[1].trim().split(/[^\w\.]/)[0]); } catch (o_O) { } return "0.0.0"; } function _normalizeSemverString(version) { var ary = version.split(/[\._]/); return (parseInt(ary[0], 10) || 0) + "." + (parseInt(ary[1], 10) || 0) + "." + (parseInt(ary[2], 10) || 0); } function _isWebView(ua, os, browser, version, options) { switch (os + browser) { case "iOSSafari": return false; case "iOSWebKit": return _isWebView_iOS(options); case "AndroidAOSP": return false; case "AndroidChrome": return parseFloat(version) >= 42 ? /; wv/.test(ua) : /\d{2}\.0\.0/.test(version) ? true : _isWebView_Android(options); } return false; } function _isWebView_iOS(options) { var document = (window["document"] || {}); if ("WEB_VIEW" in options) { return options["WEB_VIEW"]; } return !("fullscreenEnabled" in document || "webkitFullscreenEnabled" in document || false); } function _isWebView_Android(options) { if ("WEB_VIEW" in options) { return options["WEB_VIEW"]; } return !("requestFileSystem" in window || "webkitRequestFileSystem" in window || false); } var options = {}; var nav = window.navigator || {}; var ua = nav.userAgent || ""; var os = _detectOS(ua); var browser = _detectBrowser(ua); var browserVersion = _detectBrowserVersion(ua, browser); isWebView = _isWebView(ua, os, browser, browserVersion, options); } return isWebView; } function isAllowedWebViewForUserAgent(provider) { var googleAllowedWebViews = [ 'Instagram', 'FBAV', 'FBAN', 'Line', ], facebookAllowedWebViews = [ 'Instagram', 'FBAV', 'FBAN' ], whitelist = []; switch (provider) { case 'facebook': whitelist = facebookAllowedWebViews; break; case 'google': whitelist = googleAllowedWebViews; break; } var nav = window.navigator || {}; var ua = nav.userAgent || ""; if (whitelist.length && ua.match(new RegExp(whitelist.join('|')))) { return true; } return false; } window._nslDOMReady(function () { window.nslRedirect = function (url) { if (_redirectOverlay) { var overlay = document.createElement('div'); overlay.id = "nsl-redirect-overlay"; var overlayHTML = '', overlayContainer = "<div id='nsl-redirect-overlay-container'>", overlayContainerClose = "</div>", overlaySpinner = "<div id='nsl-redirect-overlay-spinner'></div>", overlayTitle = "<p id='nsl-redirect-overlay-title'>" + _localizedStrings.redirect_overlay_title + "</p>", overlayText = "<p id='nsl-redirect-overlay-text'>" + _localizedStrings.redirect_overlay_text + "</p>"; switch (_redirectOverlay) { case "overlay-only": break; case "overlay-with-spinner": overlayHTML = overlayContainer + overlaySpinner + overlayContainerClose; break; default: overlayHTML = overlayContainer + overlaySpinner + overlayTitle + overlayText + overlayContainerClose; break; } overlay.insertAdjacentHTML("afterbegin", overlayHTML); document.body.appendChild(overlay); } window.location = url; }; var targetWindow = _targetWindow || 'prefer-popup', lastPopup = false; var buttonLinks = document.querySelectorAll(' a[data-plugin="nsl"][data-action="connect"], a[data-plugin="nsl"][data-action="link"]'); buttonLinks.forEach(function (buttonLink) { buttonLink.addEventListener('click', function (e) { if (lastPopup && !lastPopup.closed) { e.preventDefault(); lastPopup.focus(); } else { var href = this.href, success = false; if (href.indexOf('?') !== -1) { href += '&'; } else { href += '?'; } var redirectTo = this.dataset.redirect; if (redirectTo === 'current') { href += 'redirect=' + encodeURIComponent(window.location.href) + '&'; } else if (redirectTo && redirectTo !== '') { href += 'redirect=' + encodeURIComponent(redirectTo) + '&'; } if (targetWindow !== 'prefer-same-window' && checkWebView()) { targetWindow = 'prefer-same-window'; } if (targetWindow === 'prefer-popup') { lastPopup = NSLPopup(href + 'display=popup', 'nsl-social-connect', this.dataset.popupwidth, this.dataset.popupheight); if (lastPopup) { success = true; e.preventDefault(); } } else if (targetWindow === 'prefer-new-tab') { var newTab = window.open(href + 'display=popup', '_blank'); if (newTab) { if (window.focus) { newTab.focus(); } success = true; e.preventDefault(); } } if (!success) { window.location = href; e.preventDefault(); } } }); }); var googleLoginButtons = document.querySelectorAll(' a[data-plugin="nsl"][data-provider="google"]'); if (googleLoginButtons.length && checkWebView() && !isAllowedWebViewForUserAgent('google')) { googleLoginButtons.forEach(function (googleLoginButton) { googleLoginButton.remove(); }); } var facebookLoginButtons = document.querySelectorAll(' a[data-plugin="nsl"][data-provider="facebook"]'); if (facebookLoginButtons.length && checkWebView() && /Android/.test(window.navigator.userAgent) && !isAllowedWebViewForUserAgent('facebook')) { facebookLoginButtons.forEach(function (facebookLoginButton) { facebookLoginButton.remove(); }); } });})();window.advads_admin_bar_items = [{"title":"Datalayer &amp; GAM Core","type":"ad"},{"title":"Before Closing Head Tag","type":"placement"},{"title":"TR | Master Ad Slot Definitions","type":"ad"},{"title":"Master Ad Slot Definitions Placement","type":"placement"},{"title":"TR | Skybox - Render","type":"ad"},{"title":"TR | Leader Plus Top - Render","type":"ad"},{"title":"TR | MPU Plus Top - Render","type":"ad"},{"title":"TR | Native Right Rail - Render","type":"ad"},{"title":"TR | MPU Middle - Render","type":"ad"},{"title":"TR | MPU Bottom - Render","type":"ad"},{"title":"TR | Leader Bottom - Render","type":"ad"}];!function(){window.advanced_ads_ready_queue=window.advanced_ads_ready_queue||[],advanced_ads_ready_queue.push=window.advanced_ads_ready;for(var d=0,a=advanced_ads_ready_queue.length;d<a;d++)advanced_ads_ready(advanced_ads_ready_queue[d])}(); #native-rr-article iframe, #native-main-well iframe, #native-boap iframe, #native-study-guide iframe, #native-in-article iframe { width: 100%; } #native-rr-article > div, #native-big-grid iframe, #native-big-grid > div { width: 100%; } #native-boap iframe { height: 20rem; } @media screen and (min-width: 500px) { #native-boap iframe { height: 20rem; } } @media screen and (min-width: 1100px) { #native-boap iframe { height: 20rem; } } #native-study-guide::before { content: ''; bottom: 0; width: 100%; position: absolute; border-width: 0 0 1px 0; border-style: solid; border-color: #eaeaea; border-color: rgba(0,0,0,0.19); } if( localStorage.getItem('shouldSendLoginEvent') === 'true' ) { localStorage.removeItem('shouldSendLoginEvent'); dataLayer.push({ 'event': 'user_login', 'has_premium': false, 'has_annual_subscription': true }); } (function(){function r(){function t(){var c=f.document,g=!!f.frames[u];if(!g)if(c.body){var l=c.createElement("iframe");l.style.cssText="display:none";l.name=u;c.body.appendChild(l)}else setTimeout(t,5);return!g}function D(){var c=arguments;if(c.length)if("setGdprApplies"===c[0]){if(3<c.length&&2===c[2]&&"boolean"===typeof c[3]&&"function"===typeof c[2])c[2]("set",!0)}else if("ping"===c[0]){var g={gdprApplies:g,cmpLoaded:!1,cmpStatus:"stub"};if("function"===typeof c[2])c[2](g)}else"init"===c[0]&& "object"===typeof c[3]&&(c[3]=Object.assign(c[3],{tag_version:"V2"})),w.push(c);else return w}function q(c){var g="string"===typeof c.data,l={};try{l=g?JSON.parse(c.data):c.data}catch(h){}var m=l.__tcfapiCall;m&&window.__tcfapi(m.command,m.version,function(h,x){h={__tcfapiReturn:{returnValue:h,success:x,callId:m.callId}};g&&(h=JSON.stringify(h));c&&c.source&&c.source.postMessage&&c.source.postMessage(h,"*")},m.parameter)}for(var u="__tcfapiLocator",w=[],f=window,v;f;){try{if(f.frames[u]){v=f;break}}catch(c){}if(f=== window.top)break;f=f.parent}v||(t(),f.__tcfapi=D,f.addEventListener("message",q,!1))}var y="false"!==google_tag_manager["GTM-57GHMWX"].macro(2)?google_tag_manager["GTM-57GHMWX"].macro(3):window.location.hostname,n=document.createElement("script"),z=document.getElementsByTagName("script")[0];y="https://cmp.quantcast.com".concat("/choice/",google_tag_manager["GTM-57GHMWX"].macro(4),"/",y,"/choice.js?tag_version\x3dV2");var A=0,E=3;n.async=!0;n.type="text/javascript";n.src=y;z.parentNode.insertBefore(n,z);r();var B=function(){var t=arguments;typeof window.__uspapi!== B&&setTimeout(function(){"undefined"!==typeof window.__uspapi&&window.__uspapi.apply(window.__uspapi,t)},500)};n=function(){A++;window.__uspapi===B&&A<E?console.warn("USP is not accessible"):clearInterval(F)};if("undefined"===typeof window.__uspapi){window.__uspapi=B;var F=setInterval(n,6E3)}})(); (function(){function r(a){b=",";for(var d in a)a[d]&&(b+=d+",");return b}function y(){var a=new XMLHttpRequest;a.onreadystatechange=function(){if(4==this.readyState&&200==this.status){var d=JSON.parse(this.responseText);d.hasOwnProperty("nonIabVendorList")&&(g=d.nonIabVendorList,Object.keys(g).forEach(function(k){h[g[k].vendorId]=g[k].name}))}};a.open("GET",D,!0);a.send()}function n(){var a=new XMLHttpRequest;a.onreadystatechange=function(){if(4==this.readyState&&200==this.status){var d=JSON.parse(this.responseText); d.hasOwnProperty("vendors")&&(q=d.vendors,Object.keys(q).forEach(function(k){f[q[k].id]=q[k].name}))}};a.open("GET",t,!0);a.send()}function z(a){window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:"__cmpLoaded",__cmpLoaded:!0,gdpr:a.gdprApplies})}function A(a){window.dataLayer=window.dataLayer||[];a.hasOwnProperty("publisher")&&(H=r(a.publisher.consents),I=r(a.publisher.legitimateInterests));a.hasOwnProperty("purpose")&&(J=r(a.purpose.consents),K=r(a.purpose.legitimateInterests));var d= 0,k=setInterval(function(){d+=1;100===d&&clearInterval(k);q&&g&&(clearInterval(k),a.gdprApplies?a.hasOwnProperty("vendor")&&Object.keys(a.vendor.consents).forEach(function(e){if(a.vendor.consents[e]||!a.gdprApplies)c[e]=f[e],v[e]=e}):(c=f,f.forEach(function(e,C){v[C]=C})),w=c.filter(Boolean).join("|"),u=v.filter(Boolean).join(","),window.__tcfapi("getNonIABVendorConsents",2,function(e,C){C&&(e.gdprApplies?Object.keys(e.nonIabVendorConsents).forEach(function(p){if(e.nonIabVendorConsents[p]||!e.gdprApplies)G[p]= h[p],x[p]=p}):(G=h,h.forEach(function(p,L){x[L]=L})))}),m=G.filter(Boolean).join("|"),l=x.filter(Boolean).join(","),window.dataLayer.push({event:"__cmpConsents",__cmpConsents:{iabVendorConsentIds:u,iabVendorsWithConsent:w,nonIABVendorConsentIds:l,nonIABVendorsWithConsent:m,gdpr:a.gdprApplies,publisherConsents:H,publisherLegitimateInterests:I,purposeConsents:J,purposeLegitimateInterests:K}}))},100)}function E(a){google_tag_manager["GTM-57GHMWX"].macro(5)&&window.__uspapi("uspPing",1,function(d,k){var e=document.getElementById(google_tag_manager["GTM-57GHMWX"].macro(6)); k&&d.mode.includes("USP")&&d.jurisdiction.includes(d.location.toUpperCase())&&null!==e&&(e.innerHTML+='We use cookies and other data collection technologies to provide the best experience for our customers. You may request that your data not be shared with third parties here: \x3ca href\x3d"#" onclick\x3d"window.__uspapi(\'displayUspUi\');"\x3eDo Not Sell My Data\x3c/a\x3e.',e.classList.add("ccpa-msg-added"),window.__uspapi("setUspDftData",1,function(C,p){p||console.log("Error: USP string not updated!")}))})} var B=(new Date).getTime(),F=google_tag_manager["GTM-57GHMWX"].macro(7),t="https://test.cmp.quantcast.com/GVL-v2/vendor-list.json",D="https://cmp.quantcast.com".concat("/choice/",google_tag_manager["GTM-57GHMWX"].macro(8),"/",F,"/.well-known/noniab-vendorlist.json").concat("?timestamp\x3d",B),q,u,w,f=[],v=[],c=[],g,l,m,h=[],x=[],G=[],H,I,J,K;google_tag_manager["GTM-57GHMWX"].macro(9)&&(n(),y());window.__tcfapi("addEventListener",2,function(a,d){if(d)switch(a.eventStatus){case "cmpuishown":google_tag_manager["GTM-57GHMWX"].macro(10)&&z(a);break;case "tcloaded":google_tag_manager["GTM-57GHMWX"].macro(11)&& (z(a),A(a));google_tag_manager["GTM-57GHMWX"].macro(12)&&E(a);break;case "useractioncomplete":google_tag_manager["GTM-57GHMWX"].macro(13)&&A(a)}})})(); !function(b,e,f,g,a,c,d){b.fbq||(a=b.fbq=function(){a.callMethod?a.callMethod.apply(a,arguments):a.queue.push(arguments)},b._fbq||(b._fbq=a),a.push=a,a.loaded=!0,a.version="2.0",a.queue=[],c=e.createElement(f),c.async=!0,c.src=g,d=e.getElementsByTagName(f)[0],d.parentNode.insertBefore(c,d))}(window,document,"script","https://connect.facebook.net/en_US/fbevents.js");fbq("init","657434508554909"); fbq("track","PageView"); .tce4c1f91-be80-4604-86e2-8f66a678cc65 { color: #fff; background: #222; border: 1px solid transparent; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-top { margin-top: -10px; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-top::before { border-top: 8px solid transparent; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-top::after { border-left: 8px solid transparent; border-right: 8px solid transparent; bottom: -6px; left: 50%; margin-left: -8px; border-top-color: #222; border-top-style: solid; border-top-width: 6px; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-bottom { margin-top: 10px; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-bottom::before { border-bottom: 8px solid transparent; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-bottom::after { border-left: 8px solid transparent; border-right: 8px solid transparent; top: -6px; left: 50%; margin-left: -8px; border-bottom-color: #222; border-bottom-style: solid; border-bottom-width: 6px; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-left { margin-left: -10px; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-left::before { border-left: 8px solid transparent; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-left::after { border-top: 5px solid transparent; border-bottom: 5px solid transparent; right: -6px; top: 50%; margin-top: -4px; border-left-color: #222; border-left-style: solid; border-left-width: 6px; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-right { margin-left: 10px; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-right::before { border-right: 8px solid transparent; } .tce4c1f91-be80-4604-86e2-8f66a678cc65.place-right::after { border-top: 5px solid transparent; border-bottom: 5px solid transparent; left: -6px; top: 50%; margin-top: -4px; border-right-color: #222; border-right-style: solid; border-right-width: 6px; } Alitools Guide βetaLink checked

      and seriously you don't mention visual code???

    1. We never got there. We never distributed the source code to a working web browser, more importantly, to the web browser that people were actually using. We didn't release the source code to the most-previous-release of Netscape Navigator: instead, we released what we had at the time, which had a number of incomplete features, and lots and lots of bugs.
    1. For example, one consequential wordis often the difference between Codex producing correct or incorrect results. Other factors such as:• the context of existing code by a user,• defined function and variable names,• existing comments and documentation by a user,• training data distribution, and• conciseness and length of prompt,

      codex 表现制约因素

    1. It’s creating incentives to form global networks of collaborating developers, hive minds whose supply of interacting, iterative ideas is codified into lines of open-source software. That freely accessible code will enable the execution of countless as-yet-unimagined ideas. It is the foundation upon which the decentralized economy of the future will be built.

      Decentralized economy of the future.

    1. Author Response

      Reviewer #1 (Public Review):

      This paper describes a new software tool: smartScope, for automated screening of cryo-EM grids. SmartScope can also perform automated data collection on suitable grids, including using beam-image shifts and tilted stage geometries. SmartScope uses deep-learning approaches for the selection of squares and holes of interest. The description of the software given in the paper is very promising, and as the code has not yet been made available, I cannot comment on its modularity, ease of installation, or general usability.

      The convolutional neural networks for square and hole detection were trained on relatively few examples, and supposedly all from the same microscope. How easy would it be for users to re-train these detectors for their own purposes? Could a description of that be added to the paper/documentation?

      Training was done on a mix of images coming from Ceta and K2 detectors. We added more details about the nature of the training data in the Materials and Methods section. Users will be able to re-train the model using the code provided.

      The introduction makes the same point over multiple pages, and could probably be easily cut in half length-wise. This will force the authors to formulate more succinctly, and thereby more clearly. Hopefully, this would then eliminate wooly or incorrect statements like: "the beginning of each new project is fraught with uncertainty", "[The number of combinations] grows exponentially with the inclusion of each parameter" (it doesn't!), "would be an invaluable tool".

      We carefully drafted the introduction to appeal to the broad audience of eLife while emphasizing the significance of our work. We have edited the text to make it more concise without missing the important points while reducing its length by over one third.

      Also, the first half of the Abstract needs some rewriting. It focuses first on grid optimisation, which is not what smartScope is about. SmartScope is about grid screening. Just say that and save some lines in the Abstract too.

      While SmartScope is not a tool for grid optimization, it provides direct feedback on grid quality which is a critical component of cryoEM specimen optimization. To clarify this point, we edited the abstract to highlight the screening aspect of SmartScope and we shortened it from 197 to 151 words.

      Lines 257-261 describe some setup in serialEM. Perhaps because I am not familiar with that software myself, but I had no clue what those lines meant. Perhaps some example setup files could be provided as supplementary information?

      Since setup files are tailored to specific hardware combinations, a settings file itself would not be beneficial. However, we added a new supplementary table with examples of 2 tested microscope configurations. As with any software, we expect SmartScope to evolve as new users report bugs and request new features. We also hope that a community of open-source developers will help us move it forward. For that reason, users are encouraged to refer to the “live” table on the documentation website of SmartScope where additional hardware combinations will be posted as the software is tested on new systems.

      For the DNA polymerase data set: mention in the Results section how long the entire data collection (or 4.3k images) took. Also, the sharpened map in the validation file has a very weird distribution of greyscale values. Its inclusion of volume with varying greyscale is basically a step function, indicating that this is more or less a binary density map. I suspect that this is a result of the DeepEMhancer procedure. But given that the scattering potential of proteins is not binary, I wonder how such a map can be justified. Also, the FSC curve shown in the paper does not mention any masks, but the reported resolution of 3.4A is higher than the unmasked resolution calculated by the PDB: 3.7A. Why is the DeepEMhancer software used here? Is it hiding a slightly suboptimal map? As map quality is not what this paper is about, perhaps it would suffice to show the original map alone?

      Thank you for pointing out the need of more clarity regarding this point. DeepEMhancer seems to apply a more conservative “sharpening” in the lower resolution areas of the map leading to more pleasing images. Hence, we used the corrected map for display purposes only. The raw map and half-maps are provided via EMDB. The FSC curve and overall resolution values reported in the paper were obtained using a shape mask produced using standard procedures implemented in CryoSparc. FSC curves and local-resolution map (Resmap) were calculated using the half-maps produced during refinement prior to sharpening We have now added the requested details to the figure legend. We also added the unmasked resolution in table 1 together with information about data collection throughput.

    1. readable

      Readable how? I think the better approach over what we do now, where we run source code through what are essentially compilers for making websites and then treat the output similar to object files—i.e. opaque blobs that are unsuitable for anything other than either (a) executing/experiencing, or (b) publishing to others—would be to pursue non-destructive compilation. So after the Markdown is compiled (if there is any compilation step at all), you don't have to keep the original sources around. The tooling should be sufficiently advanced to work with the publishable form as input, too, and not demand only Markdown. In instances where the Markdown files are kept around because the spartan experience of opening a plain text file where the content is almost entirely unadorned by formatting concerns is the preferred way to get things done, the tooling should be able to derive the original Markdown (or a good enough rendition) from the output itself. HTML is rich enough to be able to encode the necessary structure for this on the first Markdown-to-HTML pass. Systems that implement this kind of thing could be said to support a sort of "reversible Markdown", making the publishable form a suitable source of truth—a treatment that is right now reserved only for the originals that are collected and kept off-site.

      Make the writing and editing experience more like Word or Google Docs and less like LaTeX.

  6. localhost:8080 localhost:8080
    1. 首先在桌面上单击右键,在弹出的菜单中选择新建文件夹选项,命名为HelloWorld。然后将新建的文件夹拖曳到程序坞中的VS Code图标上,启动VS Code应用程序。单击新建文件按钮,创建一个名为index.html的文件,如图1.11所示。

      http://localhost:8080/?epub=epub_content%2Fts_graphic_render_practice.epub&goto=epubcfi(/6/22!/4/2/1:0)

  7. betasite.razorpay.com betasite.razorpay.com
  8. betasite.razorpay.com betasite.razorpay.com
    1. I also don't think you know what you're talking about when you talk about code readability. By and large, the vast majority of opinions on code readability, when you break them down, are based on a personal stance about preferences in writing
    1. andler Function Callback URL When you use the handler function, the response object of the successful payment (razorpay_payment_id, razorpay_order_id and razorpay_signature) is submitted to the Checkout Form. You need to collect these and send them to your server. When you use a Callback URL, the response object of the successful payment (razorpay_payment_id, razorpay_order_id and razorpay_signature) is submitted to the Callback URL.

      Move this above the code

  9. betasite.razorpay.com betasite.razorpay.com
    1. Let us look at the sample given below. Looking at the source, step and reason provided in the error description, it is apparent that the payment failed at the authentication step as the customer entered an incorrect OTP. An elegant way to handle this error would

      In this sample code, see the description, source, step and reason, indicating that the API failed due to authentication failure for incorrect OTP.

    2. All successful responses are returned with HTTP Status code 200. In case of failure, Razorpay API returns a JSON error response with the parameters that detail the reason for the failure.

      When an API is fired, Success: All successful responses are returned with HTTP Status code 200. Failure: Razorpay API returns a JSON error response with the parameters that detail the reason for the failure.

    1. Sample Code for Updating Settlement Account Details and Providing OTP Details🔗 PG Request PG Response PL Request PL ResponseCopy

      Please remove this section. We already talked about it above

    1. This will make your code easier to write and eliminate the confusion about having both list and List. In the future, using typing.List and similar generics like typing.Dict and typing.Type will be deprecated and the generics will eventually be removed from typing.
    1. PHP est un langage de script utilisé le plus souvent côté serveur : dans cette architecture, le serveur interprète le code PHP des pages web demandées et génère du code (HTML, XHTML, CSS par exemple) et des données (JPEG, GIF, PNG par exemple) pouvant être interprétés et rendus par un navigateur web. PHP peut également générer d'autres formats comme le WML, le SVG et le PDF.

    1. What about Alt? From my experimenting (and some Googling), it seems like Alt is literally the same as “Escape”, except that pressing Alt by itself doesn’t send any characters to the terminal and pressing Escape by itself does. So:

      alt has same code as escape while only press alt wouldn't send any signal but pressing escape would

    1. Yes, it’s making it easier than ever to write code collaboratively in the browser with zero configuration and setup. That’s amazing! I’m a HUGE believer in this mission.

      Until those things go away.

      A case study: DuckDuckHack used Codio, which "worked" until DDG decided to call it a wrap on accepting outside contributions. DDG stopped paying for Codio, and because of that, there was no longer an easy way to replicate the development environment—the DuckDuckHack repos remained available (still do), but you can't pop over into Codio and play around with it. Furthermore, because Codio had been functioning as a sort of crutch to paper over the shortcomings in the onboarding/startup process for DuckDuckHack, there was never any pressure to make sure that contributors could easily get up and running without access to a Codio-based development environment.

      It's interesting that, no matter how many times cloud-based Web IDEs have been attempted and failed to displace traditional, local development, people keep getting suckered into it, despite the history of observable downsides.

      What's also interesting is the conflation of two things:

      1. software that works by treating the Web browser as a ubiquitous, reliable interpreter (in a way that neither /usr/local/bin/node nor /usr/bin/python3 are reliably ubiquitous)—NB: and running locally, just like Node or Python (or go build or make run or...)—and

      2. the idea that development toolchains aiming for "zero configuration and setup" should defer to and depend upon the continued operation of third-party servers

      That is, even though the Web browser is an attractive target for its consistency (in behavior and availability), most Web IDE advocates aren't actually leveraging its benefits—they still end up targeting (e.g.) /usr/local/bin/node and /usr/local/python3—except the executables in question are expected to run on some server(s) instead of the contributor's own machine. These browser-based IDEs aren't so browser-based after all, since they're just shelling out to some non-browser process (over RPC over HTTP). The "World Wide Wruntime" is relegated to merely interpreting the code for a thin client that handles its half of the transactions to/from said remote processes, which end up handling the bulk of the computing (even if that computing isn't heavyweight and/or the client code on its own is full of bloat, owing to the modern trends in Web design).

      It's sort of crazy how common it is to encounter this "mental slippery slope": "We can lean on the Web browser, since it's available everywhere!" → "That involves offloading it to the cloud (because that's how you 'do' stuff for the browser, right?)".

      So: want to see an actual boom in collaborative development spurred by zero-configuration dev environments? The prescription is straightforward: make all these tools truly run in the browser. The experience we should all be shooting for resemble something like this: Step 1: clone the repo Step 2: double click README.html Step 3: you're off to the races—because project upstream has given you all the tools you need to nurture your desire to contribute

      You can also watch this space for more examples of the need for an alternative take on working to actually manage to achieve the promise of increased collaboration through friction-free (or at least friction-reduced) development: * https://hypothes.is/search?q=%22the+repo+is+the+IDE%22 * https://hypothes.is/search?q=%22builds+and+burdens%22