GithubHelp home page GithubHelp logo

Comments (5)

riederd avatar riederd commented on June 12, 2024

Unfortunately there is no option to set a specific entry point into the pipeline at this time. However, it will be so with nextNEOpi2 which we started to develop.

Meanwhile, did you try to pass the relaxed filtering via command line using --pVACseq_filter_set relaxed instead of changing the config file?

You could also use the unfiltered calls (*_MHC_Class_[I,II]_all_epitopes_ccf_ref_match.tsv) and filter them according to your needs using awk, excel, R, pandas or similar.

here is an example:

#!/bin/bash

# Filters
#
declare RANK=0.5
declare TUMOR_DNA_VAF=0.2
declare TUMOR_RNA_VAF=0.2
declare GENE_EXPR=1
declare TRANSCRIPT_SUPPORT_LEVEL=1

cat example_MHC_Class_I_all_epitopes_ccf_ref_match.tsv | \
        awk \
        -v RANK="$RANK" \
        -v TUMOR_DNA_VAF="$TUMOR_DNA_VAF" \
        -v TUMOR_RNA_VAF="$TUMOR_RNA_VAF" \
        -v GENE_EXPR="$GENE_EXPR" \
        -v TRANSCRIPT_SUPPORT_LEVEL="$TRANSCRIPT_SUPPORT_LEVEL" \
        'BEGIN{OFS=FS="\t"}{ if(NR==1) {print} ; if( $28 < RANK && $31 > TUMOR_DNA_VAF && $33 > TUMOR_RNA_VAF && $36 > GENE_EXPR && $7 <= TRANSCRIPT_SUPPORT_LEVEL) { print }}' \
        > example_MHC_Class_I_filtered_epitopes_ccf_ref_match.tsv

HTH

from nextneopi.

mantczakaus avatar mantczakaus commented on June 12, 2024

Hi @riederd ,

thanks for your response!

could you expand a little bit on this point? "Meanwhile, did you try to pass the relaxed filtering via command line using --pVACseq_filter_set relaxed instead of changing the config file?". I tried to change the option in the .command.sh file of the corresponding work directory for one of the allelese but that triggered everything again from the alignment after resuming the pipeline. I guess I could just rerun those commands for each allele outside of the pipeline, just manually using the pvac image. The downside of that is we would need to keep all the pVAC intermediary files from the work directory until we decide on the filtering options.

I'm not sure if we could use the second solution you provided because the pvacseq run applies four filtering procedures. The last one selects one neoepitope per variant. If I understand right this is not included in that solution. https://pvactools.readthedocs.io/en/latest/pvacseq/output_files.html#filters-applied-to-the-filtered-tsv-file https://pvactools.readthedocs.io/en/latest/pvacseq/filter_commands.html#filter-commands

What I came up in the end is to take the file with all epitopes from analyses/patient1/12_pVACseq folder (I tried with this one patient1_MHC_Class_I_all_epitopes_ccf_ref_match.tsv but the numbers seem to be strings not integers). Then I split it by HLA (to keep one neoepitope per variant and HLA which is currently the case in nextNEOpi as the all neoepitopes are filtered separately for HLAs). Then I manually apply the filtering starting with pvacseq binding_filter and ending with pvacseq top_score_filter. Then I concatenate the files. This way I was able to go from patient1_MHC_Class_I_all_epitopes.tsv to patient1_MHC_Class_I_filtered_epitopes.tsv. Any thoughts on this?

Best wishes,

Magda

from nextneopi.

mantczakaus avatar mantczakaus commented on June 12, 2024

Meanwhile, did you try to pass the relaxed filtering via command line using --pVACseq_filter_set relaxed instead of changing the config file?

You could also use the unfiltered calls (*_MHC_Class_[I,II]_all_epitopes_ccf_ref_match.tsv) and filter them according to your needs using awk, excel, R, pandas or similar.

Hi, in your paper (Supplementary Table 6) you mentioned you were able to recover 8 out of 9 neoepitopes from patient1 from the TESLA dataset. Would you be able to clarify if you achieve that by setting relaxed filtering in the params.config like this

  pVACseq_filter_set = "relaxed"
  pVACseq_filter_sets {
    standard = "--binding-threshold 500 --top-score-metric median --minimum-fold-change 0.0 --normal-cov 5 --tdna-cov 10 --trna-cov 10 --normal-vaf 0.02 --tdna-vaf 0.25 --trna-vaf 0.25 --expn-val 1 --maximum-transcript-support-level 1"
    relaxed = "--binding-threshold 500 --percentile-threshold 2 --top-score-metric lowest --expn-val 2 --maximum-transcript-support-level 5 --normal-vaf 0.01 --trna-vaf 0.02 --tdna-vaf 0.02"
    custom = "${params.pVACseq_custom_filters}"
  }

or did you use something like the bash script you provided here?

from nextneopi.

riederd avatar riederd commented on June 12, 2024

Hi, as far as I recall my former lab colleague who ran the TESLA analysis used the following options:

--trim_adapters true --trim_adapters_RNAseq true --use_NetChop false --use_NetMHCstab true --pVACseq_filter_set relaxed

For Supplementary Table 6 she used a custom filter:
Best MT Score <= 500
Best MT Percentile <= 2
Gene Expression <= 2

Please keep also in mind, that it was run with older versions of the pipeline and especially with older versions of the tools therein.

And sorry for the late reply, I was out of office....

Let me know if it answers you question and if I may close the issue.

from nextneopi.

mantczakaus avatar mantczakaus commented on June 12, 2024

Hi @riederd thank you for the clarification. I was not able to reproduce the results with the settings you provided but it may be as you said because of the older versions of tools. I think it's ok to close this issue.

Just fyi, these are the results I got:

patient_id tesla_validated_in_filtered_supt6 tesla_validated_in_filtered_rel
1 8 2
2 4 3
3 12 8
12 3 0
16 1 0

when i used the following filter settings:

parameter relaxed supt6
binding-threshold 500 500
percentile-threshold 2 2
top-score-metric lowest lowest
minimum-fold-change 0 0
normal-cov 5 0
tdna-cov 10 0
trna-cov 10 0
normal-vaf 0.01 1
tdna-vaf 0.02 0
trna-vaf 0.02 0
expn-val 2 2
maximum-transcript-support-level 5 5

from nextneopi.

Related Issues (20)

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.