今日已更新 96 条资讯 | 累计 24053 条内容
关于我们

标签:#Science

找到 414 篇相关文章

AI 资讯

Integrated Biological Data Collection Platform: An Architecture for Automated Curation of Public Repositories

Introduction In contemporary research, the volume of biological data deposited in public repositories is growing exponentially. The Gene Expression Omnibus (GEO), NCBI Gene, PubMed, and UniProt accumulate thousands of new records daily, including sequences, expression profiles, scientific articles, and functional annotations. On the one hand, this scenario represents a unique opportunity for biomedical research. On the other hand, the diversity of data formats, access protocols, and metadata models creates a significant barrier: each source requires a specific collector, distinct rate-limiting strategies, and its own validation logic. Above all, the lack of standardization in data storage compromises the reproducibility of scientific studies. The need for integrated tools capable of unifying data extraction, curation, and persistence has been widely discussed. In practice, ad hoc solutions such as isolated scripts for individual repositories generate redundant work and make maintenance difficult. First and foremost, it is necessary to establish an architecture that treats data collection as a service rather than a collection of scattered artifacts. This work presents Project 1 of the Integrated Bioinformatics Platform: a containerized Biomedical Data Collector coupled with a Data Lake. Its objective is to provide a REST API capable of triggering asynchronous data collections from the four aforementioned sources, storing immutable raw data in MinIO, and persisting metadata in PostgreSQL, all while ensuring traceability and resilience. Development The system architecture is divided into three main layers. The first is the API and orchestration layer , implemented using FastAPI. Its five endpoints — POST /collections , GET /collections , GET /collections/{id} , GET /collections/{id}/download/{dataset_id} , and GET /health — expose a clean interface for initiating and monitoring collection processes. The second layer is the collector engine , composed of abstract classe

2026-06-01 原文 →
AI 资讯

The Bolted Flange Joint: Why the Bolts Carry Far More Than the Pressure

A flanged pipe joint looks simple: two raised faces, a gasket between them, a ring of bolts pulling them together. Yet the gasketed bolted flange is one of the most common sources of leaks in process plants, and the reason is almost always the same — the bolts were not tightened to the right load. Too little and the joint weeps; too much and the gasket is crushed. The number that sits between those failures is the bolt preload, and it is not the same as the pressure load. This article explains how a bolted flange actually carries internal pressure, why the bolts must be preloaded well above the pressure end force, works a concrete example, and lists the mistakes that turn a sound joint into a leaking one. Why this calculation matters Bolted flange joints appear wherever a pipe or vessel has to be opened for maintenance: pump connections, valve bodies, heat exchanger shells, instrument tappings, and reactor manways. Unlike a welded joint, a flange is meant to be taken apart and reassembled, and every reassembly depends on the fitter applying the correct bolt load. The stakes are real. A leaking flange on a hazardous service can release flammable or toxic fluid. Even a benign leak wastes product and forces an unplanned shutdown. Design codes such as ASME Section VIII Appendix 2 set out a full method for sizing flange bolts, and at its heart is a comparison: the load the bolts can supply versus the load the joint demands in two distinct conditions — seating the gasket, and holding pressure. Understand the pressure end force and you understand the floor that the bolt load must clear. The core method When the line is pressurised, internal pressure acts on the fluid inside the flange and pushes the two flanges apart. The total separating force is the hydrostatic end force , the pressure acting over the area enclosed by the gasket sealing circle: H = p * (pi / 4) * G^2 Here p is the internal pressure and G is the gasket reaction (sealing) diameter — the effective circle on

2026-06-01 原文 →
AI 资讯

Markov Chain Coin Sequence: E[HH] vs E[HTH] Explained

In This Article The Question The Intuition Trap Building the State Machine for HH Solving the System: E[HH] = 6 Building the State Machine for HTH Solving the System: E[HTH] = 10 Why Overlapping Patterns Change Everything Python Simulation: 100,000 Trials Business Application: Credit Migration & Web Ranking The Question You flip a fair coin — one with probability 1/2 of landing heads and 1/2 of landing tails — repeatedly, recording every result. What is the expected number of flips required until the sequence HH appears for the first time as consecutive results? What is the expected number of flips required until HTH appears for the first time? Both questions have the same surface structure: you want a specific consecutive pattern, and you want to know, on average, how many flips it takes to observe it. The coin is fair, the flips are independent, and the patterns are short. These seem like they should yield similar answers. They do not. HH takes exactly 6 flips on average. HTH takes exactly 10. The four-flip gap between those two answers is not a rounding artifact or a computational error — it is a precise consequence of the internal structure of each pattern, and deriving it rigorously is one of the cleanest demonstrations of absorbing Markov chain analysis you will encounter. This problem appears frequently in quantitative finance interviews — at firms like Jane Street, Citadel, and Two Sigma — precisely because it separates candidates who understand Markov structure from those who rely on heuristic reasoning. Getting the answer right, and being able to explain it, requires building a state machine, writing the system of first-step equations, and solving it algebraically. That is exactly what we will do. The Intuition Trap Before the formal derivation, it is worth examining why intuition fails here. The most common wrong answer from candidates is that both expected values should be "similar" because the patterns are comparable in length. This intuition imports th

