Code Monkey home page Code Monkey logo

ltr_finder_parallel's Introduction

~ ~ ~ Run LTR_FINDER in parallel ~ ~ ~

This is a Perl wrapper for LTR_FINEDR. All rights reserved to the original author. Both LTR_FINDER and LTR_FINDER_parallel are released under the MIT License.

Installation: No need. Just download and run.

Usage: perl LTR_FINDER_parallel -seq [file] -size [int] -threads [int]  
Options:
	-seq    [file]  Specify the sequence file.
	-size   [int]   Specify the size you want to split the genome sequence.
			Please make it large enough to avoid spliting too many LTR elements. Default 5000000 (bp).  			 
	-time   [int]   Specify the maximum time to run a subregion (a thread).
			This helps to skip simple repeat regions that take a substantial of time to run. Default: 1500 (seconds).
			Suggestion: 300 for -size 1000000. Increase -time when -size increased.  
	-try1   [0|1]   If a region requires more time than the specified -time (timeout), decide:  
				0, discard the entire region.
				1, further split to 50 Kb regions to salvage LTR candidates (default);
	-harvest_out    Output LTRharvest format if specified. Default: output LTR_FINDER table format.
	-next           Only summarize the results for previous jobs without rerunning LTR_FINDER (for -v).
	-verbose|-v     Retain LTR_FINDER outputs for each sequence piece.
	-finder [file]  The path to the program LTR_FINDER (default v1.0.7, included in this package).
	-threads|-t     [int]   Indicate how many CPU/threads you want to run LTR_FINDER.
	-check_dependencies Check if dependencies are fullfiled and quit
	-help|-h        Display this help information.

Input

Genome file in multi-FASTA format.

Output

GFF3, LTRharvest (STDOUT) or LTR_FINDER (-w 2) formats of predicted LTR candidates.

Parameter setting for LTR_FINDER

Currently there is no parameter settings for LTR_FINDER in this parallel version. I have chose the "best" parameters for you:

-w 2 -C -D 15000 -d 1000 -L 7000 -l 100 -p 20 -M 0.85

Please refer to LTR_FINEDR for details of these parameters.

If you want to use other parameters in LTR_FINDER_parallel, please edit the file LTR_FINDER_parallel line 9 to change the preset parameters.

Performance benchmark

Genome Arabidopsis Rice Maize Wheat
Version TAIR10 MSU7 AGPv4 CS1.0
Size 119.7 Mb 374.5 Mb 2134.4 Mb 14547.3 Mb
Original memory (1 CPU*) 0.37 Gbyte 0.55 Gbyte 5.00 Gbyte 11.88 Gbyte
Parallel memory (36 CPUs*) 0.10 Gbyte 0.12 Gbyte 0.82 Gbyte 17.67 Gbyte
Original time (1 CPU) 0.58 h 2.1 h 448.5 h 10169.3 h
Parallel time (36 CPUs) 6.4 min 2.6 min 10.3 min 71.8 min
Speed up 5.4 x 48.5 x 2,613 x 8,498 x
Number of LTR candidates (1 CPU) 226 2,851 60,165 231,043
Number of LTR candidates (36 CPUs) 226 2,834 59,658 237,352
% difference of candidate # 0.00% 0.60% 0.84% -2.73%

*Intel(R) Xeon(R) CPU E5-2660 v4 @ 2.00GHz

Citation

If you find LTR_FINDER_parallel helpful, please cite this manuscript:

Ou S, Jiang N. LTR_FINDER_parallel: parallelization of LTR_FINDER enabling rapid identification of long terminal repeat retrotransposons. Mob DNA 2019;10(1):48.

FAQs and best practices

  1. How to generate output files for LTR_retriever?
    A: You can use the -harvest_out parameter to generate LTRharvest-format output, then feed to LTR_retriever using -inharvest. If you have more than one LTRharvest output, simply cat them together.

  2. How to prepare the genome file?
    A: It's highly recommended to use short and simple sequence names. For example, use letters, numbers, and _ to generate unique names shorter than 15 bits. This will make your downstream analyses much more easier. If you have delicate sequence names and encounter errors, you may want to simplify them and try again.

  3. Do I really need to modify the -size, -time, and -try1 parameters?
    A: Not really. Except when you are 100% sure what you are doing, these parameters are optimized for the best performance in general.

