Connect with us

Big Data

Adventures in MLOps with Github Actions, Iterative.ai, Label Studio and NBDEV

Published

on

Adventures in MLOps with Github Actions, Iterative.ai, Label Studio and NBDEV

This article documents the authors’ experience building their custom MLOps approach.


By Aaron Soellinger & Will Kunz

When designing the MLOps stack for our project, we needed a solution that allowed for a high degree of customization and flexibility to evolve as our experimentation dictated. We considered large platforms that encompassed many functions, but found it limiting in some key areas. Ultimately we decided on an approach where separate specialized tools were implemented for labeling, data versioning, and continuous integration. This article documents our experience building this custom MLOps approach.



Photo by Finding Dan | Dan Grinwis on Unsplash

NBDEV

 
 



(Taken from https://github.com/fastai/nbdev)

 

The classic problem using Jupyter for development was moving from prototype to production required copy/pasting code from a notebook to a python module. NBDEV automates the transition between notebook and module, thus enabling the Jupyter notebook to be an official part of a production pipeline. NBDEV allows the developer to state which module a notebook should create, which notebook cells to push to the module and which notebook cells are tests. A key capability of NBDEV is its approach to testing within the notebooks, and the NBDEV template even provides a base Github Action to implement testing in the CI/CD framework. The resulting Python module requires no editing by the developer, and can easily be integrated into other notebooks or the project at large using built-in python import functionality.

Iterative.ai: DVC/CML

 
 



(Taken from https://iterative.ai/)

 

The files used in machine learning pipelines are often large archives of binary/compressed files, which are not accessible or cost prohibitive for existing version control solutions like git. DVC solves data versioning by representing large datasets as a hash of the file contents which enables DVC to track changes. It works similar to git (e.g. dvc adddvc push). When you run dvc add on your dataset, it gets added to the .gitignore and tracked for changes by dvc. CML is a project that provides functionality for publishing model artifacts from Github Actions workflows into comments attached Github Issues, Pull Requests, etc… That is important because it helps us start to fill in the gaps in the Pull Requests accounting for training data changes and resulting model accuracy and effectiveness.

Github Actions

 
 



(Taken from https://github.com/features/actions)

 

We want automated code testing, including building models in the automated testing pipeline. Github Actions is in competition with CircleCI, Travis, Jenkins, which is to automate testing around code pushes, commits, pull requests, etc. Since we’re already using Github to host our repos, we avoid another 3rd party app by using Actions. In this project we need to use Github self-hosted runners to run jobs on an on-prem GPU cluster.

Label Studio

 
 



(Taken from https://labelstud.io/)

 

We did a deep dive into how we’re using Label Studio found here. Label Studio is a solution for labeling data. It works well, and is flexible to run in a variety of environments.

Why use them together?

 
 
The setup is designed to deploy models faster. That means, more data scientists working harmoniously in parallel, transparency in the repository and faster onboarding time for new people. The goal is to standardize the types of activities that data scientists need to do in project and provide clear instructions for them.

The following is a list of tasks we want to streamline with this system design:

  1. Automate the ingest from Label Studio and provide a single point for ingesting that into the model training and evaluation activities.
  2. Automated testing on the data pipeline code, that is unit testing and re-deployment of containers used by the process.
  3. Automated testing on the model code, that is unit testing and re-deployment of containers used by the process.
  4. Enable automated testing to include model re-training and evaluation criteria. When the model code changes, train a model with the new code and compare it to the existing incumbent model.
  5. Trigger model retraining when training data changes.

Below is the description of pipeline for each task.

Traditional CI/CD Pipeline

 
 
This pipeline implements automated testing feedback for each pull request that includes evaluation of syntax, unit, regression and integration tests. The outcome of this process is a functionally tested docker image to our private repository. This process maximizes the likelihood that the latest best code is in a fully tested image available in the repository for downstream tasks. Here’s how the developer lifecycle works in the context of a new feature:



Here we show how the workflow function for while editing the code. Using NBDEV enables us to work directly from the Jupyter notebooks including writing the tests directly in the notebook. NBDEV requires that all the cells in the notebooks run without exception (unless the cell is flagged not to run). (Image by Author)

Data pipeline

 
 
Label Studio currently lacks event hooks enabling updates on-changes to the label data stored. So we take a cron triggered approach, updating the dataset every hour. Additionally, while the label studio training dataset is small enough, the updates can be done as part of the training pipeline as well. We have the ability to trigger the data pipeline refresh on demand using the Github Actions interface.



The data pipeline feeds from Label Studio, and persists every version of the dataset and relevant inputs to the DVC cache stored in AWS S3. (Image by Author)

Model Pipeline

 
 
The modeling pipeline integrates model training into the CI/CD pipeline for the repository. This enables each pull request to evaluate the syntax, unit, integration and regression tests configured on the codebase, but also can provide feedback that includes evaluating the new resulting model



The workflow in this case, run the model training experiment specified in the configuration file (model_params.yaml) and update the model artifact (best-model.pth) (Image by Author)

Benchmark Evaluation Pipeline

 
 
The benchmarking pipeline forms an “official submission” process to ensure all modeling activities are measured against the metrics of the project.



The newly trained model in best-model.pth is evaluated against the benchmark dataset and the results are tagged with the latest commit hash and persisted in AWS S3. (Image by Author)

Workflow

 
 
Here is the DAG definition file that is used by DVC. It captures the workflow steps and their inputs, and allows for reproducibility across users and machines.

stages: labelstudio_export_trad: cmd: python pipelines/1_labelstudio_export.py --config_fp pipelines/traditional_pipeline.yaml --ls_token *** --proj_root "." params: - pipelines/traditional_pipeline.yaml: - src.host - src.out_fp - src.proj_id dataset_create_trad: cmd: python pipelines/2_labelstudio_todataset.py --config_fp pipelines/create_traditional.yaml --proj_root "." deps: - data/raw_labels/traditional.json params: - pipelines/create_traditional.yaml: - dataset.bmdata_fp - dataset.labels_map - dataset.out_fp - dataset.rawdata_dir train_model_trad: cmd: python pipelines/3_train_model.py --config_fp pipelines/model_params.yaml --proj_root "." deps: - data/traditional_labeling params: - pipelines/model_params.yaml: - dataloader.bs - dataloader.size - dataloader.train_fp - dataloader.valid_fp - learner.backbone - learner.data_dir - learner.in_checkpoint - learner.metrics - learner.n_out - learner.wandb_project_name - train.cycles labelstudio_export_bench: cmd: python pipelines/1_labelstudio_export.py --config_fp pipelines/benchmark_pipeline.yaml --ls_token *** --proj_root "." params: - pipelines/benchmark_pipeline.yaml: - src.host - src.out_fp - src.proj_id dataset_create_bench: cmd: python pipelines/2_labelstudio_todataset.py --config_fp pipelines/create_benchmark.yaml --proj_root "." deps: - data/raw_labels/benchmark.json params: - pipelines/create_benchmark.yaml: - dataset.bmdata_fp - dataset.labels_map - dataset.out_fp - dataset.rawdata_dir eval_model_trad: cmd: python pipelines/4_eval_model.py --config_fp pipelines/bench_eval.yaml --proj_root "." deps: - data/models/best-model.pth params: - pipelines/bench_eval.yaml: - eval.bench_fp - eval.label_config - eval.metrics_fp - eval.model_conf - eval.overlay_dir

Findings

 
 

  1. The Github Actions workflow cron trigger is not extremely reliable. It does not guarantee timing.
  2. DVC does not work in a clear manner inside a Github Action workflow that is triggered on push. It will alter the trackers that are source controlled and when that is committed it will create another Github action.
  3. The Github Actions orchestration as a mechanism to run model requires a self-hosted runner to use a GPU. This means connecting to a GPU instance in the cloud or on-prem, and this presents issues with access control. For example, we can’t open source the exact repo without removing that self-hosted runner configuration from the repo or else random people would be able to run workloads on our training server by pushing code to the project.
  4. NBDEV built-in workflow is testing the code in the wrong place. It’s testing the notebook instead of the compiled package. On the one hand, it’s nice to be able to say that the “tests can be written right into the notebook”. On the other hand, testing the notebooks directly tests leaves open the possibility that the code package created by NBDEV fails even though the notebook ran. What we need is the ability to test the NBDEV-compiled package directly
  5. NBDEV doesn’t interoperate with “traditional” Python development in the sense that NBDEV is a one-way street. It simply allows the project to be developed in the interactive Jupyter notebook style. It makes it impossible to develop the Python modules directly. If at any point, the project wants to be converted to “traditional” Python development testing would need to be accomplished another way.
  6. In the beginning, we were using Weights & Biases as our experiment tracking dashboard, however there were issues deploying it into a Github Action. What we can say is that the user experience for implementing wandb hit its first hiccup in the Action Workflow. Removing Weights & Biases resolved the problem straight away. Before that, wandb stood out as the best user experience in MLOps.

Conclusions

 
 
Ultimately, it took one week to complete the implementation of these tools for managing our code with Github Actions, Iterative.ai tools (DVC & CML) and NBDEV. This provides us with the following capabilities:

  1. Work from Jupyter notebooks as the system of record for the code. We like Jupyter. The main use case it accomplishes is to enable us to work directly on any hardware we can SSH into by hosting a Jupyter server there and forwarding it to a desktop. To be clear, we would be doing this even if we were not using NBDev because the alternative is using Vim or some such tool that we don’t like as much. Past experiments to connect to remote servers with VS Code or Pycharm failed. So it’s Jupyter.
  2. Testing the code, and testing the model it creates. Now as part of the CI/CD pipeline we can evaluate whether or not the model resulting from the changes to the repo make the model better, worse or stay the same. This is all available in the pull request before it is merged into main.
  3. Using Github Actions server as an orchestrator for training runs begins to allow multiple data scientists to work simultaneously in a more clear manner. Going forward, we will see the limitations of this setup for orchestrating the collaborative data science process.

 
Aaron Soellinger has formerly worked as a data scientist and software engineer solving problems in finance, predictive maintenance and sports. He currently works as a machine learning systems consultant with Hoplabs working on a multi-camera computer vision application.

Will Kunz is a back end software developer, bringing a can-do attitude and dogged determination to challenges. It doesn’t matter if it’s tracking down an elusive bug or adapting quickly to a new technology. If there’s a solution, Will wants to find it.

Original. Reposted with permission.

Related:


PlatoAi. Web3 Reimagined. Data Intelligence Amplified.
Click here to access.

Source: https://www.kdnuggets.com/2021/09/adventures-mlops-github-actions-iterative-ai-label-studio-and-nbdev.html

Big Data

Proximity labeling: an enzymatic tool for spatial biology

Published

on

In this Forum, we highlight how cutting-edge, proximity-dependent, enzymatic labeling tools, aided by sequencing technology developments, have enabled the extraction of spatial information of proteomes, transcriptomes, genome organization, and cellular networks. We also discuss the potential applications of proximity labeling in the unexplored field of spatial biology in live systems.

PlatoAi. Web3 Reimagined. Data Intelligence Amplified.
Click here to access.

Source: https://www.cell.com/trends/biotechnology/fulltext/S0167-7799(21)00211-0?rss=yes

Continue Reading

Big Data

Synthetic biology applications of the yeast mating signal pathway

Published

on

Glossary

Central carbon metabolism (CCM)

as the main source of energy, CCM oxidizes carbon through glycolysis, the pentose phosphate pathway, and the tricarboxylic acid cycle.

Chassis

a cell host or an organism for the production of biochemicals such as enzymes by introducing synthetic modules or devices into the cell.

Circuit

an assembly of biological parts that enables cells to perform logical functions, such as genetic switches, oscillators, and logic gates.

Convolutional neural network

a class of artificial neural networks with multiple building blocks that automatically and adaptively learn spatial hierarchies of features through back-propagation.

Clustered regularly interspaced short palindromic repeats (CRISPR)

a genome-editing tool in which CRISPR-associated nuclease 9 (Cas9)–guide RNA (gRNA) complexes recognize a protospacer adjacent motif through base-pairing and then cleave the target DNA,

CRISPR activation or interference (CRISPRa/i)

a tool that uses dead Cas protein and gRNA to activate or repress genes, resulting in gene upregulation or downregulation, respectively.

Cubic ternary complex model

an equilibrium model that describes the interactions between receptor and ligand. This model simulates the interactions of G proteins and receptors in both their active and inactive conformations.

G proteins

heterotrimeric G protein complexes are composed of α, β and γ subunits. Replacement of GDP by GTP in Gα causes a conformational change that dissociates the Gβγ subunits, leading to the activation of downstream signaling.

G protein-coupled receptor (GPCR)

a generic class of versatile, seven transmembrane-domain proteins that regulate a diverse array of intracellular signaling cascades in response to hormones, neurotransmitters, and other stimuli.

Karyogamy

a cascade of molecular events that finally lead to fusion of the nuclei and the formation of diploid cells.

Metabolic engineering

a new scientific field that combines multi-gene recombination technology with metabolic regulation and biochemical engineering to overproduce desired products.

Mitogen-activated protein kinases (MAPKs)

a family of serine/threonine kinases that convert extracellular signals into a diverse range of cellular responses.

Omics

studies include genomics, transcriptomics, proteomics, and metabolomics that characterize and quantify pools of biological molecules, and together give rise to the field of integrative genetics.

Oscillator

a genetic circuit where oscillation is generated by the inhibition and activation of transcriptional/translational feedback loops.

Pheromone-response element (PRE)

a cis element that is present in multiple copies in the promoters of a variety of pheromone-responsive genes; PREs interact with Ste12 to initiate the transcription of pheromone-induced genes.

Quorum sensing

a cell density-dependent phenomenon in which cells adapt their behavior by synthesizing, secreting, perceiving, and reacting to small diffusible signaling molecules termed autoinducers.

Scaffold protein

proteins that recruit other proteins to form a functional unit, thus enhancing signaling efficiency and fidelity.

Ste5ΔN-CTM

a Ste5 mutant that lacks the Gβγ-binding site because its N-terminus has been truncated; Ste5ΔN-CTM is no longer recruited to the plasma membrane following pheromone treatment.

PlatoAi. Web3 Reimagined. Data Intelligence Amplified.
Click here to access.

Source: https://www.cell.com/trends/biotechnology/fulltext/S0167-7799(21)00210-9?rss=yes

Continue Reading

Big Data

Biotechnology of functional proteins and peptides for hair cosmetic formulations

Published

on

  • New cosmetic science.

    Elsevier, 1997

    • Bouillon C.
    • Wilkinson J.

    The science of hair care.

    CRC Press, 2005

    • Pierce J.S.
    • et al.

    Characterization of formaldehyde exposure resulting from the use of four professional hair straightening products.

    J. Occup. Environ. Hyg. 2011; 8: 686-699

    • Ahmed M.B.
    • et al.

    Neurotoxic effect of lead on rats: relationship to apoptosis.

    Int. J. Health Sci. (Qassim). 2013; 7: 192-199

    • Martins M.
    • et al.

    α-Chymotrypsin catalysed oligopeptide synthesis for hair modelling.

    J. Clean. Prod. 2019; 237117743

    • Tinoco A.
    • et al.

    Fusion proteins with chromogenic and keratin binding modules.

    Sci. Rep. 2019; 9: 14044

    • Cruz C.F.
    • et al.

    Peptide–protein interactions within human hair keratins.

    Int. J. Biol. Macromol. 2017; 101: 805-814

    • Sajna K.V.
    • et al.

    White biotechnology in cosmetics.

    in: Pandey A. Industrial biorefineries and white biotechnology. Elsevier, 2015: 607-652

  • Role of protein in cosmetics.

    Clin. Dermatol. 2008; 26: 321-325

  • Yoshioka, I. and Kamimura, Y. Seiwa Kasei Co. Ltd. Keratin hydrolyzate useful as hair fixatives, US4279996.

  • Fahnestock, S.R. and Schultz, T.M. EI Du Pont de Nemours and Company. Water-soluble silk proteins compositions for skin care, hair care or hair coloring, US7060260B2.

  • Detert, M. et al. Beiersdorf AG. Hair styling preparations with special protein hydrolysates, EP1878423A2.

    • Barba C.
    • et al.

    Restoring important hair properties with wool keratin proteins and peptides.

    Fibers Polym. 2010; 11: 1055-1061

    • Fernandes M.M.
    • et al.

    Keratin-based peptide: biological evaluation and strengthening properties on relaxed hair.

    Int. J. Cosmet. Sci. 2012; : 338-346

    • Ribeiro A.
    • et al.

    Potential of human γD-crystallin for hair damage repair: insights into the mechanical properties and biocompatibility.

    Int. J. Cosmet. Sci. 2013; 35: 458-466

  • Ross, V.M. Further preparations of silk proteins, seed oils, monosaccharide, natural botanicals and polysaccharide mixtures in compositions for hair care or hair repair, and skin care and topical treatments, US9023404B2.

    • Cruz C.F.
    • et al.

    Effect of a peptide in cosmetic formulations for hair volume control.

    Int. J. Cosmet. Sci. 2017; 39: 600-609

  • Edman, W.W. and Klemm, E.J. Shiseido Co. Ltd. Permanent waving compositions, US4798722.

  • Lang, G. et al. LOreal SA. Cosmetic temporary coloring compositions containing protein derivatives, US5192332.

  • Tomita, M. et al. Iwase Cosfa Co. Ltd, Morinaga Milk Industry Co. Ltd. Milk-protein hydrolyzates and compositions for use as hair and skin treating agent, US5314783.

  • Igarashi, S. et al. Kanebo Ltd. Hair coloring composition comprising anti-hair antibodies immobilized on coloring materials, and hair coloring methods, US5597386.

  • Oshika, M. and Naito, S. Kao Corp. Acylated silk proteins for hair care, US5747015.

  • Shah, S.M. Johnson and Johnson Consumer Inc. Heat-safe hair preparation and method of using same, US6156295.

  • Cannell, D. and Nguyen, N. LOreal SA. Composition for treating hair against chemical and photo damage, US6013250.

  • Schultz, T.M. and Tran, H.T. EI Du Pont de Nemours and Company. Modified soy proteins in personal care compositions, US2005/0008604A1.

    • Isnard M.D.
    • et al.

    Development of hair care formulations based on natural ingredients.

    Int. J. Phytocosmet. Nat. Ingred. 2019; 6: 9

    • Tinoco A.
    • et al.

    Keratin-based particles for protection and restoration of hair properties.

    Int. J. Cosmet. Sci. 2018; 40: 408-419

    • Tinoco A.
    • et al.

    Keratin:Zein particles as vehicles for fragrance release on hair.

    Ind. Crop. Prod. 2021; 159113067

    • Camargo Jr., F.B.
    • et al.

    Prevention of chemically induced hair damage by means of treatment based on proteins and polysaccharides.

    J. Cosmet. Dermatol. 2021; ()

    • Malinauskyte E.
    • et al.

    Penetration of different molecular weight hydrolysed keratins into hair fibres and their effects on the physical properties of textured hair.

    Int. J. Cosmet. Sci. 2021; 43: 26-37

    • Cavallaro G.
    • et al.

    Halloysite/keratin nanocomposite for human hair photoprotection coating.

    ACS Appl. Mater. Interfaces. 2020; 12: 24348-24362

    • Baus R.A.
    • et al.

    Strategies for improved hair binding: keratin fractions and the impact of cationic substructures.

    Int. J. Biol. Macromol. 2020; 160: 201-211

  • Cetintas, S. New hair botox material and the method to apply this material to hair, US2020/0197287A1.

    • Basit A.
    • et al.

    Health improvement of human hair and their reshaping using recombinant keratin K31.

    Biotechnol. Rep. 2018; 20e00288

    • Schulze Zur Wiesche E.
    • et al.

    Prevention of hair surface aging.

    J. Cosmet. Sci. 2011; 62: 237-249

    • Daithankar A.V.
    • et al.

    Moisturizing efficiency of silk protein hydrolysate: silk fibroin.

    Indian J. Biotechnol. 2005; 4: 115-121

    • Fernandes M.
    • Cavaco-Paulo A.

    Protein disulphide isomerase-mediated grafting of cysteine-containing peptides onto over-bleached hair.

    Biocatal. Biotransform. 2012; 30: 10-19

    • Tinoco A.
    • et al.

    Crystallin fusion proteins improve the thermal properties of hair.

    Front. Bioeng. Biotechnol. 2019; 7: 298

    • Wistow G.
    • et al.

    Myxococcus xanthus spore coat protein S may have a similar structure to vertebrate lens βγ-crystallins.

    Nature. 1985; 315: 771-773

  • Azizova, M. et al. Henkel IP and Holding GmbH. Hair treatment composition with naturally-derived peptide identical to human hair, US9505820B2.

    • Cruz C.F.
    • et al.

    Changing the shape of hair with keratin peptides.

    RSC Adv. 2017; 7: 51581-51592

  • Hawkins, G. et al. ELC Management LLC. Compositions and methods for permanent straightening of hair, US9011828B2.

  • Dimotakis, E. et al. LOreal SA. Hair cosmetic and styling compositions based on maleic acid copolymers and polyamines, US2013/0309190A1.

    • Song K.
    • et al.

    Effects of chemical structures of polycarboxylic acids on molecular and performance manipulation of hair keratin Kaili.

    RSC Adv. 2016; 6: 58594-58603

    • Qin X.
    • et al.

    Enzyme-triggered hydrogelation via self-assembly of alternating peptides.

    Chem. Commun. (Camb.). 2013; 49: 4839-4841

    • Yazawa K.
    • Numata K.

    Recent advances in chemoenzymatic peptide syntheses.

    Molecules. 2014; 19: 13755-13774

  • Savaides, A. and Tasker, R. Zotos International Inc. Formulations and methods for straightening and revitalizing hair, US2014/0261518A1.

  • Anthony, M.M. Copomon Enterprises LLC, Keratin Holdings LLC. Method of preparing a hair treatment formulation comprising nanoparticles in solution and method of hair treatment utilizing a treatment formulation comprising nanoparticles in solution, US9078818B1.

  • Chahal, S.P. et al. Croda International PLC. Protein-acrylate copolymer and hair conditioning product comprising said polymer, US9421159B2.

  • Huang, X. et al. EI Du Pont de Nemours and Company. Peptide-based conditioners and colorants for hair, skin and nails, US7220405B2.

  • Slusarewiez, P. Unilever Home and Personal Care USA. Method of coloring hair, US6773462B2.

  • Benson, R.E. et al. EI Du Pont de Nemours and Company, Affinergy LLC. Hair binding peptides and peptide-based hair reagents for personal care, US8273337B2.

  • Chung, Y.J. et al. Peptide exhibiting hair growth promoting activity and/or melanin production promoting activity and use thereof, US10344061B2.

  • Vickers, E.R. Clinical Stem Cells Pty Ltd. Peptides for hair growth, US2019/0091494A1.

    • Günay K.A.
    • et al.

    Selective peptide-mediated enhanced deposition of polymer fragrance delivery systems on human hair.

    ACS Appl. Mater. Interfaces. 2017; 9: 24238-24249

    • Bolduc C.
    • Shapiro J.

    Hair care products: waving, straightening, conditioning, and coloring.

    Clin. Dermatol. 2001; 19: 431-436

    • Dias M.F.R.G.

    Hair cosmetics: an overview.

    Int. J. Trichol. 2015; 7: 2

    • Barba C.
    • et al.

    Effect of wool keratin proteins and peptides on hair water sorption kinetics.

    J. Therm. Anal. Calorim. 2010; 102: 43-48

    • Villa A.L.V.
    • et al.

    Feather keratin hydrolysates obtained from microbial keratinases: effect on hair fiber.

    BMC Biotechnol. 2013; 13: 15

    • Mancon S.
    • et al.

    Hair conditioning effect of vegetable native protein in shampoo formulations.

    Seifen Ole Fette Wachse J. 2012; 138: 38-42

    • Wang S.
    • et al.

    Modification of wheat gluten for improvement of binding capacity with keratin in hair.

    R. Soc. Open Sci. 2018; 5171216

  • Sahib, S. and Jungman, E. Aquis Hairsciences Inc. Composition for improving hair health, US2020/0069551A1.

    • Antunes E.
    • et al.

    The effects of solvent composition on the affinity of a peptide towards hair keratin: experimental and molecular dynamics data.

    RSC Adv. 2015; 5: 12365-12371

  • Hair: its structure and response to cosmetic preparations.

    Clin. Dermatol. 1996; 14: 105-112

    • Cruz C.
    • et al.

    Human hair and the impact of cosmetic procedures: a review on cleansing and shape-modulating cosmetics.

    Cosmetics. 2016; 3: 26

    • Robbins C.R.

    Chemical composition of different hair types.

    in: Chemical and physical behavior of human hair. Springer, 2012: 105-176

    • Antunes E.
    • et al.

    Insights on the mechanical behavior of keratin fibrils.

    Int. J. Biol. Macromol. 2016; 89: 477-483

    • Kutlubay Z.
    • Serdaroglu S.

    Anatomy and physiology of hair.

    in: Hair and scalp disorders. IntechOpen, 2017: 13-27

    • Harrison S.
    • Sinclair R.

    Hair colouring, permanent styling and hair structure.

    J. Cosmet. Dermatol. 2004; 2: 180-185

    • Draelos Z.D.

    Hair care: an illustrated dermatologic handbook.

    CRC Press, 2004

    • Takada K.
    • et al.

    Influence of oxidative and/or reductive treatment on human hair (I): analysis of hair-damage after oxidative and/or reductive treatment.

    J. Oleo Sci. 2003; 52: 541-548

    • Kuzuhara A.

    Analysis of structural changes in bleached keratin fibers (black and white human hair) using Raman spectroscopy.

    Biopolymers. 2006; 81: 506-514

    • Wolfram L.J.
    • et al.

    The mechanism of hair bleaching.

    J. Soc. Cosmet. Chem. 1970; 900: 875-900

    • Bagiyan G.A.
    • et al.

    Oxidation of thiol compounds by molecular oxygen in aqueous solutions.

    Russ. Chem. Bull. 2003; 52: 1135-1141

    • Blasi-Romero A.
    • et al.

    In vitro investigation of thiol-functionalized cellulose nanofibrils as a chronic wound environment modulator.

    Polymers (Basel). 2021; 13: 249

  • PlatoAi. Web3 Reimagined. Data Intelligence Amplified.
    Click here to access.

    Source: https://www.cell.com/trends/biotechnology/fulltext/S0167-7799(21)00213-4?rss=yes

    Continue Reading

    Big Data

    VW’s 9-month electric vehicle deliveries to China more than triple

    Published

    on

    FRANKFURT (Reuters) – Volkswagen’s deliveries of battery-powered electric vehicles to China more than tripled in the first nine months of the year, the carmaker said on Friday, less than two months after it flagged the need to change its e-car strategy there.

    Deliveries of battery electric vehicles (BEV) to the world’s largest car market stood at 47,200 in the January-September period, up from 15,700 in the same period last year.

    “As planned, we significantly accelerated the BEV market ramp-up in China in the third quarter, and we are on track to meet our target for the year of delivering 80,000 to 100,000 vehicles of the ID. model family,” Christian Dahlheim, head of group sales, said.

    Volkswagen Chief Executive Herbert Diess in July said the carmaker had to change its approach to how it markets its BEVs in China after first-half deliveries stood at just 18,285.

    (Reporting by Christoph Steitz; Editing by Maria Sheahan)

    Image Credit: Reuters

    PlatoAi. Web3 Reimagined. Data Intelligence Amplified.
    Click here to access.

    Source: https://datafloq.com/read/vws-9-month-electric-vehicle-deliveries-china-triple/18644

    Continue Reading
    Esports4 days ago

    Ill Gotten Gain New World: How to Obtain the Earring

    Esports2 days ago

    The best teams in Hearthstone Mercenaries

    Esports4 days ago

    What is Bullet Stumble in Back 4 Blood?

    Esports5 days ago

    How to Unlock All Characters in Demon Slayer: The Hinokami Chronicles

    Esports4 days ago

    How to Increase Your Corporate Level in NBA 2K22 MyCareer

    Esports5 days ago

    Blizzard Removes “Greenskin” References In World Of Warcraft

    Energy4 days ago

    Dover Announces Acquisition Of LIQAL B.V., A Leading Provider Of LNG And Hydrogen Fueling Solutions

    Energy5 days ago

    USD 1.47 bn Growth in Dies and Molds Market In India from 2021 to 2025|Alfa Plast Mould and Classic Die Tools emerge as Key Contributors|17000+ Technavio Reports

    Energy5 days ago

    Quanta Services Completes the Previously Announced Acquisition of Blattner

    Esports2 days ago

    How Many Chapters are in the Demon Slayer Game?

    Blockchain5 days ago

    Choosing Flexible CRM Integration Against In-House Confusion

    Cleantech4 days ago

    U.S. Secretary Haaland Outlines Ambitious Offshore Wind Leasing Strategy

    Cannabis5 days ago

    KETAMINE: What Is It?

    Esports4 days ago

    What is the Faction Reputation cap in New World?

    Blockchain5 days ago

    TRON and APENFT partner with Decentral Games to take GameFi to the next level

    Esports4 days ago

    Ricochet Unable to Target Cronus and Controller Hacks, Activision Working on Fix

    Energy4 days ago

    Sigma Lithium Says Technology Will Be Key To Make Lithium Greener And Cheaper At Financial Times Live Commodities Summit

    Aviation4 days ago

    Ottawa eyes charging airport security with vaccine verification for travellers

    Energy5 days ago

    Navigator Approved To Proceed With Development and Construction of Heartland Greenway System in Midwest

    Energy5 days ago

    Duke Energy Foundation awards $190,000 in grants to support environmental initiatives in Indiana communities

    Trending