Я отчаянно пытаюсь получить правило, загружающее мои файлы fastq перед выполнением следующих правил. Я перепробовал много вещей, включая то, что предлагается здесь: http://ivory.idyll.org/blog/tag/snakemake.html
Ниже приведена упрощенная версия моего змеиного мейкера:
######### functions
def read_samplesTable(inputTable):
data = pandas.read_csv(inputTable)
# Verify column names
if not {'run', 'organism', 'name', 'experiment_title', 'cell_line', 'rep', 'study_name', 'library_strategy', 'library_layout', 'study_title'}.issubset(data.columns.values):
raise KeyError("The samples file must contain the following named columns: 'run', 'organism', 'name', 'experiment_title', 'cell_line', 'rep', 'study_name', 'library_strategy', 'library_layout', 'study_title'")
return data
def retrieveName(description):
result = []
for items in description.iteritems():
result.append(items[1].split(":")[0])
return result
######### Variables
input_table = config["samples"]["summaryFile"]
samplesData = read_samplesTable(input_table)
index_single = samplesData['library_layout'] == 'SINGLE - '
samplesData_single = samplesData[index_single]
gsm_single = retrieveName(samplesData_single["experiment_title"])
outputName_single = samplesData_single['name'] + "_" + samplesData_single['run'] + "_" + gsm_single + "_" + samplesData_single['study_name'] + "_" + samplesData_single['cell_line'] + "_" + samplesData_single['rep']
single_samples = outputName_single.tolist()
names_srrID_single = samplesData_single['run']
############ Rule
rule all:
input:
expand("data/single/{singleEndName}.fastq.gz", singleEndName = single_samples)
rule download_fastq_single:
output:
singleFastq = "data/single/{singleEndName}.fastq.gz"
params:
outputdirectory = config["rawdata"]["fastqrootfolder"]
ssridsingle = lambda wildcards: samplesData_single.loc[wildcards.names_srrID_single, "run"]
shell:
"fastq-dump --accession {params.srridsingle} --defline-seq '@$sn[_$rn]/$ri' --defline-qual \'+\' --gzip --outdir {params.outputdirectory}"
Правило в отдельный файл 'download-fastq-snakefile', и я получаю сообщение об ошибке SyntaxError in line 6 of download-fastq-snakefile
.
Проблема, как я и ожидал, исходит из строки ssridsingle = lambda wildcards: samplesData_single.loc[wildcards.names_srrID_single, "run"]
Если бы вы могли мне помочь это было бы фантастически c!
Спасибо