Known issues

  1. Currently I am using a non-overlapping way to cut the original sequence. Some LTR elements could be broken due to this. So far the side-effect is minimal (< 1% loss) comparing to the performance boost (up to 8,500X faster). I don't have a plan to update it to a sliding window scheme. Welcome to improve it and request for merge.
  2. When a single input sequence is longer than 1 Gbp (observed in Gymnosperm genomes), the parallel script may quit with the "Out of Memory!" error. I have not found the cause of this error yet, but the memory footprint seems not large. The cut.pl script should be fine and you will see the *.finder folder with split sequences in it. A workaround is to run LTR_FINDER with each split sequence and output to $seq.finder.scn, then run LTR_FINDER_parallel with an additional parameter -next to consolidate these results. Another workaround is to split the sequence to less than 1 Gbp (eg., 900 Mbp) using the cut.pl script, then run LTR_FINDER_parallel on the split sequences. The same error is observed in LTR_HARVEST_parallel, thus you may use the same workaround.

For any other issues please open a thread and I will be happy to help.

ltr_finder_parallel's People

Contributors

oushujun avatar

Stargazers

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

Watchers

 avatar  avatar

ltr_finder_parallel's Issues

permission denied error

Dear Shujun,

Thanks for developing this perl script to run ltr_finder. I tried to use it but always get permission denied error.

I downloaded and saved everything to our university sever. Here is my script:
perl /script/ltrfinder_parallel/LTR_FINDER_parallel -seq test.fa -threads 36 -harvest_out

Here is the error message:
Thu Aug 1 16:35:40 2019 CPU1: running on Chr1_sub1
Thu Aug 1 16:35:40 2019 CPU2: running on Chr1_sub2
Thu Aug 1 16:35:40 2019 CPU3: running on Chr1_sub3
Thu Aug 1 16:35:40 2019 CPU4: running on Chr1_sub4
Thu Aug 1 16:35:40 2019 CPU5: running on Chr1_sub5
Thu Aug 1 16:35:40 2019 CPU6: running on Chr1_sub6
Thu Aug 1 16:35:40 2019 CPU7: running on Chr1_sub7
Thu Aug 1 16:35:40 2019 CPU8: running on Chr1_sub8
Thu Aug 1 16:35:40 2019 CPU9: running on Chr1_sub9
Thu Aug 1 16:35:40 2019 CPU10: running on Chr1_sub10
Thu Aug 1 16:35:40 2019 CPU11: running on Chr1_sub11
Thu Aug 1 16:35:40 2019 CPU12: running on Chr1_sub12
Thu Aug 1 16:35:40 2019 CPU13: running on Chr1_sub13
Thu Aug 1 16:35:40 2019 CPU14: running on Chr1_sub14
Thu Aug 1 16:35:40 2019 CPU15: running on Chr1_sub15
Thu Aug 1 16:35:40 2019 CPU16: running on Chr1_sub16
Thu Aug 1 16:35:40 2019 CPU17: running on Chr1_sub17
Thu Aug 1 16:35:40 2019 CPU18: running on Chr1_sub18
Thu Aug 1 16:35:40 2019 CPU19: running on Chr1_sub19
Thu Aug 1 16:35:40 2019 CPU20: running on Chr1_sub20
Thu Aug 1 16:35:40 2019 CPU21: running on Chr1_sub21
Thu Aug 1 16:35:40 2019 CPU22: running on Chr1_sub22
Thu Aug 1 16:35:40 2019 CPU23: running on Chr1_sub23
Thu Aug 1 16:35:40 2019 CPU24: running on Chr1_sub24
Thu Aug 1 16:35:40 2019 CPU25: running on Chr1_sub25
timeout: failed to run command ‘/script/ltrfinder_parallel/bin/LTR_FINDER.x86_64-1.0.7/ltr_finder’: Permission denied
Thu Aug 1 16:35:40 2019 CPU6: Chr1_sub6 timeout, process it with the salvage mode
timeout: failed to run command ‘/script/ltrfinder_parallel/bin/LTR_FINDER.x86_64-1.0.7/ltr_finder’: Permission denied
Thu Aug 1 16:35:41 2019 CPU10: Chr1_sub10 timeout, process it with the salvage mode

