3,469 Matching Annotations
  1. Jul 2025
    1. This makes a lot of sense: with AIs generating a large amount of code, the challenge moves towards validation and testing. If you generate towards a higher level of abstraction, there's less code and less moving parts to be reviewed and validated. Think of it as low-code/DSLs for GenAI, still code, but with less technical details to review and test.
    2. Looks neat!As humans augmented with agents write more code, solutions that require less context shifting to get stuff done will win.A common web stack may include API handlers, OpenAPI spec, generated TypeScript definitions, generated TypeScript client, React logic and effects code, TSX code, HTML, and CSS.This generally needs filesystem watchers, code generators, transpilers, compilers to get stuff done.Something that can go from a backend handlers straight to terse markup for reactive UI would be a massive simplification to all this, and a big productivity boost.
    3. it isn’t the concept that I find novel, at all. It’s the sheer depth and breadth of declarative expressiveness that I see in the examples. Maybe the best way I can put it is that what seems novel to me is how much novelty it appears to enable, before breaking through the abstraction to give it more capabilities.
    4. I don’t think this is a reinvention of XHTML. It’s definitely closer in spirit to XUL, but seems different enough still that I wouldn’t call it reinvention.What seems particularly novel about this is that it’s taken the compositional approach of modern UI component libraries, and distilled it down to units of composition that can express a lot of behavior and logic declaratively. At least at a glance, that’s an impressive feat. Not necessarily in terms its technical capabilities (though that seems impressive too), but in terms of how it simplifies modeling interactive and data-driven UI.
    5. I think this is the most important statement in the piece. The rest of the post explains the technical details, but this explains _why_ this exists. This is a bold statement, but I don't think he's wrong.Now, is XMLUI the _right_ set of abstractions to help these developers? We'll have to wait an see. But I love to see the attempt!

      +1

    6. The good part was the immediate visual feedback in a GUI editor where you couldn't break anything by forgetting to close an XML tag! And you didn't even have to know all the types to type in because you had a visible list of UI elements you could pick from
    7. XAML (at least the tighter-scoped Silverlight incarnation of it) was an absolute joy to use - if you used it correctly. It was an absolute monster if you used it in the most obvious (and incorrect) way. That's probably the reason other than HTML5 that it fell off: good tools steer novices into the pit of success, and XAML really didn't do that at all.

      The X factor now is agents + MCP, and whether they can steer novices to correct uses and good outcomes.

  2. Aug 2024
    1. def show_spread(left, middle, right): print(f"left {left} middle {middle} right {right}") all_in_list = [1, 2, 3] show_spread(*all_in_list) all_in_dict = {"right": 30, "left": 10, "middle": 20} show_spread(**all_in_dict)

      I asked Claude: Can you expand on what's happening here?

      Claude said:

      Certainly! This code demonstrates two important Python features: argument unpacking with the * and ** operators. Let's break it down:

      First, we define a function show_spread that takes three parameters: left, middle, and right.

      Then, we have two examples of calling this function using different forms of argument unpacking:

      a) List unpacking with *: python all_in_list = [1, 2, 3] show_spread(*all_in_list) Here, *all_in_list unpacks the list into individual arguments. It's equivalent to calling show_spread(1, 2, 3).

      b) Dictionary unpacking with **: python all_in_dict = {"right": 30, "left": 10, "middle": 20} show_spread(**all_in_dict) Here, **all_in_dict unpacks the dictionary into keyword arguments. It's equivalent to calling show_spread(left=10, middle=20, right=30).

      The key points are:

      • unpacks an iterable (like a list or tuple) into positional arguments.
      • unpacks a dictionary into keyword arguments. When using **, the keys in the dictionary must match the parameter names in the function.

      This technique is powerful for making function calls more flexible and for passing collections of values as separate arguments.

  3. Feb 2024
  4. Jan 2024
  5. Oct 2023
    1. Customers are often left to cobble together disparate services without tight integration in the way Microsoft might provide, for example.All this makes the introduction of Amazon Aurora zero-ETL integration with Amazon Redshift such a jaw-dropper. Let’s be clear: In essence, AWS announced that two of its services now work well together. It’s more than that, of course. Removing the cost and complexity of ETL is a great way to remove the need to build data pipelines. At heart, this is about making two AWS services work exceptionally well together. For another company, this might be considered table stakes, but for AWS, it’s relatively new and incredibly welcome.It’s also a sign of where AWS may be headed: tighter integration between its own services so that customers needn’t take on the undifferentiated heavy lifting of AWS service integration.
    1. One of the places where customers spend the most time building and managing ETL pipelines is between transactional databases and data warehouses, which is where AWS set its sights.
    1. One potential solution is the use of a “one big table” (OBT) strategy, where all the raw data is placed into one table. This strategy has both proponents and detractors, but leveraging large language models may overcome some of its challenges, such as discovery and pattern recognition. Super early startups such as Delphi and GetDot.AI, as well as more established players such as AWS QuickSite, Tableau Ask Data, and ThoughtSpot, are driving this trend.
  6. May 2023
    1. Thus, we can envision the Code plugin wrapping every secret checker and authentication tester in its own span, to help users diagnose abnormally slow queries. Which regex is taking too much time? With which input data? Or is it a login call to a remote API? Is the remote service silently throttling login attempts, since they are being made too frequently and with already-expired keys?
    2. So, we have verified that custom metrics are supported by the Steampipe SDK. You can register new metrics, and they will be exported to the OpenTelemetry collector.This should open up huge opportunities for custom plugin monitoring. With no changes required to the Steampipe core, any plugin author can expose whatever metrics make sense for the specific plugin, usecases and remote service that the plugin interfaces with.
    3. Metrics are useful for both Ops (i.e., the people that manage the servers, deploy the applications, and get pestered in the middle of the night when the service is down) and Business (i.e., the people that stare at dashboards, can be heard muttering “KPIs, KPIs” under their breaths, dream of high conversion rates and have nightmares of high churn rates).
    1. So, to summarize: Steampipe caches query results and attempts to serve them before calling the remote API. The cache is aware of both row and column subsets:If you request a subset of columns (such as calling SELECT * and later SELECT one_column), while keeping the WHERE conditions constant, the cache will look for the original results (which have more columns) and then return only the required columns.If you request a subset of rows/records (such as calling SELECT * and later SELECT * WHERE some_condition), the results will be served from the cache too.A combination of the above also works.
    1. And now, for a small story. While browsing the Interwebs for solutions to this problem, I found this thread in the Postgres mailing list. The title seems promising: “the results of a nested query/join not being passed as qual to the outer query”. That’s precisely our problem. The first post starts with “I am developing an FDW which allows various data sources to act as virtual tables, allowing various different APIs to be queried using a consistent SQL interface.” “We often have virtual tables where a list operation is not viable/possible without providing quals.” “The problem we have is that the results of nested subqueries/joins are not being passed as quals to the outer query.” That’s a direct description of the problem.
    1. If you need more, grab your BI tool of choice and plug it into Steampipe. That, I believe, is the secret superpower of Steampipe: by making a true PostgreSQL server, you inherit the entire SQL ecosystem.
    1. We saw what happens when you don’t echo your search query into the output table (namely, you get no data returned), why it happens and how to prevent it (namely, use transform.FromQual or do it manually, but the built-in mechanism promotes laziness, which is good)
    2. Later, I reviewed the Github plugin for Steampipe, that also implements a search for repositories. It exposes a table called github_search_repository, in which you can fill a query column. That column is defined in the code with Transform: transform.FromQual("query"), which takes its value from the incoming query and reflects it back on the result table. That’s a really clean way of handling precisely that requirement, and I assume that the developers added it just for that. It’s not mentioned in the docs (at least, not that I could find it, nor Google), but some example repositories (or the code autocompletion, if using an IDE that supports it) will reveal to you the hidden secret of the FromQual transform. Thus, when you review the plugin code, you’ll see that there is no Wallet field in the response struct, since it’s not required: the plugin scaffolding will add it.
  7. Apr 2023
    1. sql = replace( replace( replace( replace(local.tls_control_sql, "__SELECT_STATEMENT__", local.tls_connection_sql), "__DOMAIN__", "$1" ), "*", "max(version) as max_version, address" ), "'$1'", "$1" )

      A 4-level replacement is needed here.

      • swap local.tls_connection.sql into local.tls_control_sql for __SELECT_STATEMENT__

      • do the __DOMAIN__ replacement

      • alter the sql from select * to select max(version), address

      • remove the single quotes around $1

      At this point, HCL replace becomes rather unwieldy: hard to read, hard to debug, the reuse benefit is questionable.

    2. sql = replace( replace( replace(local.tls_connection_sql, "'__DOMAIN__'", "$1"), "completed", "completed group by version" ), "*", " version, count(*)"

      A 3-level replacement:

      • do the __DOMAIN__ replacement

      • add group by version

      • alter the sql from select * to select version, count(*)

      As with tls_control_hcl, this is a tricky transformation that's hard to read, hard to debug, and has questionable reuse value.

    3. sql = replace(local.tls_connection_sql, "__DOMAIN__", "whitehouse.gov")

      Do the __domain__ replacement.

      When this is the only adjustment needed, it makes sense to use HCL replace.

    4. select version, count(*) from tls_connection($1) group by version

      Make the minimal adjustment to the results of the function to satisfy the needs of the chart.

    5. select max(version) as max_version, address from tls_connection($1) group by address

      Make the minimal adjustment to the results of the function to satisfy the needs of the control.

    6. select * from tls_connection('whitehouse.gov')

      No adjustment needed beyond parameterizing the function call, the table will report all columns.

      But it could select arbitrarily from among the available columns.

    7. select max(version) from tls_connection('whitehouse.gov')

      Make the minimal adjustment to the results of the function to satisfy the needs of the card.

    8. create or replace function public.tls_connection(domain text) returns setof net_tls_connection as $$ select * from net_tls_connection where address = domain || ':443' and handshake_completed $$ language sql

      This is a set-returning function. Such a function could define the returned schema like so:

      returns table ( address text, handshake_completed boolean, ... etc ) But when a schema exists -- and in this case, the schema is net_tls_connection -- then the function can just return setof net_tls_connection.

    9. sql = replace( replace(local.tls_connection_sql, "__DOMAIN__", "whitehouse.gov"), "*", " max(version) " )

      This two-level replace:

      • does the __DOMAIN__ replacement

      • then changes select * to select max(version)

    10. with data as ( __SELECT_STATEMENT__ group by address ) select address as resource, case when max_version >= 'TLS v1.2' then 'ok' else 'alarm' end as status, case when max_version >= 'TLS v1.2' then $1 || ' TLS max_version is compliant: ' || max_version else $1 || ' TLS version is NOT compliant: ' || max_version end as reason from data

      This local variable represents the base of the control.

    11. tls_connection_sql = <<EOQ select * from net_tls_connection where address = '__DOMAIN__' || ':443' and handshake_completed

      This local variable represents the core sql that appears four times in the Basic version.

      It's parameterized with a placeholder for _DOMAIN__ that will be replace with steampipe.io or whitehouse.gov.

    12. select version, count(*) from net_tls_connection where address = $1 || ':443' and handshake_completed

      The third of four similar chunks of sql.

    13. select max(version) as max_version, address from net_tls_connection where address = $1 || ':443' and handshake_completed

      The second of four similar chunks of sql.

  8. Nov 2022
  9. Oct 2022
    1. Students don’t like the writing tools available in wikis, and for good reason, they’re pretty rough around the edges. So we want to enable them to write in Google Docs. We also want them to footnote their articles using direct links because that’s the best way to do it. So here’s a solution we’re trying. From the wiki you’ll launch into Google Docs where you can do your writing in a much more robust editor that makes it really easy to include images and charts. And if you use direct links in that Google Doc, they’ll still show up as Footnotes.

      Bill Seitz: Is this the GDoc/Wiki thing you had in mind?

  10. Aug 2022
  11. Sep 2021
    1. Also, give up now on the idea of trying to get everything tagged. If you can set a baseline of 80% or better, you’re outperforming almost everyone. And, in most cases, you’re not an organization where you’re required to spend thousands of dollars to allocate that last 20 cents. Lastly, never ever expect people to tag things by hand. They won’t. If you want decent tag coverage, tagging absolutely must be automated.
    1. With Tag Editor, you build a query to find resources in one or more AWS Regions that are available for tagging. You can choose up to 20 individual resource types, or build a query on All resource types. Your query can include resources that already have tags, or resources that have no tags.
  12. Aug 2021
    1. In fact, the tree has no higher brain function, it's not struggling to do anything. Instead, what the picture shows is the miracle of decentralization.

      I have a pear tree in my front yard with a similar story, it almost died, I was going to cut it down but some sprouts persisted and it's doing great now.

      This is very possibly a story of decentralized resistance. What we are learning from Suzanne Simard and others is that it also might be the case that this tree was helped by its neighbors.

  13. Apr 2021
  14. Mar 2021
  15. Feb 2021
    1. Chances are, if you're like me, that you pick up your phone and use a biometric authentication method (e.g. FaceId) to open it. Then you select the app and the biometrics play again to make sure it's you, and you're in.

      I just had a hilariously opposite experience with Exchange Bank. I'd never tried their mobile app, was happy with the web app which, since having an iPhone, works with Touch ID. But you inspired me to get the app. To which I could not authenticate, not with Touch ID, not with repeated and careful efforts to input the password that works in the web app. Here is how it ended:

      "ATTENTION: We are unable to validate your information Please try again or check that your login credentials are set up correctly in online banking. If problems continue please call us at 1-844-ddd-dddd for assistance."

      Well, not quite. Here's how it ended, after many rings:

      "Thank you for call, we are unavailable to help at this time, please leave a message."

      Wait, there's more. The Touch ID story is more complex than I realized. When I went back and checked, I found it didn't work with my bank. This led to a futile detour during which I connected AutoFill to my password manager (StrongBox, on the iPhone, Keepass elsewhere), and then disconnected it because I didn't want to have to authenticate to the password manager in order to AutoFill. Turning back to the bank auth, I finally figured it out. The Touch ID -> AutoFill connection is based on Safari, but I mainly use a Chromium browser on the iPhone. I had to visit the bank in Safari, and have it remember my bank password, in order for the Touch ID -> AutoFill connection to work. Despite all this, the mobile app still doesn't accept same Touch-ID-acquired credential as the web app does. And it's Saturday, so nobody is answering the phone.

      Now, I am new to the iPhone so I'm sure I'm missing plenty. Also my bad for using the non-default browser I guess. And maybe Exchange Bank's mobile app is an outlier. But still, I'm puzzled. I want to experience this passwordless nirvana of which you speak. How do I get there?

  16. Jan 2021
    1. Yet the pausing of donations announced by many companies – including Marriott, American Express, AT&T, JPMorgan Chase, Dow, American Airlines, and others – was unlikely to deliver a serious blow to Republicans in Congress who voted to overturn Mr. Biden’s win.“These are symbolic pledges,” said Sheila Krumholz, executive director of the Center for Responsive Politics, a nonpartisan group that traces the role money plays in politics. “This is just one source of revenue and for some it’s vanishingly small, particularly in the Senate.”
  17. Nov 2020
  18. Oct 2020
    1. puzzling, intriguing, or ambiguous

      These are nice examples of recommended tags that could be signaled using inline hashtags or actual Hypothesis tags.

      Either way, it's effort to send those signals, so there needs to be feedback that shows they've been received and enables folks to observe the response matrix.

      A view of that matrix that doesn't require visiting crowdlaaers or facet might be helpful.

  19. Sep 2020
    1. A testing system built close to the web rendering system itself

      I've arrived at something like this, albeit for very simple web apps. It feels promising but I am not the person to advance the idea.

      It's highly congruent with puppeteer, but not joined at the hip.

  20. blog.cjeller.site blog.cjeller.site
    1. Meanwhile subjects are left to perform the "interpretive labor" as David Graeber calls it of understanding the system, what it allows or doesn't, and how it can be bent to accomplish their goals.

      Jack Ozzie's term for interpretive labor: context assembly.

    1. DouglasandMichaelsgoontoexplain,“Thenewmomisminvolvesmorethanjustimpossibleidealsaboutwomen’schildrearing;itredefinesallwomen,firstandforemost,throughtheirrelationshipstochildren.
    2. ErikaHorwitz’sstudy-(2003)on empoweredmotheringrevealsthatthepracticeofoutlawmotherhoodmaybecharacterizedbyseventhemes:Theimportanceofmothersmeetingtheirownneeds;BeingaMotherdoesnotfulfillallofawoman’sneeds;Involvingothersintheirchil­dren’supbringing;Activelyquestioningtheexpectationsthatareplacedonmothersbysociety;
  21. Aug 2020
  22. Jul 2020
  23. Jun 2020
    1. When I need to trace behavior in the client, I build an alternate version of the official Hypothesis extension like so:

      1 In the client repo, set IS_PRODUCTION_BUILD false in the client's gulpfile.js (this turns off minify), then gulp build

      2 In the extension repo:

      make clean
      make SETTINGS_FILE=settings/chrome-prod.json
      

      3 Load the unpacked extension (in Chrome/Brave/Edge) from the build directory.

      Now you can debug in the unminified client.

      Note that because this extension shares a key with the production extension, any changes you make will soon be overwritten. If you want a persistent alternate client you need to use a different key. This technique is specifically for debugging an unminified client.

    1. make

      The bare make command does nothing.

      On Ubuntu 18.04, yarn install tells me:

      error puppeteer@3.2.0: The engine "node" is incompatible with this module. Expected version ">=10.18.1". Got "10.15.3"

      A workaround for upgrading node appears to be:

      yarn install --ignore-engines

  24. Apr 2020
    1. <table> <thead><tr> <th>Tables</th> <th style="text-align:center">Are</th> <th style="text-align:right">Cool</th> </tr> </thead> <tbody> <tr> <td>col 3 is</td> <td style="text-align:center">right-aligned</td> <td style="text-align:right">$1600</td> </tr> <tr> <td>col 2 is</td> <td style="text-align:center">centered</td> <td style="text-align:right">$12</td> </tr> <tr> <td>zebra stripes</td> <td style="text-align:center"><del>are neat</del></td> <td style="text-align:right">$1</td> </tr> </tbody> </table>
  25. Mar 2020
    1. SciScore for 10.1101/782409: 4 (What is this?)

      Table 1: Rigor

      <table><tr"><td style="margin-right:1em; border-right:1px solid lightgray; border-bottom:1px solid lightgray">Institutional Review Board Statement</td><td style="border-bottom:1px solid lightgray">The experimental protocol was reviewed and approved by the Institutional Animal Care and Use Committee (IACUC) at Loyola University Chicago (IACUC#: 2016-029).</td></tr><tr"><td style="margin-right:1em; border-right:1px solid lightgray; border-bottom:1px solid lightgray">Randomization</td><td style="border-bottom:1px solid lightgray">not detected.</td></tr><tr"><td style="margin-right:1em; border-right:1px solid lightgray; border-bottom:1px solid lightgray">Blinding</td><td style="border-bottom:1px solid lightgray">not detected.</td></tr><tr"><td style="margin-right:1em; border-right:1px solid lightgray; border-bottom:1px solid lightgray">Power Analysis</td><td style="border-bottom:1px solid lightgray">not detected.</td></tr><tr"><td style="margin-right:1em; border-right:1px solid lightgray; border-bottom:1px solid lightgray">Sex as a biological variable</td><td style="border-bottom:1px solid lightgray">C57BL/6 female mice were purchased from The Jackson Laboratory and maintained in the Comparative Medicine Facility of Loyola University Chicago.</td></tr><tr"><td style="margin-right:1em; border-right:1px solid lightgray; border-bottom:1px solid lightgray">Cell Line Authentication</td><td style="border-bottom:1px solid lightgray">not detected.</td></tr></table>

      Table 2: Resources

      <table><tr><td style="text-align:center; padding-top:4px;" colspan="2">Antibodies</td></tr><tr><td style="text=align:center">Sentences</td><td style="text-align:center">Resources</td></tr><tr><td style="vertical-align:top;border-bottom:1px solid lightgray">The membrane was incubated with either polyclonal rabbit anti-GFP antibody ( A11122 , Life Technologies ) for the protease assay , or mouse anti-flag ( F3165 , Sigma ) for the DUB assay .</td><td style="border-bottom:1px solid lightgray"> <div style="margin-bottom:8px"> <div>anti-GFP</div> <div>suggested: (Molecular Probes Cat# A-11122, AB_221569)</div> </div> <div style="margin-bottom:8px"> <div>anti-flag ( F3165</div> <div>suggested: None</div> </div> </td></tr><tr><td style="vertical-align:top;border-bottom:1px solid lightgray">The membrane was then washed three times for 15 minutes in TBST buffer followed by incubation with either secondary donkey anti-rabbit-HRP antibody ( 711-035-152 , Jackson ImmunoResearch ) or goat anti-mouse-HRP antibody ( 1010-05 , SouthernBiotech) .</td><td style="border-bottom:1px solid lightgray"> <div style="margin-bottom:8px"> <div>anti-rabbit-HRP</div> <div>suggested: (Kindle Biosciences Cat# R1006, AB_2800464)</div> </div> <div style="margin-bottom:8px"> <div>anti-mouse-HRP</div> <div>suggested: (Kindle Biosciences Cat# R1005, AB_2800463)</div> </div> </td></tr><tr><td style="vertical-align:top;border-bottom:1px solid lightgray">The expression of PLP2 , β-actin , and calnexin were probed with mouse anti-V5 antibody ( R960 , ThermoFisher) , mouse anti–β-actin ( A00702 , Genscript) , or mouse anti-calnexin antibody ( 2433S , Cell Signaling) , respectively .</td><td style="border-bottom:1px solid lightgray"> <div style="margin-bottom:8px"> <div>PLP2</div> <div>suggested: None</div> </div> <div style="margin-bottom:8px"> <div>β-actin</div> <div>suggested: None</div> </div> <div style="margin-bottom:8px"> <div>anti-V5</div> <div>suggested: (Thermo Fisher Scientific Cat# R960-25, AB_2556564)</div> </div> <div style="margin-bottom:8px"> <div>mouse anti-calnexin antibody</div> <div>suggested: None</div> </div> <div style="margin-bottom:8px"> <div>anti-calnexin</div> <div>suggested: (Cell Signaling Technology Cat# 2433, AB_2243887)</div> </div> </td></tr><tr><td style="text-align:center; padding-top:4px;" colspan="2">Experimental Models: Cell Lines</td></tr><tr><td style="text=align:center">Sentences</td><td style="text-align:center">Resources</td></tr><tr><td style="vertical-align:top;border-bottom:1px solid lightgray">Cells Human embryonic kidney ( HEK ) 293T cells were purchased the from American Type Culture Collection ( ATCC , # CRL-11268 ) and maintained in DMEM ( #10-017-CV , Corning ) containing 10 % fetal calf serum ( FCS ) and supplemented with 1 % nonessential amino acids , 1 % HEPES , 2 % L-glutamine , 1 % sodium pyruvate , and 1 % penicillin/streptomycin .</td><td style="border-bottom:1px solid lightgray"> <div style="margin-bottom:8px"> <div>HEK</div> <div>suggested: None</div> </div> <div style="margin-bottom:8px"> <div>293T</div> <div>suggested: ATCC Cat# CRL-11268, CVCL_1926</div> </div> </td></tr><tr><td style="vertical-align:top;border-bottom:1px solid lightgray">Protease and deubiquitinating activity assays To determine the protease activity of PLP2 , HEK293T cells grown to 70 % confluency in 24-well plates ( Corning ) were transfected using TransIT-LT1 ( MIR2300 , Mirus ) according to the manufacturer’s protocol .</td><td style="border-bottom:1px solid lightgray"> <div style="margin-bottom:8px"> <div>HEK293T</div> <div>suggested: None</div> </div> </td></tr><tr><td style="text-align:center; padding-top:4px;" colspan="2">Experimental Models: Organisms/Strains</td></tr><tr><td style="text=align:center">Sentences</td><td style="text-align:center">Resources</td></tr><tr><td style="vertical-align:top;border-bottom:1px solid lightgray">C57BL/6 female mice were purchased from The Jackson Laboratory and maintained in the Comparative Medicine Facility of Loyola University Chicago.</td><td style="border-bottom:1px solid lightgray"> <div style="margin-bottom:8px"> <div>C57BL/6</div> <div>suggested: None</div> </div> </td></tr><tr><td style="text-align:center; padding-top:4px;" colspan="2">Software and Algorithms</td></tr><tr><td style="text=align:center">Sentences</td><td style="text-align:center">Resources</td></tr><tr><td style="vertical-align:top;border-bottom:1px solid lightgray">Graphs of virus kinetics were generated using Prism software ( GraphPad Software ) .</td><td style="border-bottom:1px solid lightgray"> <div style="margin-bottom:8px"> <div>Prism</div> <div>suggested: (PRISM, SCR_005375)</div> </div> <div style="margin-bottom:8px"> <div>GraphPad</div> <div>suggested: (GraphPad Prism, SCR_002798)</div> </div> </td></tr></table>

      About SciScore

      SciScore is an automated tool that is designed to assist expert reviewers by finding and presenting formulaic information scattered throughout a paper in a standard, easy to digest format. SciScore is not a substitute for expert review. SciScore checks for the presence and correctness of RRIDs (research resource identifiers) in the manuscript, and detects sentences that appear to be missing RRIDs. SciScore also checks to make sure that rigor criteria are addressed by authors. It does this by detecting sentences that discuss criteria such as blinding or power analysis. SciScore does not guarantee that the rigor criteria that it detects are appropriate for the particular study. Instead it assists authors, editors, and reviewers by drawing attention to sections of the manuscript that contain or should contain various rigor criteria and key resources. For details on the results shown here, please follow this link.

    1. <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

      <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 15"> <meta name=Originator content="Microsoft Word 15"> <link rel=File-List href="covid_files/filelist.xml"> <link rel=themeData href="covid_files/themedata.thmx"> <link rel=colorSchemeMapping href="covid_files/colorschememapping.xml"> <style> </style> </head><body lang=EN-US style='tab-interval:.5in'> <div class=WordSection1>

      <span class=SpellE><span style='font-size:14.0pt;mso-bidi-font-size:11.0pt;line-height:108%'>SciScore</span></span><span style='font-size:14.0pt;mso-bidi-font-size:11.0pt;line-height:108%'>: 6 </span><span style='color:blue'>What's this?</span>

      Document Identifier: 3879

      Below you will find two tables showing the results of <span class=SpellE>SciScore</span>. Your score is calculated based on adherence to guidelines for scientific rigor (Table 1) and identification of key biological resources (Table 2). Points are given when <span class=SpellE>SciScore</span> detects appropriate information in the text. Details on each criteria and recommendations on how to improve the score are appended to the bottom of this report.

      Table 1: Rigor Adherence Table

      <table class=TableGrid border=0 cellspacing=0 cellpadding=0 width=661 style='width:496.05pt;border-collapse:collapse;mso-yfti-tbllook:1184; mso-padding-alt:0in 4.75pt 0in 6.15pt'> <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:26.75pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;mso-border-top-alt: 1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt; height:26.75pt'>

      <u style='text-underline:black'>Institutional Review Board Statement</u>

      </td> </tr> <tr style='mso-yfti-irow:1;height:38.75pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;border-top:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt;mso-border-left-alt: .25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt: black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt;height:38.75pt'>

      <span style='font-size:11.0pt;line-height:107%'>IRB: Ethics approval was obtained from the Ethics Committee of Guangzhou Women and Children’s Medical Center and written informed consents were obtained from the parents of the included children.</span>

      </td> </tr> <tr style='mso-yfti-irow:2;height:38.75pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;border-top:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt;mso-border-left-alt: .25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt: black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt;height:38.75pt'>

      <span style='font-size:11.0pt;line-height:107%'>Consent: Ethics approval was obtained from the Ethics Committee of Guangzhou Women and Children’s Medical Center and written informed consents were obtained from the parents of the included children.</span>

      </td> </tr> <tr style='mso-yfti-irow:3;height:26.75pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;border-top:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt;mso-border-left-alt: .25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt: black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt;height:26.75pt'>

      <u style='text-underline:black'>Randomization</u>

      </td> </tr> <tr style='mso-yfti-irow:4;height:25.55pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;border-top:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt;mso-border-left-alt: .25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt: black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt;height:25.55pt'>

      <span style='font-size:11.0pt;line-height:107%'>not detected.</span>

      </td> </tr> <tr style='mso-yfti-irow:5;height:26.75pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;border-top:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt;mso-border-left-alt: .25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt: black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt;height:26.75pt'>

      <u style='text-underline:black'>Blinding</u>

      </td> </tr> <tr style='mso-yfti-irow:6;height:25.55pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;border-top:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt;mso-border-left-alt: .25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt: black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt;height:25.55pt'>

      <span style='font-size:11.0pt;line-height:107%'>not detected.</span>

      </td> </tr> <tr style='mso-yfti-irow:7;height:26.75pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;border-top:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt;mso-border-left-alt: .25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt: black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt;height:26.75pt'>

      <u style='text-underline:black'>Power Analysis</u>

      </td> </tr> <tr style='mso-yfti-irow:8;height:25.55pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;border-top:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt;mso-border-left-alt: .25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt: black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt;height:25.55pt'>

      <span style='font-size:11.0pt;line-height:107%'>not detected.</span>

      </td> </tr> <tr style='mso-yfti-irow:9;height:26.75pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;border-top:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt;mso-border-left-alt: .25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt: black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt;height:26.75pt'>

      <u style='text-underline:black'>Sex as a biological variable</u>

      </td> </tr> <tr style='mso-yfti-irow:10;mso-yfti-lastrow:yes;height:25.55pt'> <td width=661 style='width:496.05pt;border:solid black 1.0pt;border-top:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt;mso-border-left-alt: .25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt: black;mso-border-style-alt:solid;padding:0in 4.75pt 0in 6.15pt;height:25.55pt'>

      <span style='font-size:11.0pt;line-height:107%'>not detected.</span>

      </td> </tr> </table>

      Table 2: Key Resources Table

      <table class=TableGrid border=0 cellspacing=0 cellpadding=0 width=661 style='width:496.05pt;border-collapse:collapse;mso-yfti-tbllook:1184; mso-padding-alt:2.15pt 5.75pt 2.15pt .5pt'> <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:29.8pt'> <td width=227 valign=top style='width:170.1pt;border:solid black 1.0pt; mso-border-top-alt:1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt: 1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt:black;mso-border-style-alt: solid;padding:2.15pt 5.75pt 2.15pt .5pt;height:29.8pt'>

      Your Sentences

      </td> <td width=113 valign=top style='width:85.05pt;border:solid black 1.0pt; border-left:none;mso-border-left-alt:solid black .25pt;mso-border-top-alt: 1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:2.15pt 5.75pt 2.15pt .5pt; height:29.8pt'>

      REAGENT or

      RESOURCE

      </td> <td width=94 valign=top style='width:70.85pt;border:solid black 1.0pt; border-left:none;mso-border-left-alt:solid black .25pt;mso-border-top-alt: 1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:2.15pt 5.75pt 2.15pt .5pt; height:29.8pt'>

      SOURCE

      </td> <td width=227 valign=top style='width:170.1pt;border:solid black 1.0pt; border-left:none;mso-border-left-alt:solid black .25pt;mso-border-top-alt: 1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:2.15pt 5.75pt 2.15pt .5pt; height:29.8pt'>

      IDENTIFIER

      </td> </tr> <tr style='mso-yfti-irow:1;height:26.75pt'> <td width=227 valign=top style='width:170.1pt;border-top:none;border-left: solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:solid black 1.0pt; mso-border-left-alt:solid black .25pt;mso-border-bottom-alt:solid black 1.0pt; padding:2.15pt 5.75pt 2.15pt .5pt;height:26.75pt'>

      <o:p> </o:p>

      </td> <td width=208 colspan=2 style='width:155.9pt;border:none;border-bottom:solid black 1.0pt; mso-border-top-alt:solid black 1.0pt;padding:2.15pt 5.75pt 2.15pt .5pt; height:26.75pt'>

      <u style='text-underline:black'>Software and Algorithms</u>

      </td> <td width=227 valign=top style='width:170.1pt;border-top:none;border-left: none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt; mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:solid black 1.0pt; mso-border-bottom-alt:solid black 1.0pt;mso-border-right-alt:solid black .25pt; padding:2.15pt 5.75pt 2.15pt .5pt;height:26.75pt'>

      <o:p> </o:p>

      </td> </tr> <tr style='mso-yfti-irow:2;mso-yfti-lastrow:yes;height:53.8pt'> <td width=227 valign=top style='width:170.1pt;border:solid black 1.0pt; border-top:none;mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt; mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:2.15pt 5.75pt 2.15pt .5pt; height:53.8pt'>

      <span style='font-size:11.0pt;line-height:107%'>Microsoft Excel <span class=GramE>( MS</span> Excel 2013 ,</span>

      <span class=GramE><span style='font-size:11.0pt;line-height: 107%'>v.15.0 )</span></span><span style='font-size:11.0pt;line-height:107%'> was used for data collection of the epidemiological and clinical information .</span>

      </td> <td width=113 valign=bottom style='width:85.05pt;border-top:none;border-left: none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt; mso-border-top-alt:solid black 1.0pt;mso-border-left-alt:solid black .25pt; mso-border-top-alt:1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt: 1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt:black;mso-border-style-alt: solid;padding:2.15pt 5.75pt 2.15pt .5pt;height:53.8pt'>

      <span style='font-size:11.0pt;line-height:107%'>Microsoft Excel</span>

      </td> <td width=94 valign=top style='width:70.85pt;border-top:none;border-left: none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt; mso-border-top-alt:solid black 1.0pt;mso-border-left-alt:solid black .25pt; mso-border-top-alt:1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt: 1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt:black;mso-border-style-alt: solid;padding:2.15pt 5.75pt 2.15pt .5pt;height:53.8pt'>

      <o:p> </o:p>

      </td> <td width=227 valign=bottom style='width:170.1pt;border-top:none;border-left: none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt; mso-border-top-alt:solid black 1.0pt;mso-border-left-alt:solid black .25pt; mso-border-top-alt:1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt: 1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt:black;mso-border-style-alt: solid;padding:2.15pt 5.75pt 2.15pt .5pt;height:53.8pt'>

      <span style='font-size:11.0pt;line-height:107%;color:gray'>Suggestion: (Microsoft Excel,</span>

      <span style='font-size:11.0pt;line-height:107%;color:gray'>RRID:SCR_016137)</span><span style='font-size:11.0pt;line-height:107%;color:black;text-decoration:none; text-underline:none'>(</span><span style='font-size:11.0pt;line-height:107%;color:blue'> link</span><span style='font-size:11.0pt;line-height:107%'>)</span>

      </td> </tr> </table> <span style='font-size:12.0pt;mso-bidi-font-size:11.0pt;line-height:105%; font-family:"Times New Roman",serif;mso-fareast-font-family:"Times New Roman"; color:black;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language: AR-SA'><br clear=all style='mso-special-character:line-break;page-break-before: always'> </span>

      <o:p> </o:p>

      Other Entities Detected

      <table class=TableGrid border=0 cellspacing=0 cellpadding=0 width=661 style='width:496.05pt;border-collapse:collapse;mso-yfti-tbllook:1184; mso-padding-alt:2.15pt 2.7pt 2.15pt .5pt'> <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:15.4pt'> <td width=265 valign=top style='width:198.45pt;border:solid black 1.0pt; mso-border-top-alt:1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt: 1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt:black;mso-border-style-alt: solid;padding:2.15pt 2.7pt 2.15pt .5pt;height:15.4pt'>

      Your Sentences

      </td> <td width=397 valign=top style='width:297.65pt;border:solid black 1.0pt; border-left:none;mso-border-left-alt:solid black .25pt;mso-border-top-alt: 1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:2.15pt 2.7pt 2.15pt .5pt; height:15.4pt'>

      Recognized Entity

      </td> </tr> <tr style='mso-yfti-irow:1;height:15.4pt'> <td width=661 colspan=2 valign=top style='width:496.05pt;border:solid black 1.0pt; border-top:none;mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt; mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:2.15pt 2.7pt 2.15pt .5pt; height:15.4pt'>

      Oligonucleotides

      </td> </tr> <tr style='mso-yfti-irow:2;height:40.6pt'> <td width=265 valign=top style='width:198.45pt;border:solid black 1.0pt; border-top:none;mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt; mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:2.15pt 2.7pt 2.15pt .5pt; height:40.6pt'>

      <span style='font-size:11.0pt;line-height:107%'>Forward primer</span>

      <span style='font-size:11.0pt;line-height:107%'>CCCTGTGGGTTTTACACTTAA; Reverse primer ACGATTGTGCATCAGCTGA;</span>

      </td> <td width=397 valign=bottom style='width:297.65pt;border-top:none;border-left: none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt; mso-border-top-alt:solid black 1.0pt;mso-border-left-alt:solid black .25pt; mso-border-top-alt:1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt: 1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt:black;mso-border-style-alt: solid;padding:2.15pt 2.7pt 2.15pt .5pt;height:40.6pt'>

      <span style='font-size:11.0pt;line-height:107%'>CCCTGTGGGTTTTACACTTAA</span>

      </td> </tr> <tr style='mso-yfti-irow:3;height:40.6pt'> <td width=265 valign=top style='width:198.45pt;border:solid black 1.0pt; border-top:none;mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt; mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:2.15pt 2.7pt 2.15pt .5pt; height:40.6pt'>

      <span style='font-size:11.0pt;line-height:107%'>The probe 5#-VIC-</span>

      <span style='font-size:11.0pt;line-height:107%'>CCGTCTGCGGTATGTGG</span>

      <span style='font-size:11.0pt;line-height:107%'>AAAGGTTATGG-BHQ1-3# Target 2 <span class=GramE>( N</span>):</span>

      </td> <td width=397 valign=bottom style='width:297.65pt;border-top:none;border-left: none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt; mso-border-top-alt:solid black 1.0pt;mso-border-left-alt:solid black .25pt; mso-border-top-alt:1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt: 1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt:black;mso-border-style-alt: solid;padding:2.15pt 2.7pt 2.15pt .5pt;height:40.6pt'>

      <span style='font-size:11.0pt;line-height:107%'>5#-VIC-CCGTCTGCGGTATGTGG AAAGGTTATGG-</span>

      <span style='font-size:11.0pt;line-height:107%'>BHQ1-3#</span>

      </td> </tr> <tr style='mso-yfti-irow:4;height:53.8pt'> <td width=265 valign=top style='width:198.45pt;border:solid black 1.0pt; border-top:none;mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt; mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:2.15pt 2.7pt 2.15pt .5pt; height:53.8pt'>

      <span style='font-size:11.0pt;line-height:107%'>Forward primer</span>

      <span class=GramE><span style='font-size:11.0pt;line-height: 107%'>GGGGAACTTCTCCTGCTAGAAT;</span></span>

      <span style='font-size:11.0pt;line-height:107%'>Reverse primer</span>

      <span style='font-size:11.0pt;line-height:107%'>CAGACATTTTGCTCTCAAGCTG;</span>

      </td> <td width=397 valign=bottom style='width:297.65pt;border-top:none;border-left: none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt; mso-border-top-alt:solid black 1.0pt;mso-border-left-alt:solid black .25pt; mso-border-top-alt:1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt: 1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt:black;mso-border-style-alt: solid;padding:2.15pt 2.7pt 2.15pt .5pt;height:53.8pt'>

      <span style='font-size:11.0pt;line-height:107%'>GGGGAACTTCTCCTGCTAGAAT</span>

      </td> </tr> <tr style='mso-yfti-irow:5;mso-yfti-lastrow:yes;height:40.6pt'> <td width=265 valign=top style='width:198.45pt;border:solid black 1.0pt; border-top:none;mso-border-top-alt:solid black 1.0pt;mso-border-top-alt:1.0pt; mso-border-left-alt:.25pt;mso-border-bottom-alt:1.0pt;mso-border-right-alt: .25pt;mso-border-color-alt:black;mso-border-style-alt:solid;padding:2.15pt 2.7pt 2.15pt .5pt; height:40.6pt'>

      <span style='font-size:11.0pt;line-height:107%'>The probe 5#-FAM-</span>

      <span style='font-size:11.0pt;line-height:107%'>TTGCTGCTGCTTGACAGATT-TAM</span>

      <span style='font-size:11.0pt;line-height:107%'>RA-3<span class=GramE># .</span></span>

      </td> <td width=397 valign=bottom style='width:297.65pt;border-top:none;border-left: none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt; mso-border-top-alt:solid black 1.0pt;mso-border-left-alt:solid black .25pt; mso-border-top-alt:1.0pt;mso-border-left-alt:.25pt;mso-border-bottom-alt: 1.0pt;mso-border-right-alt:.25pt;mso-border-color-alt:black;mso-border-style-alt: solid;padding:2.15pt 2.7pt 2.15pt .5pt;height:40.6pt'>

      <span style='font-size:11.0pt;line-height:107%'>5#-FAM- TTGCTGCTGCTTGACAGATT-TAM RA-3#</span>

      </td> </tr> </table>

      <span class=SpellE>SciScore</span> is an <u style='text-underline:black'>automated tool</u> that is designed to assist expert reviewers by finding and presenting formulaic information scattered throughout a paper in a standard, easy to digest format. <span class=SpellE>SciScore</span> is not a substitute for expert review. <span class=SpellE>SciScore</span> checks for the presence and correctness of RRIDs (research resource identifiers) in the <span class=GramE>manuscript, and</span> detects sentences that appear to be missing RRIDs. <span class=SpellE>SciScore</span> also checks to make sure that rigor criteria are addressed by authors. It does this by detecting sentences that discuss criteria such as blinding or power analysis. <span class=SpellE>SciScore</span> does not guarantee that the rigor criteria that it detects are appropriate for the <span class=GramE>particular study</span>. Instead it assists authors, editors, and reviewers by drawing attention to sections of the manuscript that contain or should contain various rigor criteria and key resources.

      <u style='text-underline: black'>Rigor Table:</u>

      In the rigor table (table 1 of this report), <span class=SpellE>SciScore</span> highlights sentences that include various elements of rigor as described by <span class=SpellE>Hackam</span> and <span class=SpellE>Redelmeier</span> in <span style='color:blue'>2006</span>, and by van der Warp and colleagues in <span style='color:blue'>2010</span>. <span class=SpellE>SciScore</span> was trained using sentences from thousands of published papers that were tagged by expert curators to indicate that the sentence described blinding (either during the experiment or during data analysis), group selection criteria such as how subjects were randomized, power analysis (statistical test), or sex as a biological variable. If a cell line is detected then <span class=SpellE>SciScore</span> ‘expects’ that cell line authentication criteria are described, a cell line is not detected this section of the table will not be visible or scored. When a criterion is expected, but a sentence that addresses the criterion is not detected by <span class=SpellE>SciScore</span>, the statement “Not Detected” is given. It is possible that a criterion is not necessary for a <span class=GramE>particular manuscript</span> or that <span class=SpellE>SciScore</span>, an automated tool, makes a mistake. If <span class=SpellE>SciScore</span> makes substantial mistakes with your manuscript, please <span style='color: blue'>contact us </span><span style='mso-spacerun:yes'> </span>to help us learn from our mistakes. Please see the <span style='color:blue'>FAQ </span><span style='mso-spacerun:yes'> </span>for more details.

      <u style='text-underline: black'>Scoring for Rigor Table (total 5 points):</u>

      The rigor table makes up 5 points of the total score. Those five points are split evenly among the expected rigor criteria, each criterion being worth five divided by the number of rows in the table points. Scores are rounded to the nearest whole number. For each sentence that describes an expected rigor criterion, such as blinding, <span class=SpellE>SciScore</span> adds the fractional number of points for that criterion, and if it is unable to find a statement on blinding then this section is labeled "Not Detected" and receives a score of 0. To improve detection, please make sure that your language is clear and written in standard English.

      <u style='text-underline: black'>Key Resources Table</u>

      The key resources table (table 2 of this report), contains two types of things that are detected automatically by <span class=SpellE>SciScore</span>:

      <span style='mso-bidi-font-size:12.0pt;line-height:105%'><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>  </span></span></span>RRIDs, research resource identifiers

      <span style='mso-bidi-font-size:12.0pt;line-height:105%'><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>  </span></span></span>Sentences that “should” have RRIDs

      RRIDs, are unique identifiers for reagents and other resources that largely overlap those resources that have been labeled as particularly problematic by the National Institutes of Health in recent changes to grant review criteria, please see <span style='color:blue'>"key biological resources"</span>, e.g., antibodies, cell lines and transgenic organisms. The RRID initiative is led by community repositories that provide persistent unique identifiers to their resources, such as transgenic mice, salamanders, antibodies, cell lines, plasmids and software projects such as statistical software. RRIDs are described in a primer by Bandrowski and Martone in<span style='color:blue'>2016</span>.

      RRIDs are unique numbers that resolve to a particular database record, for example the <span class=GramE>RRID:CVCL</span>_0063 resolves to this record for a cell line:

      <span style='color:blue'>https://web.expasy.org/cellosaurus/CVCL_0063</span>

      The information in that database is structured and curated by <span class=SpellE>Cellosaurus</span> staff, the authority for cell lines. If authors use this RRID then <span class=SpellE>SciScore</span> will ask the database about the number. Once an RRID is found in the database, <span class=SpellE>SciScore</span> attempts to match text in the sentence with the database record, most often it attempts to find the name of the resource, in this case HEK293T, and information about the company or catalog number to verify that authors have put the right RRID in the sentence. If a typo is made by authors, that renders the RRID not valid, the RRID column will be blank (table 3 will contain the RRID in the unresolved RRID column in red). If an RRID was submitted to the authority by authors, it often takes a week or more to become available in the resolver database, thus exercise caution in the interpretation of the <span class=SpellE>SciScore</span> report in cases of newly minted RRIDs.

      Sentences that should have RRIDs are detected by <span class=SpellE>SciScore</span>, by looking for patterns in a sentence that are <span class=GramE>similar to</span> how cell lines or antibodies are described in published papers. A sentence that describes one or more antibodies may be detected by <span class=SpellE>SciScore</span> and this will be placed into the table without a corresponding RRID. <span class=SpellE>SciScore</span> will attempt to find the name(s) and catalog numbers of the resource. In cases where the tool is relatively confident, it will suggest an RRID. The suggested RRID appears in gray with a link to the RRID website where authors must confirm that the RRID found by <span class=SpellE>SciScore</span> is the correct RRID.

      <u style='text-underline: black'>Note of caution:</u>

      Please verify all RRID suggestions, only the author can know whether suggestions are correct.

      <u style='text-underline: black'>Scoring for Resources Table (total 5 points):</u>

      Each resource that is detected is scored, and the total is 5 points, with scores rounded to the nearest whole number. For each RRID detected, points are awarded, but for each sentence that is detected that does not contain an RRID, points are not awarded. If <span class=SpellE>SciScore</span> detects catalog numbers or relatively unambiguous resources, partial points are awarded. For each RRID that does not resolve properly only partial points are also awarded. Therefore, the way to maximize the points from this section is to add RRIDs, and proper citations that include vendor names, catalog numbers, lot and version numbers into the methods section of the manuscript.

      <u style='text-underline: black'>Incorrect sentences:</u>

      <span class=SpellE>SciScore</span> is a text analysis tool, and it is therefore susceptible to making two types of errors, false positives or false negatives.

      False <span class=SpellE><span class=GramE>negatives:<span style='font-weight:normal'>The</span></span></span> most common error occurs when the algorithm fails to detect a sentence that contains an antibody or another resource. False negatives generally occur either because the sentence is complex or in a less common syntax pattern. Generally simple sentences in clear standard English are simpler to process and result in few false negatives. If a truly complex sentence structure is required to describe reagents, a table may help not only <span class=SpellE>SciScore</span>, but also human readers. If an RRID is detected in a sentence, <span class=SpellE>SciScore</span> will be triggered to <span class=GramE>take a look</span> at the sentence, which may have been skipped otherwise.

      False positives: This type of error includes cases where a sentence does not contain an antibody, but the algorithm asserts that this sentence does have an antibody. If many resources are used and all have RRIDs, a single false positive will not reduce the score substantially. But if only 1-2 resources are used, then a false positive can reduce your <span class=SpellE>SciScore</span> needlessly. False positives are most often seen in the tools portion of table 2, as the algorithm detects company names, where it should not. We try to minimize these false positives using several strategies. If this impacts your score, please contact our team (http:// sciscore.com) and include the sentence where <span class=SpellE>SciScore</span> made the error. While we can't fix the score, we can learn from our mistakes.

      </div> </body>

      </html>

  26. Feb 2020
  27. Jan 2020
    1. In 2013 to 2014, Nature made a significant push with authors to address rigor criteria. We plotted the average SciScore along with its components over this period (Fig 3) and found that the average score rose by nearly 2 points over just a few years.

      This is what progress on reproducibility looks like.

    1. The same is true, to a lesser extent, for notes a tone apart, so any consecutive notes from a scale will clash if they are played at the same time. For this reason, a chord made up of the notes A, B, and C, for example, would sound very anguished indeed, as the B would clash with both the A and the C. This sort of chord would not be of much use in accompanying a melody, but it would be right at home in something very tense like “The Devil’s Staircase.

    1. Single quotes return text strings.  Double quotes return (if you can really think of them as “returning” anything) identifiers, but with the case preserved.
  28. Dec 2019
    1. permissions

      cf https://github.com/FrankensteinVariorum/fv-data/issues/20:

      "All annotations belong to one group. They cannot currently be moved to another group after creation.

      Annotations have a boolean flag indicating whether they are visible only to the creator or shared with other members of the group."

      The permissions structure in API responses exists only for backwards compatibility, but you can't actually make use of the full flexibility implied by it.

  29. Nov 2019
    1. Search for annotations

      If you are searching a private group you will need to make an authenticated API call using a token representing a member of the group.

      The https://h.readthedocs.io/en/latest/api-reference/v2/#section/Authentication/ApiKey method is the easiest and most popular way for standalone API-based scripts to authenticate.

      To generate a token, log in to Hypothesis, go to https://hypothes.is/account/developer, click the button, and copy the token.

      To use it in a REST API call, add the header:

      Authorization: Bearer {your token}

      An example in JavaScript: https://github.com/judell/hlib/blob/master/hlib.ts#L480

      In Python: https://github.com/judell/Hypothesis/blob/master/hypothesis.py#L143

    1. If the final system is completely different than the prototype, users may be confused about how it operates.

      That's one reason not to invest in design polish. An ugly-but-functional prototype doesn't pretend to be a polished product or invite confusion with it.

    1. Regardless of the method you use, prototyping is no longer just a nice-to-have. Aligning a multi-disciplined team and ensuring that everyone comes away with a completely clear picture of the intended interaction design is key to successful product development, and building experiences that customers will ultimately love.
  30. Oct 2019