GithubHelp home page GithubHelp logo

bcgsc / physlr Goto Github PK

View Code? Open in Web Editor NEW
18.0 11.0 8.0 2.22 MB

:chains: Construct a Physical Map from Linked Reads

License: GNU General Public License v3.0

Ruby 0.09% Makefile 19.92% Python 46.31% C++ 26.68% Shell 5.15% R 1.84%
genome-assembly genome-scaffolding linked-reads 10xgenomics bioinformatics bioinformatics-tool

physlr's Introduction

Published in DNA Release Conda Downloads

Physlr: Next-generation Physical Maps

Physlr physical-map constructs a de novo physical map using linked reads from 10X Genomics or MGI stLFR. This physical map can then be used for various genomics analyses, including scaffolding. Physlr scaffolds uses the physical map generated in the first stage to scaffold an existing genome assembly to yield chromosome-level contiguity.

Contents

Installation

You can install Physlr either via Conda or by compiling from source. We recommend installing Physlr via Conda package manager (Linux, MacOS), which will handle compilation and dependencies automatically.

Install Physlr using Conda

In an active conda environment:

conda install -c bioconda physlr
physlr help

Physlr can generate complmentary reports (included in the pipeline by default) - you can install dependencies for these optional features using conda:

conda install -c r r-rmarkdown
conda install -c r r-essentials
conda install -c conda-forge r-ggplot2

We recommend using pypy3 over regular python3 for speed. pypy v3 or pypy3 is the default python executable for Physlr. To switch to other executables set the python_executable argument:

physlr [OPTION]... python_executable=python3

You can install pypy3 using conda:

conda install -c conda-forge pypy3.8 # Change specified version based on your conda environment's python version (3.6 to 3.9 are supported)

Compile Physlr from source

Compiling

Compile Physlr using the following commands:

pip3 install --user git+https://github.com/bcgsc/physlr
git clone https://github.com/bcgsc/physlr
cd physlr/src && make install

or, to install Physlr in a specified directory (like /opt/physlr):

pip3 install --user git+https://github.com/bcgsc/physlr
git clone https://github.com/bcgsc/physlr
cd physlr/src && make install PREFIX=/opt/physlr

after compiling, Physlr commands will be available through:

bin/physlr-make
bin/physlr-make help

Dependencies

Optional dependencies

  • pigz for parallel gzip
  • zsh for reporting time and memory usage

Developers dependencies

There are additional functions in Physlr (especially the python version) for developers to generate more granular reports. The dependencies of these functions are listed below:

Running Physlr

Generate a physical map

To construct a physical map de novo, you need linked reads (from 10X Genomics or MGI stLFR).

In this example, the linked reads dataset is called linkedreads.fq.gz. The linked reads are from stLFR so we specify protocol=stlfr to use the default value for stLFR reads.

cd experiment # Change to working directory 
physlr physical-map lr=linkedreads protocol=stlfr                # Constructs the physical map

You also have the option to provide a reference genome (with ref) for Physlr to evaluate the physical map. Assuming the reference is called reference.fa, you can run the following command for the previous example:

cd experiment
physlr physical-map lr=linkedreads ref=reference protocol=stlfr  # Constructs the physical map and reference-based evaluations for it

If you provide a reference genome, Physlr first constructs a physical map and then maps it to the input reference. In this case, Physlr automatically outputs a *.map-quality.tsv file reporting assembly-like quality metrics for the physical map. In addition, Physlr visualizes the correctness and contiguity of the physical map.

You can also independently run the physical map construction and evaluation steps:

cd experiment
physlr physical-map lr=linkedreads protocol=stlfr
physlr map-quality lr=linkedreads ref=reference

Scaffold an assembly

To scaffold a draft assembly, you need linked reads from 10X Genomics or stLFR, and an existing assembly. In this example, the linked reads and draft assembly are called linkedreads.fq.gz and draft.fa, respectively. The linked reads are from 10X Genomics so we specify protocol=10x to use the default value for 10X Genomics reads.

