1,047 research outputs found

    Towards maintainer script modernization in FOSS distributions

    Get PDF
    Free and Open Source Software (FOSS) distributions are complex software systems, made of thousands packages that evolve rapidly, independently, and without centralized coordination. During packages upgrades, corner case failures can be encountered and are hard to deal with, especially when they are due to misbehaving maintainer scripts: executable code snippets used to finalize package configuration. In this paper we report a software modernization experience, the process of representing existing legacy systems in terms of models, applied to FOSS distributions. We present a process to define meta-models that enable dealing with upgrade failures and help rolling back from them, taking into account maintainer scripts. The process has been applied to widely used FOSS distributions and we report about such experiences

    Using prototyping to choose a bioinformatics workflow management system

    Get PDF
    Workflow management systems represent, manage, and execute multistep computational analyses and offer many benefits to bioinformaticians. They provide a common language for describing analysis workflows, contributing to reproducibility and to building libraries of reusable components. They can support both incremental build and re-entrancy-the ability to selectively re-execute parts of a workflow in the presence of additional inputs or changes in configuration and to resume execution from where a workflow previously stopped. Many workflow management systems enhance portability by supporting the use of containers, high-performance computing (HPC) systems, and clouds. Most importantly, workflow management systems allow bioinformaticians to delegate how their workflows are run to the workflow management system and its developers. This frees the bioinformaticians to focus on what these workflows should do, on their data analyses, and on their science. RiboViz is a package to extract biological insight from ribosome profiling data to help advance understanding of protein synthesis. At the heart of RiboViz is an analysis workflow, implemented in a Python script. To conform to best practices for scientific computing which recommend the use of build tools to automate workflows and to reuse code instead of rewriting it, the authors reimplemented this workflow within a workflow management system. To select a workflow management system, a rapid survey of available systems was undertaken, and candidates were shortlisted: Snakemake, cwltool, Toil, and Nextflow. Each candidate was evaluated by quickly prototyping a subset of the RiboViz workflow, and Nextflow was chosen. The selection process took 10 person-days, a small cost for the assurance that Nextflow satisfied the authors' requirements. The use of prototyping can offer a low-cost way of making a more informed selection of software to use within projects, rather than relying solely upon reviews and recommendations by others

    Effect of migration, carrying capacity, and fecundity on the formation of clinal patterns during range expansions.

    Get PDF
    Range expansions, empirically and in simulations, lead to clinal patterns of genetic diversity. Clines are often used as spatial markers of past migrations. This study investigated the effects of migration, growth, and carrying capacities on clinal patterns during range expansions, using forward-time simulations in Nemo. Initial results show, in the absence of prior population structure, range expansions result in a loss of diversity strongly affected by migration, growth, and carrying capacity. This loss of diversity did not persist to the final generation, corresponding to 10,000 years, indicating clinal patterns are less durable than previously assumed—challenging the utility of clinal patterns as specific markers of past migrations. Further simulations are necessary to evaluate the effects of large demographic collapses, negative selection, and non equilibrium migration upon clines. While the case study for these experiments is the peopling of Europe, these results are broadly applicable to other human colonization events

    Understanding the Imprinting Mechanism of UBE3A for Therapeutic Intervention

    Get PDF
    Human chromosome 15q11-q13 contains a cluster of imprinted genes that are associated with a number of neurological disorders that exhibit non-Mendelian patterns of inheritance, such as Angelman syndrome (AS) and Prader-Willi syndrome. Angelman syndrome is caused by the loss-of-expression of maternally inherited ubiquitin E3A protein ligase gene (UBE3A). Prader-Willi syndrome is caused by loss-of-function of paternally inherited SNORD116 snoRNAs (small nucleolar RNAs), which are expressed as part of a long polycistronic transcriptional unit (PTU) comprised of SNURF-SNRPN, additional orphan C/D box snoRNA clusters, and the UBE3A antisense transcript (UBE3A-AS). The full-length transcript of PTU, including UBE3A-AS, is only expressed in neurons causing the imprinting of paternal UBE3A. Why this occurs in only neurons remains largely unknown. Furthermore, this neuron-specific imprinting adds additional difficulty for therapeutic intervention. In this dissertation, the imprinting mechanism of UBE3A is examined in detail, while an alternative high-throughput screening (HTS) method for drug discovery in neurons is developed. A combination of bioinformatic and molecular analysis of the human and mouse PTU revealed that UBE3A-AS/Ube3a-AS is extensively processed via 5’ capping 3’polyadenyation and alternative splicing, suggesting that the antisense may have regulatory functions apart from imprinting UBE3A in neurons. Following this discovery, the transcriptional profiles and processing of mouse paternal Ube3a was investigated as literature suggested that imprinted paternal Ube3a, unlike other imprinted genes, was transcribed up to intron 4. This analysis unveiled a fourth Ube3a isoform that terminates within intron 4. Moreover, expression of this isoform correlated with Ube3a-AS expression, suggesting alternative reasons for the imprinting of Ube3a. In addition to the analysis of the imprinting of Ube3a, an alternative solution for drug discovery for central nervous system disorders was developed and validated. Here, an embryonic stem cell-derived neuronal culture system was developed for HTS and tested using the paternal Ube3a^Y FP reporter cell-line. Using a known reactivator of paternal Ube3a, Topotecan - a topoisomerase inhibitor, as a positive control a proof-of-concept study demonstrated the utility of this method for HTS drug discovery. Collectively, these results advance the field and understanding of antisense lncRNAs and provide a versatile tool for drug discovery for neurological disorders

    Optimization of supply chain processes with an ETL pipeline & data science applications

    Get PDF
    Trabalho de Projeto de Mestrado, Ciência de Dados, 2021, Universidade de Lisboa, Faculdade de CiênciasIBM defines supply Chain Management (SCM) as the management of raw components until their delivery as a final product to the consumer[11]. When a construction company takes over the SCM, it needs to handle various materials and sizes, including procurement for the best supplier, logistics, and storage in the local warehouse for later distribution into construction sites. Enterprise Resource Planning (ERP) software facilitates data management in the SCM. They provide a GUI where collaborators can interact with a database adapted to OLTP tasks such as information retrieval, requisitions for new materials, and inventory management. With the growth of any industry, the need for analytical applications grows. However, it is challenging to provide enough compute resources for the operational and analytical tasks while not compromising access to the data. To overcome this problem, several services in the cloud can provide new data working environments. For example, cloud providers have data lakes, databases, serverless code execution platforms, virtual machines and machine learning platforms that enable developers to build their own adapted infrastructure and analytical applications. Mota¬Engil has been the subject of this project, a multi¬national construction company with supply chain management happening in and out of 20 countries. Their ERP software is SAP S/4HANA and is hosted on ¬premises. However, at the moment, there is no central analytics¬ dedicated database. To increase its development opportunities, I created an ETL pipeline that collects data from a local file system and uploads it into the cloud. Initially, all the data is extracted to Azure Data Lake Storage, it is transformed using Azure Functions and loaded into a new Azure SQL Database. Finally, I use Azure CLI to move data and execute the Azure cloud services to perform all of these commands. With the database constructed and populated, I developed two applications that leveraged its existence. The first idea was the creation of a monitoring BI report for warehouses with Power BI and providing a complete overview of the processes by choosing metrics with the Balanced Scorecard method[14]. The last application improves information retrieval by applying a Nearest Neighbots model with a novel distance algorithm. This model has been deployed into Azure Machine Learning for on ¬the ¬go material search and to an Azure VM for scheduled data processing, loading the results back into the database. In the end, it is possible to perform a search for construction materials through a flask developed web app by interacting with both model deployments to obtain the results.A gestão da cadeia de abastecimento é a gestão de matéria prima desde a sua fonte até ao destino como produto final[11]. Empresas de construção também estão envolvidas numa cadeia, ao ter de obter os materiais de que necessitam e realizar o abastecimento dos seus locais de construção. Nesta gestão estão incluídos materiais de variadas formas e tamanhos. Dependendo do envolvimento da empresa, elas podem fazer a procura do melhor fornecedor para o produto em necessidade; podem também tratar da logística, que se pode tornar complexa se incluir importações; e finalmente do armazenamento do produto para posterior distribuição. Para melhorar a gestão destes processos, é necessário fazer a recolha de dados. Existem vários tipos de software denominados de Enterprise Resource Planning (ERP) que ajudam na administração de dados de diferentes áreas empresariais, incluindo a de cadeia de abastecimento. Através destes tipos de software, é possível ao colaborador interagir com uma base de dados adaptada a processos de OLTP. Isto permite processos de extração de informação, criação de requisições e gestão de inventário. Com o crescimento da atividade de uma empresa, a quantidade de dados também cresce. Aplicações de analítica tornam-¬se muito úteis, pois permitem não só uma melhor monitorização desses dados, como também uma melhor optimização dos processos existentes. Mas a implementação de novas aplicações é dificultada pelo efeito de botteneck criado na fonte de dados devido à sua grande requisição. Existem serviços de cloud especializados na implementação de novos ambientes de dados. Esses serviços incluem data lakes para armazenamento de todo o tipo de informação, plataformas de execução de código em modo serverless para realizar transformações, máquinas virtuais para virtualizar ambientes computacionais locais, e plataformas de aprendizagem automática para realizar tarefas de machine learning. Estes serviços são atualizados com uma periodicidade muito frequente, incluindo novas utilidades para o cliente. É também possível interligar todos estes serviços de maneira a automatizar processos ¬ e combinando de diferentes formas, programadores conseguem desenvolver uma nova infraestrutura para suportar inovações dentro da empresa. A Mota¬Engil é o sujeito de estudo para este projeto. É um conglomerado português, líder no sétor da construção, com atividade em mais de 20 países, incluindo no continente Africano e Americano. A cadeia de abastecimento inclui logística intercontinental entre continentes e gestão de múltiplos armazéns em mais de 20 países. O software de gestão empresarial é o SAP S/4HANA e é hospedado localmente nos escritórios da empresa. De momento não existe nenhuma base de dados dedicada a aplicações de analítica. De maneira a aumentar as oportunidades de inovação dentro da empresa, criei um canal de ETL que retira dados de um sistema de ficheiros local e exporta tudo para a Azure cloud. Inicialmente, os ficheiros são exportados para o Azure Data Lake Storage (ADLS), encontrando-¬se em múltiplos formatos, com erros na formatação das colunas e inconsistências. Para standardizar os dados, utilizo Azure Functions que transforma os dados e converte para formato CSV. No final, é feito o carregamento dos ficheiros CSV para o Azure SQL Database usando comandos T¬SQL. Para comunicar com todos os serviços de cloud, utilizo comandos do Azure CLI que permitiram automatização em scripts de linguagem Bash. Com a conclusão do ETL e da construção do esquema de dados, obteve¬se uma base de dados completamente disponível e adaptada a processamento analítico. Apoiando a estrutura neste resultado, foi possível construir duas aplicações de data science que melhoram partes do processo da cadeia de abastecimento dentro da empresa. A primeira ideia a ser implementada foi a criação de um report de BI para os armazéns em África. Até 2020, os relatórios eram criados em ficheiros Excel, e os dados eram agregados para formar métricas de valor de estoque por mês, valor de estoque consumido e rotação. Para melhorar a monitorização dos armazéns, criei um novo relatório em Microsoft Power BI que fornece novos indicadores dos processos de armazém com base no método do Balanced Scorecard[14]. O relatório em Power BI importa os dados diretamente do Azure SQL Database com recurso a views especializadas ao seu uso no relatório. O relatório contém três páginas, incluíndo duas para monitorizar o estoque em armazém, e outra página dedicada ao consumo de materiais. Também existem utilidades que ajudam colaboradores a explorar dados e outras que facilitam a compreensão do relatório. A segunda e última aplicação tenta melhorar a extração de informação sobre materiais. A tarefa a ser optimizada encontra¬se no início da cadeia de abastecimento. Utilizadores ao criarem uma nova requisição, precisam especificar os materiais em necessidade. O SAP permite procurar com recurso a wildcard (*), mas nao permite uma procura aproximada, ou seja, não retorna materiais quando é feita uma procura contendo pequenas divergências do material existente na base de dados (como erros de ortografia). Para melhorar este processo de extração, decidi utilizar um modelo de NearestNeighbors (NN) em conjunto com um novo algoritmo de distância customizado ao problema em análise. O algoritmo de distância inclui o calculo da distância de Levenshtein[18], e generalizada a descrições de materiais. Num estudo de optimização de processamento com várias implementações do modelo de NN, concluiu¬-se que é mais eficiente realizar o cálculo de distâncias em paralelo e adaptado, antes de fornecer como argumento ao modelo de NN. O modelo foi introduzido no Azure Machine Learning e criado um endpoint com o qual é possível realizar pedidos para obter os materiais mais próximos. O modelo também foi incluído no aprovisionamento de uma máquina virtual para processamento periódico de código. Para fazer este aprovisionamento, foi utilizado Ansible, uma ferramenta de automatização para inicializar aplicações e configurado o processamento periódico através de um novo cronjob na máquina virtual. No final do processamento, é criada uma nova tabela na base de dados com clusters de materiais. Para concluir este projeto, criei uma aplicação em flask que obtém os resultados dos dois serviços. Com o endpoint do Azure Machine Learning, a aplicação obtém os resultados mais próximos de uma consulta feita na barra de procura. Ao realizar esta procura, é calculado a distância entre a consulta e as descrições existentes na base de dados, retornando os dez resultados mais próximos. Com os resultados do processamento periódico na base de dados, utilizo ferramentas crio uma consulta especializada que retorna os resultados mais próximos do material pretendido. A última consulta acaba por ser mais rápida para obter resultados porque os dados já estão processados na base de dados, ao contrário do modelo em Azure Machine Learning que tem de processar os resultados sempre que uma consulta é feita. Ao desenvolver os algoritmos e infraestrutura para estas aplicações, também disponibilizei ferramentas que facilitam futuras implementações. Por exemplo, a máquina virtual de processamento periódico pode realizar mais tarefas, incluindo o próprio processo de ETL. E o modelo de procura também poderá ser utilizado para outras tarefas de information retrieval, como a procura de peças por número de peça

    The Evolution of the Linux Build System

    Get PDF
    Software evolution entails more than just redesigning and reimplementing functionality of, fixing bugs in, or adding new features to source code. These evolutionary forces induce similar changes on the software's build system too, with far-reaching consequences on both overall developer productivity as well as software configurability. In this paper we take a look at this phenomenon in the Linux kernel from its inception up until present day. We do this by analysing the kernel's build traces with MAKAO, our re(verse)-engineering framework for build systems. This helps us in detecting interesting idioms and patterns in the dynamic build behaviour. Finding a good balance between obtaining a fast, correct build system and migrating in a stepwise fashion turns out to be the general theme throughout the evolution of the Linux build system
    corecore