В моем рабочем процессе у меня есть лист образцов, который содержит все образцы, которые предполагается проанализировать, + путь, по которому можно найти входные файлы + эталонный геном, который предполагается использовать. Все это зависит от образца.
В моем файле конфигурации у меня есть список эталонных геномов и для каждого из них список путей к файлам в зависимости от инструмента.
В правиле, которое выполняет выравнивание каждого образца, мне нужно загрузить некоторые из этих файлов, но специфичным для образца способом, потому что эталонный геном может быть не одинаковым для всех образцов.
Вот как я пытался это решить:
params: reference=lambda wildcards: table_samples['reference'][wildcards.sample],
chrom_sizes=config[reference]['chrom_sizes']
Однако, когда я пытаюсь запустить его таким образом, я получаю сообщение об ошибке (непосредственно при запуске Snakemake) о том, что reference
в строке chrom_sizes=...
не определено.
У кого-нибудь есть идея обходного пути?
РЕДАКТИРОВАТЬ: Еще немного информации, потому что я думаю, не совсем понятно, что я имел в виду. Вот соответствующая часть моего файла конфигурации.
hg19:
bwa: 'path/to/hg19/bwa/reference'
samtools: 'path/to/hg19/samtools/reference'
chrom_sizes: '...'
mm9:
bwa: 'path/to/mm9/bwa/reference'
samtools: 'path/to/mm9/samtools/reference'
chrom_sizes: '...'
А вот и образец бланка.
name path reference
sample1 path/to/sample1 mm9
Итак, в строке reference=lambda wildcards: table_samples['reference'][wildcards.sample]
я загружаю соответствующую ссылку, которая будет использоваться для текущего образца. Затем в chrom_sizes=config[reference]['chrom_sizes']
мне нужно использовать reference
в качестве переменной, чтобы получить chrom_sizes
для правильного эталонного генома.
Надеюсь, это проясняет ситуацию.
reference
вconfig[reference]['chrom_sizes']
должна быть переменной или строкой? Похоже, это должна быть строка. - person Manavalan Gajapathy   schedule 22.02.2018