cd experiment
bin/physlr-make scaffolds lr=linkedreads draft=draft protocol=10x

You can also include a reference genome ('reference.fa' in this example) for Physlr to calculate Quast summary metrics for the Physlr scaffolded assembly:

cd experiment
bin/physlr-make scaffolds lr=linkedreads ref=reference draft=draft protocol=10x

See the help page for further information. bin/physlr-make help

Output files

  • lr.physlr.physical-map.path: Paths of barcodes (backbones).
  • lr.physlr.physical-map.ref.n10.paf.gz.*.pdf: Various graphs showing the contiguity and correctness of the backbones with respect to the reference.
  • draft.physlr.fa: Physlr scaffolded assembly using the physical map.
  • draft.physlr.quast.tsv: Quast metrics comparing the Physlr scaffolded assembly against the reference.

Citation

If you use Physlr in your research, please cite:

Afshinfard A, Jackman SD, Wong J, Coombe L, Chu J, Nikolic V, Dilek G, Malkoç Y, Warren RL, Birol I. Physlr: Next-Generation Physical Maps. DNA. 2022 Jun 10;2(2):116-30. doi: https://doi.org/10.3390/dna2020009

link

Support

Create a new issue on GitHub.

GitHub issues

Acknowledgements

This projects uses:

  • btl_bloomfilter BTL C/C++ Common bloom filters for bioinformatics projects implemented by Justin Chu
  • nthash rolling hash implementation by Hamid Mohamadi
  • readfq Fast multi-line FASTA/Q reader API implemented by Heng Li
  • robin-map C++ implementation of a fast hash map and hash set using robin hood hashing by Thibaut G.

physlr's People

Contributors

aafshinfard avatar azure-pipelines[bot] avatar gokcedilek avatar janetxinli avatar justinchu avatar jwcodee avatar lcoombe avatar sjackman avatar vlad0x00 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

physlr's Issues

Squaring and cosine similarity optimization

Accuarcy:

Address the problems caused by highly-connected interleaving nodes:

  • Filter-out highly connectors, or:
  • Filtered squaring, or
  • Other ideas ...

Speed up:

Try different ideas to speed up squaring and cosine similarity calculation:

  • Check and benchmark different functions and data structures
  • Check for binary matrix and it's effect on the results
  • Check for vectorization for faster Calculation

physlr-filter-barcodes: Remove -k and -w options

Hi, Gokce. Could you please remove the unused -k and -w options from physlr-filter-barcodes?

