GithubHelp home page GithubHelp logo

qiukunlong / seeksv Goto Github PK

View Code? Open in Web Editor NEW
19.0 3.0 7.0 6.02 MB

A bioinformatics tool for SV detection and virus integration discovery

Home Page: https://academic.oup.com/bioinformatics/article-abstract/33/2/184/2525700/Seeksv-an-accurate-tool-for-somatic-structural

License: Apache License 2.0

Makefile 0.09% C++ 56.92% C 41.45% SystemVerilog 0.58% Shell 0.16% Python 0.81%

seeksv's Introduction

seeksv

an accurate tool for structural variation and virus integration detection

Usage-Single sample SV

Step 1: Get soft-clipped reads from original bam file.

Inputs

  • input.bam
    • The bam file should be sorted by alignment coordinate. It is recommended to mark duplicate reads by picard. If the bam is marked duplicates by picard, duplicate reads in the bam would be ignored by seeksv.

Command

seeksv getclip -o /path/to/outputs/prefix input.bam

Outputs

  • prefix.clip.fq.gz
    • Fastq file of clipped sequences.
  • prefix.clip.gz
  • prefix.unmapped_1.fq.gz
    • This file is for further analysis
  • prefix.unmapped_2.fq.gz
    • This file is for further analysis

Step 2: Align the clipped sequences to the reference genome

Use bwa to align the clipped sequences get from the original bam file to the reference genome. Use samtools to convert the alignment results to bam. The reference genome should be same with the one the original bam used.

Inputs

  • reference.fa
  • prefix.clip.fq.gz
    • This file is generated by Step 1

Command

  bwa mem  /path/to/reference.fa /path/to/prefix.clip.fq.gz | \
  samtools view  -Sb -o /path/to/outputs/prefix.clip.bam -

Outputs

  • prefix.clip.bam

Step 3: Get final SVs.

Inputs

  • prefix.clip.bam
    • Generated by Step 2
  • input.bam
    • Original bam file
  • prefix.clip.gz
    • Generated by Step 1

Command

seeksv getsv /path/to/prefix.clip.bam \
             /path/to/input.bam \
             /path/to/prefix.clip.gz \
             /path/to/outputs/output.sv.txt \
             /path/to/outputs/output.unmapped.clip.fq.gz

Outputs

  • output.sv.txt
    • Final SV output
  • output.unmapped.clip.fq.gz
    • This file is for further analysis

Call Somatic SV

Inputs

  • normal.bam
    • Original bam file of the normal sample (control sample)
  • normal.clip.gz
    • soft-clipped reads file of the normal sample, it is generated by seeksv getclip
  • tumor.sv.txt
    • SV results of the tumor sample, it is generated by seeksv getsv

Command

seeksv somatic /path/to/normal.bam \
               /path/to/normal.clip.gz \
               /path/to/tumor.sv.txt \
               /path/to/outputs/tumor.somatic.sv.txt

Outputs

  • tumor.somatic.sv.txt
    • Final Somatic SVs

Call Virus Integration

seeksv can be used to detect virus integration, such as HBV integration, EBV integraion, HPV integration. First , merge human reference genome and virus reference genome together to build a hybid reference genome. You can use linux command cat to achieve the goal. Then use bwa to align the reads to the hybid reference genome. Use picard to sort and mark duplicate the bam file. After that ,you get the orignal bam file to call virus integration. Finally, use seeksv to call virus integration. The commands are same as call single sampe SV, please refer to "Usage-Single sample SV". Note that the reference genome you use is the hybid reference genome.

seeksv's People

Contributors

qiukunlong avatar

Stargazers

 avatar Satish G avatar  avatar  avatar  avatar  avatar Huailong Xu avatar  avatar  avatar  avatar  avatar  avatar Jianxiang Shi avatar Sean Lyo avatar Zhigui Bao avatar Sheng Wang avatar Cong Liu avatar Linlin Yan (颜林林) avatar  avatar

Watchers

Sheng Wang avatar  avatar  avatar

seeksv's Issues

output.sv.txt file format Description

I have get the Final SV output named output.sv.txt, while I can't find the file format Description.
Some columns of output.sv.txt is easy to enderstand by its name, some are not. Please add this file format description. Thanks.

Error BAM index

Hi, I'm running into errors in the seeksv getsv step.

When running "seeksv getsv sample.clip.bam $file sample.clip.gz sample.sv.txt sample.unmapped.clip.fq.gz" it gives:
'InputSoftInfoStoreBreakpoint' finished
Bam/sam sample.bam Mean insert size : 182
Mean deviation: 71
'CalculateInsertsizeDeviation' finished
[bam_index_load] fail to load BAM index.
[main_samview] random alignment retrieval only works for indexed BAM files.

My orignal bam file is indexed, and I've also tried to index the generated sample.clip.bam but this did not help.
Any ideas?
Best,

somatic sv filtering

it seems seeksv generates more somatic SVs than other callers - do you have any suggestion for applying filtering? thanks

sam parse query name too long

Hi, thanks for the tool - looking forward to using it. It seems seeksv is using the full sequence as the sequence header/name in the getclip stage, and samtools is choking on this when aligning with bwa (i've tried samtools v1.5 and 1.8):

[M::mem_process_seqs] Processed 161232 reads in 3.408 CPU sec, 3.115 real sec
[E::sam_parse1] query name too long
[W::sam_read1] Parse error at line 235
[main_samview] truncated file.

viewing a sam file gives the same issue:

samtools view -c 14140.clip.sam
[E::sam_parse1] query name too long
[W::sam_read1] Parse error at line 235
[main_samview] truncated file.

example read from clip.fq.gz

@AGGCAATATAAAGATTGCTTTCAATAACCAAGAAGAATTAAACAGAATTATCAACACTCTAAAATAAGGGTGTTGATTATTTTTTTATTTAATCAAACTTATCCACAAGGTATTTTGCTATTTTTCTGTTGATTCTCTAAGCTTTTCTAATTTCCACAGTCTGTGGAAAACTTT
AGGCAATATAAAGATTGCTTTCAATAACCAAGAAGAATTAAACAGAATTATCAACACTCTAAAATAAGGGTGTTGATTATTTTTTTATTTAATCAAACTTATCCACAAGGTATTTTGCTATTTTTCTGTTGATTCTCTAAGCTTTTCTAATTTCCACAGTCTGTGGAAAACTTT
+
+;,+CGCFCFFF<F9=6FCCCCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG

Any suggestions? Thank you

Multiple threads

Hi,
is it possible to run seeksv with multiple threads?

I could not find this option in the help and in the online material. I am running a job for an RNA-seq experiment with 30M reads and is taking more than 2 days for the getsv part. Is it normal?

Thanks in advance

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.