pseudohaploid | pseudohaploid assembly from a partially resolved diploid | Genomics library

 by   schatzlab Perl Version: Current License: No License

kandi X-RAY | pseudohaploid Summary

kandi X-RAY | pseudohaploid Summary

pseudohaploid is a Perl library typically used in Artificial Intelligence, Genomics applications. pseudohaploid has no bugs, it has no vulnerabilities and it has low support. You can download it from GitHub.

Create pseudohaploid assemblies from a partially resolved diploid assembly. Mike Alonge, Srividya Ramakrishnan, and Michael C. Schatz. When assembling highly heterozygous genomes, the total span of the assembly is often nearly twice the expected (haploid) genome size, which is indicative of the assembler partially resolving the heterozygosity. This creates many duplicated genes and other duplicated features that can complicate annotation and comparative genomics. This repository contains code for post-processing an assembly to create a pseudo-haploid representation where pairs of contigs representing the same homologous sequence were filtered to select only one representative contig. The approach is similar to the approach used by FALCON-unzip for PacBio reads or SuperNova for 10X Genomics Linked Reads. As with those algorithms, our algorithm will not necessarily maintain the same phase throughout the assembly, and can arbitrarily alternate between homologous chromosomes at the ends of contigs. Unlike those methods, our method can be run as a stand-alone tool with any assembler. Oveview of Pseudo-haploid Genome Assembly (a) The original sample has two homologous chromosomes labeled orange and blue. (b) In the de novo assembly, homologous regions containing higher rates of heterozygosity are split into distinct sequences (orange and blue), while regions with low rates or no heterozygous bases are collapsed to a single representative sequence (black). (c) Our algorithm attempts to filter out redundant contigs from the other homologous chromosome, although the phasing of the differ contigs may be inconsistent. Figure derived from [8]. Briefly, the algorithm begins by aligning the genome assembly to itself using the whole genome aligner nucmer from the MUMmer suite. We recommend the parameters nucmer -maxmatch -l 100 -c 500 to report all alignments, unique and repetitive, at least 500bp long with a 100bp seed match. We further filtered these alignments to those that are 1000bp or longer using delta-filter (also part of the MUMmer suite). We also recommend the sge_mummer version of MUMmer so the alignments can be computed in parallel in a cluster environment: sge_mummer github although this will produce identical results to the serial version. Finally we recommend filtering the alignments to keep those that are 90% identity or greater, to filter lower identity repetitive alignments while accommodating the expected rate of heterozygosity between homologous chromosomes while accounting for local regions of greater diversity. Next, the alignments were examined to identify and filter out redundant homologous contigs. We do so by linking the individual alignments into “alignment chains”, consisting of sets of alignments that are co-linear along the pair of contigs. Our method was inspired by older methods for computing synteny between distantly related genomes, although our method focuses on the problem of identifying homologous contig pairs as high identity long alignment chains. As we expect there to be structural variations between the homologous sequences, we allow for gaps in the alignments between the contigs, although true homologous contig pairs should maintain a consistent order and orientation to the alignments. Specifically, in the alignments from contig A to contig B, each aligned region of A forms a node in an alignment graph, and edges are added between nodes if they are compatible alignments, meaning they are on the same strand, and the implied gap distance on both contig A and contig B was less than 25kbp but not negative. Our algorithm then uses a depth first search starting at every node in the alignment graph to find the highest scoring chain of alignments, where the score is determined by the number of bases that are aligned in the chain. Notably, if a repetitive alignment is flanked by unique or repetitive alignments, such as the orange sequence in Contig B below, this approach will prefer to link alignments that are co-linear on Contig A. We find this produces better results than the filtering that MUMmer’s delta-filter can perform, which does not consider the context of the alignments when identifying a candidate set of non-redundant set of alignments. Alignment Chain Construction (a) Pairwise alignments between all contigs are computed with nucmer. Here we show just the alignments between contigs A and B. (b) An alignment graph is computed where each aligned region of A forms a node, with edges between nodes that are compatible on the same strand, in the same order, and no more than 25kbp between them. (c) The final alignment chain is selected from the alignment graph as the maximal weight path in the alignment graph. With the alignment chains identified between pairs of contigs, the last phase of the algorithm is to remove any contigs that are redundant with other contigs originating on the homologous chromosome. Specifically, it evaluates the contigs in order from smallest to longest, and computes the fraction of the bases of each contig that are spanned by alignment chains to other non-redundant contigs. If more than X% of the contig is spanned, it is marked as redundant. This can occur in simple cases where shorter contigs are spanned by individual longer contigs as well as more complex cases where a contig is spanned by multiple shorter non-redundant contigs. We recommmend you evaluate several cutoffs for the threshold of percent of the bases spanned. Chain Filtering (a) In simple cases, short contigs (contig A) are filtering out by their alignment chains to longer non-redundant contigs (contig B). (b) In complex cases, a contig (contig B) is filtered out because the total span of the alignment chains to multiple non-redundant contigs (contigs A and C) span more than X% of the bases.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              pseudohaploid has a low active ecosystem.
              It has 22 star(s) with 4 fork(s). There are 4 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 2 open issues and 5 have been closed. On average issues are closed in 20 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of pseudohaploid is current.

            kandi-Quality Quality

              pseudohaploid has no bugs reported.

            kandi-Security Security

              pseudohaploid has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              pseudohaploid does not have a standard license declared.
              Check the repository for any license declaration and review the terms closely.
              OutlinedDot
              Without a license, all rights are reserved, and you cannot use the library in your applications.

            kandi-Reuse Reuse

              pseudohaploid releases are not available. You will need to build from source code and install.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of pseudohaploid
            Get all kandi verified functions for this library.

            pseudohaploid Key Features

            No Key Features are available at this moment for pseudohaploid.

            pseudohaploid Examples and Code Snippets

            No Code Snippets are available at this moment for pseudohaploid.

            Community Discussions

            QUESTION

            search for regex match between two files using python
            Asked 2022-Apr-09 at 00:49

            I´m working with two text files that look like this: File 1

            ...

            ANSWER

            Answered 2022-Apr-09 at 00:49

            Perhaps you are after this?

            Source https://stackoverflow.com/questions/71789818

            QUESTION

            Is there a way to permute inside using to variables in bash?
            Asked 2021-Dec-09 at 23:50

            I'm using the software plink2 (https://www.cog-genomics.org/plink/2.0/) and I'm trying to iterate over 3 variables.

            This software admits an input file with .ped extention file and an exclude file with .txt extention which contains a list of names to be excluded from the input file.

            The idea is to iterate over the input files and then over exclude files to generate single outputfiles.

            1. Input files: Highland.ped - Midland.ped - Lowland.ped
            2. Exclude-map files: HighlandMidland.txt - HighlandLowland.txt - MidlandLowland.txt
            3. Output files: HighlandMidland - HighlandLowland - MidlandHighland - MidlandLowland - LowlandHighland - LowlandMidland

            The general code is:

            ...

            ANSWER

            Answered 2021-Dec-09 at 23:50

            Honestly, I think your current code is quite clear; but if you really want to write this as a loop, here's one possibility:

            Source https://stackoverflow.com/questions/70298074

            QUESTION

            BigQuery Regex to extract string between two substrings
            Asked 2021-Dec-09 at 01:11

            From this example string:

            ...

            ANSWER

            Answered 2021-Dec-09 at 01:11

            use regexp_extract(col, r"&q;Stockcode&q;:([^/$]*?),&q;.*")

            if applied to sample data in your question - output is

            Source https://stackoverflow.com/questions/70283253

            QUESTION

            how to stop letter repeating itself python
            Asked 2021-Nov-25 at 18:33

            I am making a code which takes in jumble word and returns a unjumbled word , the data.json contains a list and here take a word one-by-one and check if it contains all the characters of the word and later checking if the length is same , but the problem is when i enter a word as helol then the l is checked twice and giving me some other outputs including the main one(hello). i know why does it happen but i cant get a fix to it

            ...

            ANSWER

            Answered 2021-Nov-25 at 18:33

            As I understand it you are trying to identify all possible matches for the jumbled string in your list. You could sort the letters in the jumbled word and match the resulting list against sorted lists of the words in your data file.

            Source https://stackoverflow.com/questions/70112201

            QUESTION

            Split multiallelic to biallelic in vcf by plink 1.9 and its variant name
            Asked 2021-Nov-17 at 13:56

            I am trying to use plink1.9 to split multiallelic into biallelic. The input is that

            ...

            ANSWER

            Answered 2021-Nov-17 at 09:45

            QUESTION

            Delete specific letter in a FASTA sequence
            Asked 2021-Oct-12 at 21:00

            I have a FASTA file that has about 300000 sequences but some of the sequences are like these

            ...

            ANSWER

            Answered 2021-Oct-12 at 20:28

            You can match your non-X containing FASTA entries with the regex >.+\n[^X]+\n. This checks for a substring starting with > having a first line of anything (the FASTA header), which is followed by characters not containing an X until you reach a line break.

            For example:

            Source https://stackoverflow.com/questions/69545912

            QUESTION

            How to get the words within the first single quote in r using regex?
            Asked 2021-Oct-04 at 22:27

            For example, I have two strings:

            ...

            ANSWER

            Answered 2021-Oct-04 at 22:27

            For your example your pattern would be:

            Source https://stackoverflow.com/questions/69442717

            QUESTION

            Does Apache Spark 3 support GPU usage for Spark RDDs?
            Asked 2021-Sep-23 at 05:53

            I am currently trying to run genomic analyses pipelines using Hail(library for genomics analyses written in python and Scala). Recently, Apache Spark 3 was released and it supported GPU usage.

            I tried spark-rapids library start an on-premise slurm cluster with gpu nodes. I was able to initialise the cluster. However, when I tried running hail tasks, the executors keep getting killed.

            On querying in Hail forum, I got the response that

            That’s a GPU code generator for Spark-SQL, and Hail doesn’t use any Spark-SQL interfaces, only the RDD interfaces.

            So, does Spark3 not support GPU usage for RDD interfaces?

            ...

            ANSWER

            Answered 2021-Sep-23 at 05:53

            As of now, spark-rapids doesn't support GPU usage for RDD interfaces.

            Source: Link

            Apache Spark 3.0+ lets users provide a plugin that can replace the backend for SQL and DataFrame operations. This requires no API changes from the user. The plugin will replace SQL operations it supports with GPU accelerated versions. If an operation is not supported it will fall back to using the Spark CPU version. Note that the plugin cannot accelerate operations that manipulate RDDs directly.

            Here, an answer from spark-rapids team

            Source: Link

            We do not support running the RDD API on GPUs at this time. We only support the SQL/Dataframe API, and even then only a subset of the operators. This is because we are translating individual Catalyst operators into GPU enabled equivalent operators. I would love to be able to support the RDD API, but that would require us to be able to take arbitrary java, scala, and python code and run it on the GPU. We are investigating ways to try to accomplish some of this, but right now it is very difficult to do. That is especially true for libraries like Hail, which use python as an API, but the data analysis is done in C/C++.

            Source https://stackoverflow.com/questions/69273205

            QUESTION

            Aggregating and summing columns across 1500 files by matching IDs in R (or bash)
            Asked 2021-Sep-07 at 13:09

            I have 1500 files with the same format (the .scount file format from PLINK2 https://www.cog-genomics.org/plink/2.0/formats#scount), an example is below:

            ...

            ANSWER

            Answered 2021-Sep-07 at 11:10

            QUESTION

            Usage of compression IO functions in apache arrow
            Asked 2021-Jun-02 at 18:58

            I have been implementing a suite of RecordBatchReaders for a genomics toolset. The standard unit of work is a RecordBatch. I ended up implementing a lot of my own compression and IO tools instead of using the existing utilities in the arrow cpp platform because I was confused about them. Are there any clear examples of using the existing compression and file IO utilities to simply get a file stream that inflates standard zlib data? Also, an object diagram for the cpp platform would be helpful in ramping up.

            ...

            ANSWER

            Answered 2021-Jun-02 at 18:58

            Here is an example program that inflates a compressed zlib file and reads it as CSV.

            Source https://stackoverflow.com/questions/67799265

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install pseudohaploid

            Make sure MUMmer is installed and the binaries are in your path. We recommend version 3.23 although others may work.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/schatzlab/pseudohaploid.git

          • CLI

            gh repo clone schatzlab/pseudohaploid

          • sshUrl

            git@github.com:schatzlab/pseudohaploid.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link