While you're in there the if else if chain in

	else if (n == 0) {
…
	else if (N == 0) {

Should be if statements rather than else if statements so that if multiple required arguments are omitted, multiple error messages are printed. For example both

option has incorrect argument -- 'n'
option has incorrect argument -- 'N'

should be printed if both are 0.

No rule to make target

Hello All,

I'm attempting to scaffold some contigs using physlr. Here is the full error:

make: *** No rule to make target '../ssb_interleaved.fq.gz.k40-w32.n100-5000.c2-x.physlr.overlap.m85.mol.mol2-bcs.backbone.path', needed by '../ssb_interleaved.fq.gz.physlr.physical-map.path'.  Stop.

And here's the command being run:

physlr-make scaffolds lr=../ssb_interleaved.fq.gz \
    draft=LinkedReads.contig_0.fasta \
    ref=hg38_no_alt_analysis_set.fa \
    protocol=stlfr

I'm not too adept with makefiles, so any help would be appreciated. Sorry for the trouble

Tasks

Related JIRA ticket: https://www.bcgsc.ca/jira/browse/BTL-1250

  • Characterize linked reads, ie. extent of molecule overlaps, etc @lcoombe
  • Identify repeat k-mers and minimizers using ntHit @afshinfard
  • Create a Python interface to ntHash @mohamadi
  • Create a minimizer sketch of each barcode @sjackman
  • Index the sketches and identify candidate barcode overlaps @benvvalk
  • Estimate the Jaccard similarity of each barcode pair
  • Create a graph of barcode overlaps @sjackman
  • Partition the adjacent barcodes (edges) of each barcode into connected communities @sjackman
  • Create a new graph of molecules and molecule overlaps
  • Reassign minimizers/reads to the molecules @lcoombe
  • Identify transitive edges and remove/retain them
  • Determine a linear ordering of the molecules (layout the graph) @sjackman
  • Partition the molecules into subgraphs of components and unambiguous paths @sjackman
  • Assemble partitions of molecules @lcoombe

Notes: it's ok to work on same problem as someone else. Above are physlr tasks, but feel free to add tasks that pertain to the more general utilization of linked-reads in assembly .

Tools

  • NetworkX Python graph library

Datasets

  • E. coli LRsim
  • C. elegans LRsim
  • NA12878 Chromium
  • NA24143 (HG004) Chromium
  • Fruit fly Chromium
    • Chromium /projects/btl_scratch/sjackman/physlr/data/f1.fq.gz
    • Reference /projects/btl_scratch/sjackman/physlr/data/fly/fly.fa
  • Zebrafish
    • Chromium /projects/btl_scratch/sjackman/physlr/data/fish.fq.gz
    • Reference /projects/btl_scratch/sjackman/physlr/data/fish/z11.fa
  • Picea sitchensis plastid Chromium
    • Chromium /projects/btl_scratch/sjackman/physlr/HYN5VCCXX_4cp.fq.gz
    • Reference /projects/btl_scratch/sjackman/physlr/psitchensiscp/psitchensiscp.fa

Maplr: Mapping linked read molecules directly to a reference genome sequence

  1. Index the (k,w) minimizers of the reference. (set k and w for ~1 minimizer per 128 bp, can be tweaked for sensitivity/specificity)
  2. Compute the set of minimizers, ~1 per read, for each barcode.
  3. Find the minimum tiling set of intervals on the reference genome that account for all (or nearly all) of the minimizers observed in the reads of one barcode.
  4. Smith-waterman alignment of the first and last read of each molecule to determine the exact start and end coordinate of each molecule (optional)

Parameters for f1chr4 example?

I'm following the f1chr4 example to replicate the results.

But I haven't been able to get sensible results from the f1chr4 dataset. In fact I couldn't get any edges to be retained. The main issue seems to be that there are simply not that many molecules - and so all the vertices have been pruned. See output below.

This isn't the expected behaviour, right? If so, what were the parameters you were using to get this to work? I'm exploring them now, but some guidance would be helpful.

Thank you,
Frank

../physlr/bin/physlr-make physical-map ref=fly lr=f1chr4 draft=f1.supernova n=25 minimizer_multiplicity=x m=25 n=25 N=1000 k=40

The mode k-mer coverage is 276.
The repeat k-mer coverage is 828.
command time -v -o f1chr4_k40.rep.time nthits -t16 -k40 -c828 -p f1chr4 f1chr4.fq.gz
Reapeat profile estimated using ntCard in (sec): 22.3568

Errors k-mer coverage: 97
Median k-mer coverage: 276
Repeat k-mer coverage: 828
Approximate# of distinct k-mers: 55646439
Approximate# of solid k-mers: 13077
Total time for computing repeat content in (sec): 69.5050

command time -v -o f1chr4.k40.bf.time /fml/chones/local/physlr/src/physlr-makebf -t16 -k40 -b10000000000 -v -o f1chr4.k40.bf f1chr4_k40.rep
Collecting Kmers to insert into bloom filter
Made Bloom filter with:
kmer size = 40
Bloom filter size = 80000000000

Inserting 0 kmers into Bloom filterUsing 16 threads.
Bloom filter stats:
#counters = 80000000000
#size (B) = 10000000000
popcount = 0
FPR = 0%
Writing a 10000000000 byte filter to f1chr4.k40.bf on disk.

command time -v -o fly/fly.k40-w32.physlr.tsv.time /fml/chones/local/physlr/src/physlr-indexlr -t16 -k40 -w32 -r f1chr4.k40.bf --pos -o fly/fly.k40-w32.physlr.tsv fly/fly.fa
Loading repeat Bloom filter from f1chr4.k40.bf
Finished loading repeat Bloom filter

pigz -p16 -cd f1chr4.fq.gz | command time -v -o f1chr4.k40-w32.physlr.tsv.gz.time /fml/chones/local/physlr/src/physlr-indexlr -t16 -k40 -w32 -r f1chr4.k40.bf - | pigz -p16 >f1chr4.k40-w32.physlr.tsv.gz
Loading repeat Bloom filter from f1chr4.k40.bf
Finished loading repeat Bloom filter
time user=10.17s system=1.87s elapsed=22.60s cpu=53% memory=2 job=
time user=178.20s system=16.09s elapsed=26.29s cpu=738% memory=10139 job=
time user=75.27s system=1.42s elapsed=26.31s cpu=291% memory=7 job=

pigz -p16 -cd f1chr4.k40-w32.physlr.tsv.gz | command time -v -o f1chr4.k40-w32.n100-5000.physlr.tsv.gz.time /fml/chones/local/physlr/src/physlr-filter-barcodes -n100 -N5000 - | pigz -p16 >f1chr4.k40-w32.n100-5000.physlr.tsv.gz
Time at readMxs (ms): 15886
Time at countMxs (ms): 18067
Counted 2972750 minimizers.
Time at removeSingletonMxs (ms): 22939
Removed 2585978 minimizers that occur once of 2972750 (87.0%)
There are 77715 barcodes.
Time at filterbarcodes (ms): 23010
Discarded 58504 barcodes with too few minimizers of 77715 (75.3%)
Discarded 0 barcodes with too many minimizers of 77715 (0.0%)
Wrote 19211 barcodes
Time at writeMxs (ms): 27602
time user=4.79s system=1.07s elapsed=15.89s cpu=36% memory=3 job=
time user=25.58s system=2.23s elapsed=27.82s cpu=99% memory=1494 job=
time user=56.67s system=0.71s elapsed=27.85s cpu=206% memory=12 job=

pigz -p16 -cd f1chr4.k40-w32.n100-5000.physlr.tsv.gz | command time -v -o f1chr4.k40-w32.n100-5000.c2-x.physlr.tsv.time /fml/chones/local/physlr/src/physlr-filter-bxmx -o f1chr4.k40-w32.n100-5000.c2-x.physlr.tsv -
Time after reading minimizers (ms): 5204
Read 19211 barcodes.

Time after counting minimizers (ms): 6276
Counted 371588 minimizers.

Time after removing singleton minimizers (ms): 7843
Removed 13298 minimizers that occur once of 358290 (3.7%)

Time after filtering barcodes (ms): 7844
Discarded 0 barcodes with too few minimizers of 19211 (0.0%)
Discarded 0 barcodes with too many minimizers of 19211 (0.0%)
There are 19211 barcodes remaining

Time after counting minimizers (ms): 8864
Counted 358290 minimizers.

Time after removing singleton minimizers (ms): 10413
Removed 0 minimizers that occur once of 358290 (0.0%)

Time after removing repetitive minimizers (ms): 12780
Minimizer frequency: Q1=2.0 Q2=3.0 Q3=11.0 C= 24
Removed 81559 most frequent minimizers of 358290
Removed 13 empty barcodes of 19211
There are 19198 barcodes remaining.
Time after writing minimizers (ms): 13853
Wrote 19198 barcodes.

time user=2.88s system=0.42s elapsed=5.21s cpu=63% memory=2 job=
time user=12.92s system=1.07s elapsed=13.99s cpu=99% memory=1232 job=

command time -v -o f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.tsv.time /fml/chones/local/physlr/src/physlr-overlap -t16 -m10 f1chr4.k40-w32.n100-5000.c2-x.physlr.tsv >f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.tsv
Loading file f1chr4.k40-w32.n100-5000.c2-x.physlr.tsv
Finished constructing barcodeToMinimizer and minimizerToBarcode in sec: 0.896744
Memory usage: 0.14225GB
Populating Overlaps
Total Minimizers: 276731
Total Barcodes: 19198
Finished computing overlaps in sec: 0.133628
Memory usage: 1.19699GB
Total number of unfiltered edges: 2804
Total number of filtered edges: 1285681

command time -v -o f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.tsv.time env PYTHONPATH=/fml/chones/local/physlr python /fml/chones/local/physlr/bin/physlr filter-overlap --minimizer-overlap 25 -V1 f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.tsv >f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.tsv
0 Processing Nodes
0 Processing Edges
0 Sorting Edges
0 Filtering Edges
0 Lower Threshold 9
command time -v -o f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.mol.tsv.time env PYTHONPATH=/fml/chones/local/physlr python /fml/chones/local/physlr/bin/physlr molecules -V1 -t4 --separation-strategy=distributed+sqcosbin f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.tsv >f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.mol.tsv
0 Reading f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.tsv
0 Read f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.tsv
0 Separating barcodes into molecules using the following algorithm(s):
distributed + sqcosbin
3 Identified molecules
3 Identified 281 molecules in 19198 barcodes. 0.01 mean molecules per barcode
3 Separated molecules
3 Removed 6 isolated vertices.
3 Wrote graph
command time -v -o f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.mol.backbone.tsv.time env PYTHONPATH=/fml/chones/local/physlr python /fml/chones/local/physlr/bin/physlr backbone-graph --prune-branches=10 --prune-bridges=10 --prune-junctions=200 -s0 -V1 f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.mol.tsv >f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.mol.backbone.tsv
0 Reading f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.mol.tsv
0 Read f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.mol.tsv
0 Determining the backbone-induced subgraph.
0 Determined the maximum spanning tree.
0 Pruned 230 vertices of 275 (83.64%) in 1 iterations.
0 Removed 0 vertices in 0 bridges shorter than 10 vertices.
0 Removed 0 bridges in 0 iterations.
0 Determined the maximum spanning tree.
0 Pruned 230 vertices of 275 (83.64%) in 1 iterations.
0 Pruned 0 junctions in the backbone
0 Assembled 0 molecules in 0 paths.
Traceback (most recent call last):
File "/fml/chones/local/physlr/bin/physlr", line 19, in
physlr.physlr.main()
File "/fml/chones/local/physlr/physlr/physlr.py", line 2873, in main
Physlr().main()
File "/fml/chones/local/physlr/physlr/physlr.py", line 2869, in main
getattr(Physlr, method_name)(self)
File "/fml/chones/local/physlr/physlr/physlr.py", line 1250, in physlr_backbone_graph
self.write_graph(subgraph, sys.stdout, self.args.graph_format)
File "/fml/chones/local/physlr/physlr/physlr.py", line 174, in write_graph
Physlr.write_tsv(g, fout)
File "/fml/chones/local/physlr/physlr/physlr.py", line 154, in write_tsv
if "mol" in next(iter(g.nodes.values())):
StopIteration
../physlr/bin/physlr-make:950: recipe for target 'f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.mol.backbone.tsv' failed
make: *** [f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.mol.backbone.tsv] Error 1
make: *** Deleting file 'f1chr4.k40-w32.n100-5000.c2-x.physlr.overlap.m25.mol.backbone.tsv'

Format for stLFR LinkedReads

Hello,

I was just curious if the formatting for stLFR LinkedReads needed to be altered before use, similarly to how ARCs requires the formatting to be changed from >Readname#barcode to >Readname BX:Z:barcode

Thanks,
Ellis

Cannot install with Conda + Pypy 3.9

Hello, I'm trying to install Physlr with Conda + Pypy 3.9 and I get the following error:

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package physlr-1.0.4-py39h2df963e_0 requires tqdm, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ physlr 1.0.4  is installable and it requires
│  └─ tqdm with the potential options
│     ├─ tqdm 4.7.2 would require
│     │  └─ python 3.6* , which can be installed;
│     └─ tqdm [4.10.0|4.11.0|...|4.9.0] conflicts with any installable versions previously reported;
└─ pin-1 is not installable because it requires
   └─ python 3.9.* , which conflicts with any installable versions previously reported.

Pins seem to be involved in the conflict. Currently pinned specs:
 - python 3.9.* (labeled as 'pin-1')

If I manually install TQDM, I instead get another error:

Could not solve for environment specs
The following packages are incompatible
├─ physlr 1.0.4**  is installable with the potential options
│  ├─ physlr 1.0.4 would require
│  │  ├─ pypy with the potential options
│  │  │  ├─ pypy 7.3.8 would require
│  │  │  │  └─ python 3.9.10 0_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.15 would require
│  │  │  │  └─ python 3.9.18 1_73_pypy, which can be installed;
│  │  │  ├─ pypy [7.3.0|7.3.1] would require
│  │  │  │  └─ python 3.6.9 0_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.1 would require
│  │  │  │  └─ python 3.6.9 1_73_pypy, which does not exist (perhaps a missing channel);
│  │  │  ├─ pypy 7.3.1 would require
│  │  │  │  └─ python 3.6.9 2_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.2 would require
│  │  │  │  └─ python 3.6.9 3_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.3 would require
│  │  │  │  └─ python 3.6.12 5_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.3 would require
│  │  │  │  └─ python 3.7.9 5_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.3 would require
│  │  │  │  └─ python 3.6.12 4_73_pypy, which can be installed;
│  │  │  ├─ pypy [7.3.4|7.3.5] would require
│  │  │  │  └─ python 3.7.10 0_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.5 would require
│  │  │  │  └─ python 3.7.10 1_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.7 would require
│  │  │  │  └─ python 3.7.12 0_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.8 would require
│  │  │  │  └─ python 3.8.12 0_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.9 would require
│  │  │  │  └─ python 3.8.13 0_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.9 would require
│  │  │  │  └─ python 3.9.12 0_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.11 would require
│  │  │  │  └─ python 3.8.16 0_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.11 would require
│  │  │  │  └─ python 3.9.16 0_73_pypy, which can be installed;
│  │  │  ├─ pypy 7.3.12 would require
│  │  │  │  └─ python 3.9.17 0_73_pypy, which can be installed;
│  │  │  └─ pypy 7.3.13 would require
│  │  │     └─ python 3.9.18 0_73_pypy, which can be installed;
│  │  └─ scikit-learn with the potential options
│  │     ├─ scikit-learn [0.17.1|0.18|...|0.20.4] would require
│  │     │  └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed;
│  │     ├─ scikit-learn [0.17.1|0.18|0.18.2] would require
│  │     │  └─ python 3.4* , which can be installed;
│  │     ├─ scikit-learn [0.17.1|0.18|...|0.20.0] would require
│  │     │  └─ python [3.5* |>=3.5,<3.6.0a0 ], which can be installed;
│  │     ├─ scikit-learn [0.18|0.18.1|...|0.19.2] would require
│  │     │  └─ python 3.6* , which can be installed;
│  │     ├─ scikit-learn [0.19.2|0.20.0|...|0.24.2] would require
│  │     │  └─ python >=3.6,<3.7.0a0 , which can be installed;
│  │     ├─ scikit-learn [0.20.0|0.20.1|...|1.0.2] would require
│  │     │  └─ python >=3.7,<3.8.0a0 , which can be installed;
│  │     ├─ scikit-learn [0.22|0.22.1|...|1.3.2] would require
│  │     │  └─ python >=3.8,<3.9.0a0 , which can be installed;
│  │     ├─ scikit-learn [0.23.2|0.24.0|...|1.5.0] would require
│  │     │  └─ python_abi 3.9.* *_cp39 but there are no viable options
│  │     │     ├─ python_abi 3.9 would require
│  │     │     │  └─ pypy <0a0 , which conflicts with any installable versions previously reported;
│  │     │     └─ python_abi 3.9 would require
│  │     │        └─ python 3.9.* *_cpython, which conflicts with any installable versions previously reported;
│  │     ├─ scikit-learn [1.0.1|1.0.2|...|1.5.0] would require
│  │     │  └─ python >=3.10,<3.11.0a0 , which can be installed;
│  │     ├─ scikit-learn [1.1.3|1.2.0|...|1.5.0] would require
│  │     │  └─ python >=3.11,<3.12.0a0 , which can be installed;
│  │     ├─ scikit-learn [1.3.1|1.3.2|...|1.5.0] would require
│  │     │  └─ python >=3.12,<3.13.0a0 , which can be installed;
│  │     └─ scikit-learn [0.19.0|0.19.1|...|1.4.2] conflicts with any installable versions previously reported;
│  └─ physlr 1.0.4 would require
│     └─ scikit-learn with the potential options
│        ├─ scikit-learn [0.17.1|0.18|...|0.20.4], which can be installed (as previously explained);
│        ├─ scikit-learn [0.17.1|0.18|0.18.2], which can be installed (as previously explained);
│        ├─ scikit-learn [0.17.1|0.18|...|0.20.0], which can be installed (as previously explained);
│        ├─ scikit-learn [0.18|0.18.1|...|0.19.2], which can be installed (as previously explained);
│        ├─ scikit-learn [0.19.2|0.20.0|...|0.24.2], which can be installed (as previously explained);
│        ├─ scikit-learn [0.20.0|0.20.1|...|1.0.2], which can be installed (as previously explained);
│        ├─ scikit-learn [0.22|0.22.1|...|1.3.2], which can be installed (as previously explained);
│        ├─ scikit-learn [0.23.2|0.24.0|...|1.5.0], which cannot be installed (as previously explained);
│        ├─ scikit-learn [1.0.1|1.0.2|...|1.5.0], which can be installed (as previously explained);
│        ├─ scikit-learn [1.1.3|1.2.0|...|1.5.0], which can be installed (as previously explained);
│        ├─ scikit-learn [1.3.1|1.3.2|...|1.5.0], which can be installed (as previously explained);
│        └─ scikit-learn [0.19.0|0.19.1|...|1.4.2] conflicts with any installable versions previously reported;
├─ pin-1 is not installable because it requires
│  └─ python 3.9.* , which conflicts with any installable versions previously reported;
└─ pypy is installable with the potential options
   ├─ pypy 7.3.8, which can be installed (as previously explained);
   ├─ pypy 7.3.15, which can be installed (as previously explained);
   ├─ pypy [7.3.0|7.3.1], which can be installed (as previously explained);
   ├─ pypy 7.3.1, which cannot be installed (as previously explained);
   ├─ pypy 7.3.1, which can be installed (as previously explained);
   ├─ pypy 7.3.2, which can be installed (as previously explained);
   ├─ pypy 7.3.3, which can be installed (as previously explained);
   ├─ pypy 7.3.3, which can be installed (as previously explained);
   ├─ pypy 7.3.3, which can be installed (as previously explained);
   ├─ pypy [7.3.4|7.3.5], which can be installed (as previously explained);
   ├─ pypy 7.3.5, which can be installed (as previously explained);
   ├─ pypy 7.3.7, which can be installed (as previously explained);
   ├─ pypy 7.3.8, which can be installed (as previously explained);
   ├─ pypy 7.3.9, which can be installed (as previously explained);
   ├─ pypy 7.3.9, which can be installed (as previously explained);
   ├─ pypy 7.3.11, which can be installed (as previously explained);
   ├─ pypy 7.3.11, which can be installed (as previously explained);
   ├─ pypy 7.3.12, which can be installed (as previously explained);
   └─ pypy 7.3.13, which can be installed (as previously explained).

Pins seem to be involved in the conflict. Currently pinned specs:
 - python 3.9.* (labeled as 'pin-1')

Any suggestions as to best next steps?

Question on 10x Genomics data

Hello,

Thank you for making this tool! I have been struggling with supernova assembly from 10x data due to big genome size (4Gb). Does physlr have any requirements in terms of computer resources for such big genome size? For building physical maps, is the input file the raw sequencing data? Or do I need to do any pre-processing? I am thinking to use a different species in the same genus as the reference genome. Is it appropriate?

Thank you!
Ying

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.