I am curious why some sub-sequences are successfully processed but some are not. Thanks for your help!

Ying

I meet a problem, need help!

Sat Jun 13 15:19:19 2020 CPU2: running on CM010650_sub8
mv: cannot stat ‘CM010650_sub5.finder.combine.scn’: No such file or directory
Sat Jun 13 15:19:19 2020 CPU1: running on CM010650_sub9

~ ~ ~ Run LTR_FINDER in parallel ~ ~ ~

Author: Shujun Ou ([email protected])
Date: 09/19/2018
Update: 01/28/2020
Version: v1.1

Usage: perl LTR_FINDER_parallel -seq [file] -size [int] -threads [int]
Options:	-seq	[file]	Specify the sequence file.
		-size	[int]	Specify the size you want to split the genome sequence.
				Please make it large enough to avoid spliting too many LTR elements. Default 5000000 (bp)
		-time	[int]	Specify the maximum time to run a subregion (a thread).
				This helps to skip simple repeat regions that take a substantial of time to run. Default: 1500 (seconds).
				Suggestion: 300 for -size 1000000. Increase -time when -size increased.
		-try1	[0|1]	If a region requires more time than the specified -time (timeout), decide:
					0, discard the entire region.
					1, further split to 50 Kb regions to salvage LTR candidates (default);
		-harvest_out	Output LTRharvest format if specified. Default: output LTR_FINDER table format.
		-next		Only summarize the results for previous jobs without rerunning LTR_FINDER (for -v).
		-verbose|-v	Retain LTR_FINDER outputs for each sequence piece.
		-finder	[file]	The path to the program LTR_FINDER (default v1.0.7, included in this package).
		-threads|-t	[int]	Indicate how many CPU/threads you want to run LTR_FINDER.
		-check_dependencies Check if dependencies are fullfiled and quit
		-help|-h	Display this help information.

mv: cannot stat ‘CM010650_sub4.finder.combine.scn’: No such file or directory
Sat Jun 13 15:19:19 2020 CPU3: running on CM010650_sub10
open CM010650_sub8 error!
Sat Jun 13 15:19:19 2020 CPU2: CM010650_sub8 timeout, process it with the salvage mode
open CM010650_sub9 error!
mv: cannot stat ‘CM010650_sub6.finder.combine.scn’: No such file or directory
Sat Jun 13 15:19:19 2020 CPU1: CM010650_sub9 timeout, process it with the salvage mode
open CM010650_sub10 error!
Sat Jun 13 15:19:19 2020 CPU3: CM010650_sub10 timeout, process it with the salvage mode
Sat Jun 13 15:19:19 2020 CPU5: running on CM010650_sub11
open CM010650_sub11 error!

Hello, I didn't know what happened. The software still running, but always show these. I am sure I can run this software on other genomes.

Use LTR_FINDER_parallel in conjunction with LTR_retriever

Dear Dr. Ou,

I want to use LTR_FINDER_parallel output file to calculate LAI by LTR_retriever.

Your modifications make it very fast compared to the previous single-threaded version. But the format of the output is not the same as before. How do I set parameters or use other scripts to convert to the previous format?

  • old format (maybe I need this foramt)
Program    : LTR_FINDER
Version    : 1.07

Predict protein Domains 4.669 second
>Sequence: Contig10_pilon Len:17381955
[1] Contig10_pilon Len:17381955
Location : 71911 - 85359 Len: 13449 Strand:+
Score    : 6 [LTR region similarity:0.952]
Status   : 11111010000
5'-LTR   : 71911 - 73491 Len: 1581
3'-LTR   : 83775 - 85359 Len: 1585
5'-TG    : TG , TG
3'-CA    : CA , CA
TSR      : 71906 - 71910 , 85360 - 85364 [GTGAA]
Sharpness: 0.5,0.486
Strand + :
PPT   : [13/15] 83744 - 83758

Details of exact match pairs:
83791-83876[86] (22) 83899-83935[37] (24) 83960-84012[53] (1) 84014-84033[20] (34) 84068-84097[30] (15) 84113-84145[33]
71927-72012[86] (22) 72035-72071[37] (25) 72097-72149[53] (1) 72151-72170[20] (35) 72206-72235[30] (16) 72252-72284[33]