2026-06-01 原文 →
AI 资讯

Stress Concentration Factor: Why a Small Hole Can Triple Local Stress

A crack in an aircraft window, a fracture starting at a bolt hole, a shaft that snaps at the shoulder where the diameter steps down. These failures share a cause that has nothing to do with the average load the part carries. The metal broke because a change in geometry concentrated stress into a tiny region, and that local peak — not the nominal stress — drove the crack. This article explains the stress concentration factor: what it means, where the classic value of 3.0 comes from, how to apply it, and the mistakes that make engineers underestimate the danger of an innocent-looking hole. Why this calculation matters Real parts are not smooth bars. They have holes for fasteners, fillets where sections change, keyways, grooves, threads, and shoulders. Every one of those features disturbs the flow of stress through the material. Where the lines of force have to bend around an obstacle, they crowd together, and the local stress climbs well above the value you would compute from force divided by area. The stress concentration factor, K_t, is the multiplier that captures this. It matters most for two failure modes. Under static loading of a brittle material, the peak stress can trigger fracture before the bulk of the section yields. Under cyclic loading, the concentrated stress is where fatigue cracks nucleate — and the vast majority of fatigue failures begin at a geometric discontinuity. If you size a part on nominal stress alone and ignore K_t, you have skipped the step where most failures are actually decided. The core formula The stress concentration factor is defined as a simple ratio: K_t = sigma_max / sigma_nom Here sigma_max is the true peak stress at the discontinuity and sigma_nom is the nominal stress computed from elementary mechanics. The subscript t means "theoretical" — K_t depends only on geometry and loading mode, not on the material. It comes from elasticity theory, finite element analysis, or experiment, and it assumes the material is still behaving ela

2026-05-31 原文 →
AI 资讯

nbwipers: Setup and Troubleshooting

What is nbwipers? nbwipers is a CLI tool that strips outputs and metadata from Jupyter notebooks before git commit. Written in Rust - faster than nbstripout Supports git clean filter Works with .ipynb files Why use it? Jupyter notebooks store cell outputs inside the .ipynb file (JSON). This causes problems: Noisy diffs - output changes pollute every commit Repo size - images and large outputs bloat the repo Security - sensitive data can leak in outputs (API keys, query results) The solution: strip outputs automatically on git add via a clean filter. Why not nbstripout? nbstripout is written in Python. It is slow - git status , git diff , and git add all became noticeably slow on this repo because nbstripout was invoked for every .ipynb file. The main cause is Python startup time. With 100+ notebooks, nbstripout can take 40+ seconds where a Rust-based tool takes ~1 second. Faster alternatives: Tool Language Notes nbstripout-fast Rust Up to 200x faster; no git filter install support nbwipers Rust Inspired by nbstripout-fast; adds git filter + pyproject.toml config nbwipers is essentially nbstripout-fast with better git integration. Switching to nbwipers fixed the slowness. Setup 1. Install felixgwilliams/nbwipers is now in the aqua registry as of v4.517.0 . Using aqua , add to aqua.yaml : packages : - name : felixgwilliams/nbwipers@v0.6.2 Then run: aqua install 2. Configure git filter Run once per repo (writes to .git/config ): git config filter.nbwipers.clean "nbwipers clean -" git config filter.nbwipers.smudge cat git config filter.nbwipers.required true Or edit .git/config directly: [filter "nbwipers"] clean = nbwipers clean - smudge = cat required = true required = true makes the commit fail if nbwipers is not installed. This prevents accidentally committing outputs. 3. Add .gitattributes In the repo root, add .gitattributes : *.ipynb filter=nbwipers **/.ipynb_checkpoints/*.ipynb !filter **/.virtual_documents/*.ipynb !filter The !filter lines exclude checkpoint an

2026-05-30 原文 →