Skip to content

Commit

Permalink
Merge pull request #196 from griffithlab/flask
Browse files Browse the repository at this point in the history
Merge flask branch into develop
  • Loading branch information
susannasiebert committed Sep 21, 2016
2 parents 8e82d29 + 8269c11 commit b1a4a6b
Show file tree
Hide file tree
Showing 18 changed files with 1,594 additions and 10 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ nytprof.out
*.o
*.bs
/_eumm/
__pycache__
15 changes: 15 additions & 0 deletions pvacseq.egg-info/PKG-INFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Metadata-Version: 1.1
Name: pvacseq
Version: 3.0.5
Summary: Personalized Variant Antigens by Cancer Sequencing (pVAC-Seq)
Home-page: https://github.com/griffithlab/pVAC-Seq
Author: Jasreet Hundal, Susanna Kiwala, Aaron Graubert, Jason Walker, Chris Miller, Malachi Griffith and Elaine Mardis
Author-email: pvacseq-support@genome.wustl.edu
License: NPOSL-3.0
Description: A cancer immunotherapy pipeline for the identification of personalized Variant Antigens by Cancer Sequencing (pVAC-Seq)
Keywords: antigens neoantigens cancer sequencing variant variants
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Programming Language :: Python :: 3.5
63 changes: 63 additions & 0 deletions pvacseq.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
pvacseq/__init__.py
pvacseq/pvacseq.py
pvacseq.egg-info/PKG-INFO
pvacseq.egg-info/SOURCES.txt
pvacseq.egg-info/dependency_links.txt
pvacseq.egg-info/entry_points.txt
pvacseq.egg-info/requires.txt
pvacseq.egg-info/top_level.txt
pvacseq/VEP_plugins/Wildtype.pm
pvacseq/example_data/Test_21.key
pvacseq/example_data/genes.fpkm_tracking
pvacseq/example_data/input.vcf
pvacseq/example_data/isoforms.fpkm_tracking
pvacseq/example_data/class_i/Test.chop.tsv
pvacseq/example_data/class_i/Test.combined.parsed.tsv
pvacseq/example_data/class_i/Test.filtered.binding.tsv
pvacseq/example_data/class_i/Test.filtered.coverage.tsv
pvacseq/example_data/class_i/Test.final.tsv
pvacseq/example_data/class_i/Test.stab.tsv
pvacseq/example_data/class_i/Test.tsv
pvacseq/example_data/class_i/Test_21.fa
pvacseq/example_data/class_i/tmp/Test.HLA-E*01:01.10.parsed.tsv_1-200
pvacseq/example_data/class_i/tmp/Test.HLA-E*01:01.9.parsed.tsv_1-200
pvacseq/example_data/class_i/tmp/Test.HLA-G*01:09.10.parsed.tsv_1-200
pvacseq/example_data/class_i/tmp/Test.HLA-G*01:09.9.parsed.tsv_1-200
pvacseq/example_data/class_i/tmp/Test.ann.HLA-E*01:01.10.tsv_1-200
pvacseq/example_data/class_i/tmp/Test.ann.HLA-E*01:01.9.tsv_1-200
pvacseq/example_data/class_i/tmp/Test.pickpocket.HLA-E*01:01.10.tsv_1-200
pvacseq/example_data/class_i/tmp/Test.pickpocket.HLA-E*01:01.9.tsv_1-200
pvacseq/example_data/class_i/tmp/Test.pickpocket.HLA-G*01:09.10.tsv_1-200
pvacseq/example_data/class_i/tmp/Test.pickpocket.HLA-G*01:09.9.tsv_1-200
pvacseq/example_data/class_i/tmp/Test_21.fa.split_1-200
pvacseq/example_data/class_i/tmp/Test_21.fa.split_1-200.key
pvacseq/example_data/class_ii/Test.chop.tsv
pvacseq/example_data/class_ii/Test.combined.parsed.tsv
pvacseq/example_data/class_ii/Test.filtered.binding.tsv
pvacseq/example_data/class_ii/Test.filtered.coverage.tsv
pvacseq/example_data/class_ii/Test.final.tsv
pvacseq/example_data/class_ii/Test.tsv
pvacseq/example_data/class_ii/Test_31.fa
pvacseq/example_data/class_ii/tmp/Test.H2-IAb.parsed.tsv_1-200
pvacseq/example_data/class_ii/tmp/Test.nn_align.H2-IAb.tsv_1-200
pvacseq/example_data/class_ii/tmp/Test_31.fa.split_1-200
pvacseq/example_data/class_ii/tmp/Test_31.fa.split_1-200.key
pvacseq/lib/__init__.py
pvacseq/lib/binding_filter.py
pvacseq/lib/call_iedb.py
pvacseq/lib/combine_parsed_outputs.py
pvacseq/lib/convert_vcf.py
pvacseq/lib/coverage_filter.py
pvacseq/lib/download_example_data.py
pvacseq/lib/generate_fasta.py
pvacseq/lib/generate_fasta_key.py
pvacseq/lib/install_vep_plugin.py
pvacseq/lib/main.py
pvacseq/lib/net_chop.py
pvacseq/lib/netmhc_stab.py
pvacseq/lib/parse_output.py
pvacseq/lib/pipeline.py
pvacseq/lib/prediction_class.py
pvacseq/lib/valid_alleles.py
pvacseq/server/__init__.py
pvacseq/server/app.py
1 change: 1 addition & 0 deletions pvacseq.egg-info/dependency_links.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