Details of the LTR alignment(5'-end):
                                       |83775
CTCGAGGACGAGT-AGG----AATTAAGCTTGGGGATGCTGATACGTCTCCAACATATCTATAATTTATGAAGTATTCATG
|  | |||  ||| | |    || ||| | || | |   *|||||||||||||| ||||||||||||||||||||||||||
CATG-GGATAAGTCATGTTATAAGTAATCATGTGAA---TGATACGTCTCCAACGTATCTATAATTTATGAAGTATTCATG
                               *****---|71911
......
......
  • new format1
$head -20 genome.fa.finder.combine.scn
#LTR_FINDER_parallel -seq genome.fa -size 5000000 -time 1500 -try1 1 -harvest_out -threads 28 -cut /share/home/programs/LTR_FINDER_parallel/bin/cut.pl -finder /share/home/programs/LTR_FINDER_parallel/bin/LTR_FINDER.x86_64-1.0.7/ltr_finder
# LTR_FINDER args=-w 2 -C -D 15000 -d 1000 -L 7000 -l 100 -p 20 -M 0.85
# predictions are reported in the following way
# s(ret) e(ret) l(ret) s(lLTR) e(lLTR) l(lLTR) s(rLTR) e(rLTR) l(rLTR) sim(LTRs) seq-nr chr
# where:
# s = starting position
# e = ending position
# l = length
# ret = LTR-retrotransposon
# lLTR = left LTR
# rLTR = right LTR
# sim = similarity
# seq-nr = sequence order
60774 69360 8587 60774 62502 1729 67625 69360 1736 96.1 0 Chr1
88505 98181 9677 88505 89925 1421 96758 98181 1424 97.7 0 Chr1
......
  • new format2
$head -20 ../02.LTR_Finder_old/genome.fa.finder.combine.scn
index	SeqID	Location	LTR len	Inserted element len	TSR	PBS	PPT	RT	IN (core)	IN (c-term)	RH	Strand	Score	Sharpness	Similarity
[NA]	Chr1	60774-69360	1729,1736	8587	CAAAG	N-N	62504-62518	N-N	N-N	N-N	N-N	-6	0.514,0.529	0.961
[NA]	Chr1	88505-98181	1421,1424	9677	ATGTT	N-N	96726-96740	N-N	N-N	N-N	N-N	+6	0.486,0.514	0.977
......

Shenglong

No output

I have used the LTR_FINDER_parallel in my ubuntu environment, used TAIR10 as example, the command I used was: perl /home/yangf/Desktop/LTR_finder/LTR_FINDER_parallel-1.1/LTR_FINDER_parallel -seq TAIR10.fa -threads 4, it print Job finished! Check out TAIR10.fa.finder.combine.scn, however the TAIR10.fa.finder.combine.scn contains only the title line.

I continued to try different parameters, use -harvest_out or not, use local ltr_finder or not, still this case.

If I just use the ltr_finder not the LTR_FINDER_parallel, it can work. (/home/yangf/Desktop/LTR_finder/LTR_FINDER_parallel-1.1/bin/LTR_FINDER.x86_64-1.0.7/ltr_finder -w 2 -C -D 15000 -d 1000 -L 7000 -l 100 -p 20 -M 0.85 TAIR10.fa > TAIR10.finder.scn)

Since I need to run a 2G large genome, I hope I can use your multithreaded script. Can you help me solve this problem. Sorry for unknown of where the problem is.

LTR_FINDER_parallel running error

Hello, I encountered this error when i was using LTR_FINDER_parallel:

$ perl LTR_FINDER_parallel -seq Chr.fasta -finder /home/csw3/anaconda3/envs/1/bin
Using this LTR_FINDER: /home/csw3/anaconda3/envs/1/bin/
Pass!
Tue Aug 15 07:23:53 2023 CPU1: running on ch_01_sub1
open ch_01_sub1 error!
Tue Aug 15 07:23:53 2023 CPU1: ch_01_sub1 timeout, process it with the salvage mode
Tue Aug 15 07:23:53 2023 CPU2: running on ch_01_sub2
open ch_01_sub2 error!
Tue Aug 15 07:23:53 2023 CPU2: ch_01_sub2 timeout, process it with the salvage mode
Tue Aug 15 07:23:53 2023 CPU3: running on ch_01_sub3
open ch_01_sub1 error!
open ch_01_sub3 error!
Tue Aug 15 07:23:53 2023 CPU3: ch_01_sub3 timeout, process it with the salvage mode
open ch_01_sub2 error!
Tue Aug 15 07:23:53 2023 CPU1: running on ch_01_sub4
Tue Aug 15 07:23:53 2023 CPU4: running on ch_01_sub5
open ch_01_sub4 error!
Tue Aug 15 07:23:53 2023 CPU1: ch_01_sub4 timeout, process it with the salvage mode
open ch_01_sub5 error!
Tue Aug 15 07:23:53 2023 CPU4: ch_01_sub5 timeout, process it with the salvage mode
Tue Aug 15 07:23:53 2023 CPU2: running on ch_02_sub1
open ch_01_sub3 error!
open ch_02_sub1 error!
Tue Aug 15 07:23:53 2023 CPU2: ch_02_sub1 timeout, process it with the salvage mode
open ch_01_sub4 error!
Tue Aug 15 07:23:53 2023 CPU3: running on ch_02_sub2
open ch_01_sub5 error!
open ch_02_sub2 error!
Tue Aug 15 07:23:53 2023 CPU3: ch_02_sub2 timeout, process it with the salvage mode
open ch_02_sub1 error!
Tue Aug 15 07:23:53 2023 CPU1: running on ch_02_sub3
Tue Aug 15 07:23:53 2023 CPU4: running on ch_02_sub4
open ch_02_sub3 error!
Tue Aug 15 07:23:53 2023 CPU1: ch_02_sub3 timeout, process it with the salvage mode
open ch_02_sub4 error!
Tue Aug 15 07:23:53 2023 CPU4: ch_02_sub4 timeout, process it with the salvage mode
Tue Aug 15 07:23:53 2023 CPU2: running on ch_02_sub5
open ch_02_sub2 error!
open ch_02_sub5 error!
Tue Aug 15 07:23:53 2023 CPU2: ch_02_sub5 timeout, process it with the salvage mode
open ch_02_sub3 error!
open ch_02_sub4 error!
Tue Aug 15 07:23:53 2023 CPU3: running on ch_03_sub1
open ch_02_sub5 error!
open ch_03_sub1 error!
Tue Aug 15 07:23:53 2023 CPU3: ch_03_sub1 timeout, process it with the salvage mode
Tue Aug 15 07:23:53 2023 CPU1: running on ch_03_sub2
Tue Aug 15 07:23:53 2023 CPU4: running on ch_03_sub3
open ch_03_sub2 error!
Tue Aug 15 07:23:53 2023 CPU1: ch_03_sub2 timeout, process it with the salvage mode
open ch_03_sub3 error!
...

sequence name:

ch_01
ch_02
ch_03
ch_04
ch_05
ch_06
ch_07
ch_08
ch_09
ch_10
ch_11
...
ch_z

I also tried another format of the sequence name:

ch01
ch02
ch03
ch04
ch05
ch06
ch07
ch08
ch09
ch10
ch11
...
ch_z

but the same error showed again, how can I resolve it?

header comments in fasta files do bad

I found the output of LTR_FINDER_parrallel was almost zero after polishing the draft assembly with Racon.

Before Racon it worked fine but after Racon it went wrong. I found Racon adds comments to the header lines such as contig length and mapped reads used to correct sequences, which seems unexpected for LTR_FINDER_parallel.

So I did "seqkit seq -i genome.fa" to remove the comments and now it works fine.

Just to let you and some other guys know.
Thanks.

GNU C library

Dear Shujun,

When I attempted to run LTR_FINDER_parallel, I got the following error:

LTR_FINDER_parallel/bin/LTR_FINDER.x86_64-1.0.7/ltr_finder: /lib64/libc.so.6: version `GLIBC_2.14' not found

The Linux system on the cluster, which I want to run the program, uses GNU libc version 2.12.
What would you suggest me to do?
The maintainer of the cluster suggested to get the source code to build it from scratch.
Would it be possible for you the share the source code?

Thanks for your help,
Rippei

Check dependencies: LTR_FINDER is not exist in the path myfile/LTR_FINDER_parallel-1.1/bin/LTR_FINDER.x86_64-1.0.7/!

Dear shujun,
I directly download the complete code package of LTR_FINDER_parallel and try to check the dependencies through following command:
$ myfile/LTR_FINDER_parallel-1.1/LTR_FINDER_parallel -check_dependencies
However I got the following error message:
LTR_FINDER is not exist in the path myfile/LTR_FINDER_parallel-1.1/bin/LTR_FINDER.x86_64-1.0.7/!

I'm wondering whether is there any denpendency I missed. I will be obliged if you can check this error message and reply me soon.

Thank you for your patience!
OSfish

error in the file *.combine.scn

Hello,

I am running LTR_FINDER_parallel like this:

LTR_FINDER_parallel -seq ARG.fa -threads 10 -harvest_out -size 1000000 -time 300

However the file ARG.fa.finder.combine.scn only contains the header.

#LTR_FINDER_parallel -seq ARG.fa -size 1000000 -time 300 -try1 1 -harvest_out -threads 10 -cut /project/6019339/egonza02/bin/software/LTR_retrieve
r/LTR_FINDER_parallel/LTR_FINDER_parallel/bin/cut.pl -finder /project/6019339/egonza02/bin/software/LTR_retriever/LTR_FINDER_parallel/LTR_FINDER_p
arallel/bin/LTR_FINDER.x86_64-1.0.7/

LTR_FINDER args=-w 2 -C -D 15000 -d 1000 -L 7000 -l 100 -p 20 -M 0.85

LTR_FINDER_parallel version=v1.2

predictions are reported in the following way

s(ret) e(ret) l(ret) s(lLTR) e(lLTR) l(lLTR) s(rLTR) e(rLTR) l(rLTR) sim(LTRs) seq-nr chr

where:

s = starting position

e = ending position

l = length

ret = LTR-retrotransposon

lLTR = left LTR

rLTR = right LTR

sim = similarity

seq-nr = sequence order

I read in another issue that the problem could be the file name. However, I am not sure how short the file name should be. My file name is already very short. Any help with this would be great.

Best Wishes,

Eric

need help!

the error is :
Tue Mar 22 21:43:24 2022 CPU1: running on CHR1_sub4
open CHR1_sub4 error!
Tue Mar 22 21:43:25 2022 CPU1: CHR1_sub4 timeout, process it with the salvage mode
open CHR1_sub3 error!
Tue Mar 22 21:43:25 2022 CPU2: running on CHR1_sub5
open CHR1_sub5 error!
Tue Mar 22 21:43:25 2022 CPU2: CHR1_sub5 timeout, process it with the salvage mode

l have change the head of sequence to '>chr1'or'>CHR1',but it no work

EDTA - unknown issue

Dear Shujun,

I am very excited to use your pipeline - it looks great from the paper! Unfortunately on my first run I am encountering some errors. I attach the log file from that run in the hope that you can tell me what the issue is.

Note that I have installed and am running EDTA it on a private server on our cluster. I used conda, although I had to sightly modify the installation instructions. In case that could be the source of the issue, here they are below:

mkdir -p /scratch/temporary/djeffrie/condaCache
export CONDA_PKGS_DIRS=/scratch/temporary/djeffrie/condaCache
conda create -y --prefix /scratch/temporary/djeffrie/EDTAcondaenv
conda activate /scratch/temporary/djeffrie/EDTAcondaenv

conda install -y -c conda-forge perl perl-text-soundex multiprocess regex
conda install -y -c cyclus java-jdk
conda install -y -c biocore blast-legacy
conda install -y -c bioconda cd-hit repeatmodeler muscle mdust
conda install -y -c bioconda/label/cf201901 repeatmasker
conda install -y -c anaconda biopython pandas glob2
conda install -y -c anaconda scikit-learn
git clone https://github.com/oushujun/EDTA
./EDTA/EDTA.pl -h

The command I used to run EDTA was:

perl ../../EDTA/EDTA.pl -genome Rtemp_all_scaffs.fasta -threads 36 > EDTA.log 2>&1 &

Many thanks in advance for your help.

Best wishes

Dan

EDTA.log.gz

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.