Giter VIP home page Giter VIP logo

chomp's People

Contributors

bretonics avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

shekharpro

chomp's Issues

STAR Aligner

Possibly switch to STAR RNA-seq aligner to search sequence to CRISPR sequence matches.

Rank off targets

Get match hits for each CRISPR and rank matches according to how many bp are matched. Not only how many occurrences per target throughout genome but which has the least matching base pairs.

Output directory

Fix output directory to a be under default top level gRNA directory

gRNA
    |_gene1
    |_gene2
    |_gene3

Sort based on number or occurrences first

The number of off-target sites should be minimized, thus the number of occurrences (number of times the CRISPR oligo matches back to the sequence -- may it be genomic or onto itself--) the least number of off-target matches the better.

Number of occurrences incorrect

The number of occurrences per CRISPR query match is incorrect. Each successive match gets it's previous match added to the number of occurrences.

This array is not flushing.

Seems to work without -genomes option...what don't I see

Subroutines

Subroutines:

  • setParameters (manage #3)
  • getSequence subroutine to return sequence details with BioPerl

Handle process if gene present in same genome searched

In cases where crispr sequences are being searched in sequence-seq, where the same gene sequence is present in the genome -genome, output should reflect handling exact (23 bp) matches.

Since same gene sequence is searched for crisprs, there will be exact matches in the genome for each crispr sequence found. We want to base sorting on 2nd most matched bp in this case and omit exact matches.

Refactor sequence handling

Handling of sequence information should reside in module and check for errors:

  • mv getSeqDetails to Search module
  • croak if sequence empty

Create report

Report should have headers with descriptive comments on how the results were generated.

ADD

  • Add call parameters
  • Time/date
  • Number of hits per subject
  • Total number of (no)/hits

BLAST against multiple sequences

Add support to BLAST against multiple chromosomes or sequences.

  • append name (-out and subject sequence) to blast.html output. Ex.) blast_geneX_ChrX.html
  • mv output to CRISPRS/blast/
  • support directory vs. files

"No hits found" in blast search breaks hash sorting

When a crispr sequence has no matching sequences in search sequence, then nothing is stored in hash. This causes an "undefined value" error when sorting unique identities for each match.

  • The integrity of the 'targets' hash must be checked to include all crispr occurrences (keys)
  • If no matches found for crispr, then store appropriate info in attributes

blast subroutine - BAD data structure

Anonymous hash data structure incorrectly constructed at line 54.

May be related to #6 , but needs to correctly pair key->value

'CRISPR_9' => [
                          {
                            'qseqid' => '1',
                            'qend' => '25',
                            'qstart' => '23',
                            'nident' => undef,
                            'pident' => '23
',
                            'sstart' => '47',
                            'send' => 'plus',
                            'sstrand' => '100.000'
                          },
                          {
                            'pident' => '15
',
                            'sstart' => '213',
                            'send' => 'plus',
                            'sstrand' => '93.750',
                            'nident' => undef,
                            'qseqid' => '1',
                            'qstart' => '16',
                            'qend' => '198'
                          },

Multi FASTA

Allow multi fasta file for -genome option.

Currently searches against multiple files passed in -genome option, but only searches first sequence in multi fasta file (or first '>').

Arguments to allow setting sorting options

Allow the sorting to be increasing or decreasing of occurrences/identities. This can be achieved in 3 different ways:

  • -sorting option setting each or both simultaneously
  • -occ option to allow sorting by occurrences to be inc/dec
  • -ident option to allow sorting by identities to be inc/dec

Sorting using 'No hits' gets messed up

After fixing issue #20, the removal of CRISPRs with 'No Hits' results in removing them completely when sorting on line 337.

#20 fixes 'undef' issue, but introduces bug where CRISPR may not necessarily be missing in all subject sequences (not only from the singular subject where it is not found). Currently it completely omits those others.

Searching CRISPR targets against subject_1
CRISPR_22 has 0 hits here
CRISPR_50 has 0 hits here
CRISPR_72 has 0 hits here
CRISPR_93 has 0 hits here
CRISPR_129 has 0 hits here

Searching CRISPR targets against subject_2
CRISPR_25 has 0 hits here
CRISPR_91 has 0 hits here

So instead of omitting CRISPRS 22, 50, 72, 93, 129 only for subject_1, it does it for all subjects.

If 'No Hits' CRISPRs are not removed, sorting fails. Conundrum.

CRISPRS sequences differ between files

Different CRISPR sequences in BLAST results than from 'crisprs.txt' file containing detailed information.

  • ✔︎ FASTA file names matche with HTML output
  • ❌ BLAST output does not match 'crisprs.txt'

Add genome parameter

Add the following parameters as command line arguments:

  • -genome: Genome file to use in blast search instead of self -seq option

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.