4 changes: 4 additions & 0 deletions pvacseq.egg-info/entry_points.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[console_scripts]
pvacseq = pvacseq.pvacseq:main
pvacseq-ui = pvacseq.server.app:main

3 changes: 3 additions & 0 deletions pvacseq.egg-info/requires.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
PyVCF
requests
connexion
1 change: 1 addition & 0 deletions pvacseq.egg-info/top_level.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pvacseq
20 changes: 15 additions & 5 deletions pvacseq/lib/pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ def tsv_file_path(self):

def convert_vcf(self):
print("Converting VCF to TSV")
sys.stdout.flush()
convert_params = [
self.input_file,
self.tsv_file_path(),
Expand Down Expand Up @@ -107,19 +108,23 @@ def split_fasta_file_and_create_key_files(self):
if split_end > entry_count:
split_end = entry_count
print("Splitting FASTA into smaller chunks - Entries %d-%d" % (split_start, split_end))

split_fasta_file_path = "%s_%d-%d"%(self.split_fasta_basename(), split_start, split_end)
if os.path.exists(split_fasta_file_path):
print("Split FASTA file for Entries %d-%d already exists. Skipping." % (split_start, split_end))

[entry for entry in chunk]
else:
split_writer = open(split_fasta_file_path, mode='w')
split_writer.writelines(chunk)
split_writer.close()
print("Completed")
print("Generating FASTA Key File - Entries %d-%d" % (split_start, split_end))

split_fasta_key_file_path = split_fasta_file_path + '.key'
if os.path.exists(split_fasta_key_file_path):
print("Split FASTA Key File for Entries %d-%d already exists. Skipping." % (split_start, split_end))

else:
lib.generate_fasta_key.main([
split_fasta_file_path,
Expand All @@ -141,6 +146,7 @@ def combined_parsed_path(self):

def combined_parsed_outputs(self, split_parsed_output_files):
print("Combining Parsed IEDB Output Files")
sys.stdout.flush()
lib.combine_parsed_outputs.main([
*split_parsed_output_files,
self.combined_parsed_path()
Expand All @@ -152,6 +158,7 @@ def binding_filter_out_path(self):

def binding_filter(self):
print("Running Binding Filters")
sys.stdout.flush()
lib.binding_filter.main(
[
self.combined_parsed_path(),
Expand All @@ -168,6 +175,7 @@ def coverage_filter_out_path(self):

def coverage_filter(self):
print("Running Coverage Filters")
sys.stdout.flush()
coverage_params = [
self.binding_filter_out_path(),
self.coverage_filter_out_path(),
Expand All @@ -194,6 +202,7 @@ def net_chop_out_path(self):

def net_chop(self):
print("Submitting remaining epitopes to NetChop")
sys.stdout.flush()
lib.net_chop.main([
self.coverage_filter_out_path(),
self.net_chop_out_path(),
Expand All @@ -209,6 +218,7 @@ def netmhc_stab_out_path(self):

def call_netmhc_stab(self):
print("Running NetMHCStabPan")
sys.stdout.flush()
lib.netmhc_stab.main([
self.net_chop_out_path(),
self.netmhc_stab_out_path(),
Expand Down Expand Up @@ -265,11 +275,11 @@ def execute(self):
for symlink in symlinks_to_delete:
os.unlink(symlink)


print("\n")
print("Done: pvacseq has completed. File", self.final_path(),
"contains list of filtered putative neoantigens")
print("Done: pvacseq has completed. File %s contains list of filtered putative neoantigens" % self.final_path())
print("We recommend appending coverage information and running `pvacseq coverage_filter` to filter based on sequencing coverage information")

sys.stdout.flush()
if self.keep_tmp_files is False:
shutil.rmtree(self.tmp_dir)

Expand Down Expand Up @@ -320,6 +330,7 @@ def call_iedb_and_parse_outputs(self, chunks):
split_iedb_output_files.append(split_iedb_out)
continue
print("Running IEDB on Allele %s and Epitope Length %s with Method %s - Entries %s" % (a, epl, method, chunk))
sys.stdout.flush()
lib.call_iedb.main([
split_fasta_file_path,
split_iedb_out,
Expand Down Expand Up @@ -351,7 +362,6 @@ def call_iedb_and_parse_outputs(self, chunks):
lib.parse_output.main(params)
print("Completed")
split_parsed_output_files.append(split_parsed_file_path)

return split_parsed_output_files

class MHCIIPipeline(Pipeline):
Expand Down Expand Up @@ -395,6 +405,7 @@ def call_iedb_and_parse_outputs(self, chunks):
split_iedb_output_files.append(split_iedb_out)
continue
print("Running IEDB on Allele %s with Method %s - Entries %s" % (a, method, chunk))
sys.stdout.flush()
lib.call_iedb.main([
split_fasta_file_path,
split_iedb_out,
Expand Down Expand Up @@ -438,4 +449,3 @@ def split_file(reader, lines=400):
tmp = next(reader)
except StopIteration:
return

1 change: 1 addition & 0 deletions pvacseq/server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pvacseq-ui

0 comments on commit b1a4a6b

Please sign in to comment.