comparison phylogenomics_analysis.xml @ 14:a8a4f6009451 draft

Uploaded
author greg
date Fri, 06 Jan 2017 13:58:59 -0500
parents b37db5a8ed13
children 34aa10ba20ef
comparison
equal deleted inserted replaced
13:b37db5a8ed13 14:a8a4f6009451
12 </stdio> 12 </stdio>
13 <command> 13 <command>
14 <![CDATA[ 14 <![CDATA[
15 #import os 15 #import os
16 #import sys 16 #import sys
17 #set invalid_input = "The selected input is not a valid list of sequences classified into gene family clusters, select another input." 17
18 #if not $os.path.exists($orthogroup_faa.extra_files_path): 18 #set invalid_input_msg = "The selected input is not a valid list of sequences classified into gene family clusters. Select an input with the label 'Sequences classified into gene family clusters on...'."
19 print > $sys.stderr($invalid_input) 19 #set no_coding_sequences_msg = "No corresponding coding sequences were generated for the selected input. You must not have selected 'Yes' for the 'Create corresponding coding sequences?' option in the GeneFamilyClassifier tool for the selected input."
20 $sys.exit(1) 20
21 #end if 21 #set input_extra_files_path = $orthogroup_faa.extra_files_path
22 #set src_dir = $os.path.join('phylogenomicsAnalysis_dir', 'orthogroups_fasta') 22 #if not $os.path.exists($input_extra_files_path):
23 #set num_orthogroup_faa = 0 23 #raise Exception($invalid_input_msg)
24 #for f in $os.listdir($src_dir): 24 #end if
25 #if $f.endswith('.faa'): 25
26 #set num_orthogroup_faa = $num_orthogroup_faa + 1 26 #set num_orthogroup_faa = $len([f for f in $os.listdir($input_extra_files_path) if f.endswith('.faa')])
27 #end if
28 #end for
29 #if $num_orthogroup_faa == 0: 27 #if $num_orthogroup_faa == 0:
30 print > $sys.stderr($invalid_input) 28 #raise Exception($invalid_input_msg)
31 $sys.exit(1) 29 #end if
32 #end if 30
33 #set num_orthogroup_fna = 0 31 #set num_orthogroup_fna = $len([f for f in $os.listdir($input_extra_files_path) if f.endswith('.fna')])
34 #for f in $os.listdir($src_dir): 32
35 #if $f.endswith('.fna'): 33 #set src_fasta_dir = $os.path.join('phylogenomicsAnalysis_dir', 'orthogroups_fasta')
36 #set num_orthogroup_fna = $num_orthogroup_fna + 1 34 #set dest_fasta_dir = $output_fasta.extra_files_path
37 #end if 35
38 #end for 36 #if str($options_type.options_type_selector) == 'advanced' and str($options_type.multiple_sequence_alignments_cond.multiple_sequence_alignments) == 'yes' and str($options_type.multiple_sequence_alignments_cond.multiple_sequence_alignments_option_cond.'multiple_sequence_alignments_option == 'pasta_alignments':
39 #set dest_dir = $output.extra_files_path 37 #set generate_output_aln = True
40 mkdir -p $dest_dir && 38 #set src_aln_dir = $os.path.join('phylogenomicsAnalysis_dir', 'orthogroups_aln')
39 #set dest_aln_dir = $output_aln.extra_files_path
40 mkdir -p $dest_aln_dir &&
41 #else:
42 #set generate_output_aln = False
43 #end if
44
45 #if str($options_type.options_type_selector) == 'advanced' and str($options_type.phylogenetic_trees_cond.phylogenetic_trees) == 'yes':
46 #set generate_output_tree = True
47 #set src_tree_dir = $os.path.join('phylogenomicsAnalysis_dir', 'orthogroups_tree')
48 #set dest_tree_dir = $output_tree.extra_files_path
49 mkdir -p $dest_tree_dir &&
50 #else:
51 #set generate_output_tree = False
52 #end if
53
54 mkdir -p $dest_fasta_dir &&
55
41 PhylogenomicsAnalysis 56 PhylogenomicsAnalysis
57 --num_threads \${GALAXY_SLOTS:-4}
42 --orthogroup_faa "$orthogroup_faa.extra_files_path" 58 --orthogroup_faa "$orthogroup_faa.extra_files_path"
59 --scaffold_dir "${GALAXY_DATA_INDEX_DIR}/plant_tribes/scaffolds"
43 --scaffold "$scaffold" 60 --scaffold "$scaffold"
44 --method $method 61 --method $method
62
45 #if str($options_type.options_type_selector) == 'advanced': 63 #if str($options_type.options_type_selector) == 'advanced':
46 #if str($options_type.multiple_sequence_alignments_cond.multiple_sequence_alignments) == 'yes': 64 #if str($options_type.multiple_sequence_alignments_cond.multiple_sequence_alignments) == 'yes':
47 #set multiple_sequence_alignments_option_cond = $options_type.multiple_sequence_alignments_cond.multiple_sequence_alignments_option_cond 65 #set multiple_sequence_alignments_option_cond = $options_type.multiple_sequence_alignments_cond.multiple_sequence_alignments_option_cond
48 #set multiple_sequence_alignments_option = $multiple_sequence_alignments_option_cond.multiple_sequence_alignments_option 66 #set multiple_sequence_alignments_option = $multiple_sequence_alignments_option_cond.multiple_sequence_alignments_option
49 #set multiple_codon_alignments_cond = $options_type.multiple_sequence_alignments_cond.multiple_codon_alignments_cond 67 #set input_includes_coding_sequences_cond = $options_type.multiple_sequence_alignments_cond.input_includes_coding_sequences_cond
50 #set multiple_codon_alignments = $multiple_codon_alignments_cond.multiple_codon_alignments 68 #set input_includes_coding_sequences = $input_includes_coding_sequences_cond.input_includes_coding_sequences
51 #set use_corresponding_coding_sequences_cond = $multiple_codon_alignments_cond.use_corresponding_coding_sequences_cond 69 #if str($input_includes_coding_sequences) == 'yes':
52 #set use_corresponding_coding_sequences = $use_corresponding_coding_sequences_cond.use_corresponding_coding_sequences 70 #set multiple_codon_alignments_cond = $input_includes_coding_sequences_cond.multiple_codon_alignments_cond
71 #set multiple_codon_alignments = $multiple_codon_alignments_cond.multiple_codon_alignments
72 #set use_corresponding_coding_sequences_cond = $multiple_codon_alignments_cond.use_corresponding_coding_sequences_cond
73 #set use_corresponding_coding_sequences = $use_corresponding_coding_sequences_cond.use_corresponding_coding_sequences
74 #end if
53 #if str($multiple_sequence_alignments_option) == 'create_alignments': 75 #if str($multiple_sequence_alignments_option) == 'create_alignments':
54 --create_alignments 76 --create_alignments
55 #else if str($multiple_sequence_alignments_option) == 'add_alignments': 77 #else if str($multiple_sequence_alignments_option) == 'add_alignments':
56 --add_alignments 78 --add_alignments
57 #else if str($multiple_sequence_alignments_option) == 'pasta_alignments': 79 #else if str($multiple_sequence_alignments_option) == 'pasta_alignments':
58 --pasta_alignments 80 --pasta_alignments
59 --pasta_iter_limit $multiple_sequence_alignments_option_cond.pasta_iter_limit 81 --pasta_iter_limit $multiple_sequence_alignments_option_cond.pasta_iter_limit
60 #end if 82 #end if
61 #if str($multiple_codon_alignments) == 'yes': 83 #if str($input_includes_coding_sequences) == 'yes':
62 --codon_alignments 84 #if str($multiple_codon_alignments) == 'yes':
63 #if str($use_corresponding_coding_sequences) == 'yes': 85 --codon_alignments
64 #if $num_orthogroup_fna == 0: 86 #if str($use_corresponding_coding_sequences) == 'yes':
65 print > $sys.stderr("No corresponding coding sequences were generated for the selected input. You must not have selected 'Yes' for the 'Create corresponding coding sequences?' option in the GeneFamilyClassifier tool for the selected input.") 87 #if $num_orthogroup_fna == 0:
66 $sys.exit(1) 88 #raise Exception($no_coding_sequences_msg)
89 #end if
90 --orthogroup_fna
67 #end if 91 #end if
68 --orthogroup_fna 92 --sequence_type $multiple_codon_alignments_cond.sequence_type
69 #end if 93 #end if
70 --sequence_type $multiple_codon_alignments_cond.sequence_type
71 #end if 94 #end if
72 #end if 95 #end if
96
73 #if str($options_type.phylogenetic_trees_cond.phylogenetic_trees) == 'yes': 97 #if str($options_type.phylogenetic_trees_cond.phylogenetic_trees) == 'yes':
74 #set tree_inference_cond = $options_type.phylogenetic_trees_cond.tree_inference_cond 98 #set tree_inference_cond = $options_type.phylogenetic_trees_cond.tree_inference_cond
75 #set tree_inference_method = $tree_inference_cond.tree_inference 99 #set tree_inference_method = $tree_inference_cond.tree_inference
76 --tree_inference $tree_inference_method 100 --tree_inference $tree_inference_method
77 #if str($tree_inference_method) == 'raxml': 101 #if str($tree_inference_method) == 'raxml':
78 --rooting_order "$tree_inference_cond.rooting_order" 102 #set rooting_order_file_cond = $tree_inference_cond.rooting_order_file_cond
103 #set rooting_order_file = $rooting_order_file_cond.rooting_order_file
104 #if str($rooting_order_file) == 'yes':
105 --rooting_order "$rooting_order_file.rooting_order"
106 #end if
79 --bootstrap_replicates $tree_inference_cond.bootstrap_replicates 107 --bootstrap_replicates $tree_inference_cond.bootstrap_replicates
80 #end if 108 #end if
81 --max_orthogroup_size $options_type.phylogenetic_trees_cond.max_orthogroup_size 109 --max_orthogroup_size $options_type.phylogenetic_trees_cond.max_orthogroup_size
82 --min_orthogroup_size $options_type.phylogenetic_trees_cond.min_orthogroup_size 110 --min_orthogroup_size $options_type.phylogenetic_trees_cond.min_orthogroup_size
83 #end if 111 #end if
112
84 #if str($options_type.msa_quality_control_options_cond.msa_quality_control_options) == 'yes': 113 #if str($options_type.msa_quality_control_options_cond.msa_quality_control_options) == 'yes':
85 #set msa_quality_control_options_cond = $options_type.msa_quality_control_options_cond 114 #set msa_quality_control_options_cond = $options_type.msa_quality_control_options_cond
86 #set remove_gappy_sequences_cond = $msa_quality_control_options_cond.remove_gappy_sequences_cond 115 #set remove_gappy_sequences_cond = $msa_quality_control_options_cond.remove_gappy_sequences_cond
87 #if str($remove_gappy_sequences_cond) == 'yes': 116 #if str($remove_gappy_sequences_cond) == 'yes':
88 #set trim_type_cond = $remove_gappy_sequences_cond.trim_type_cond 117 #set trim_type_cond = $remove_gappy_sequences_cond.trim_type_cond
93 --gap_trimming $trim_type_cond.gap_trimming 122 --gap_trimming $trim_type_cond.gap_trimming
94 #end if 123 #end if
95 #end if 124 #end if
96 #end if 125 #end if
97 #end if 126 #end if
98 --scaffold_dir "${GALAXY_DATA_INDEX_DIR}/plant_tribes/scaffolds" 127
99 --num_threads \${GALAXY_SLOTS:-4} 128 && echo "Sequence alignments and corresponding phylogenies: `ls $src_fasta_dir | wc -l` files" > $output_fasta
100 && echo "Sequence alignments and corresponding phylogenies: `ls $src_dir | wc -l` files" > $output 129 && ls $src_fasta_dir >> $output_fasta
101 && ls $src_dir >> $output 130 && mv $src_fasta_dir/* $dest_fasta_dir
102 && mv $src_dir/* $dest_dir 131
132 #if $generate_output_aln:
133 && echo "Sequence alignments and corresponding phylogenies using PASTA: `ls $src_aln_dir | wc -l` files" > $output_aln
134 && ls $src_aln_dir >> $output_aln
135 && mv $src_aln_dir/* $dest_aln_dir
136 #end if
137
138 #if $generate_output_tree:
139 && echo "Phylogenetic trees: `ls $src_tree_dir | wc -l` files" > $output_tree
140 && ls $src_tree_dir >> $output_tree
141 && mv $src_tree_dir/* $dest_tree_dir
142 #end if
103 ]]> 143 ]]>
104 </command> 144 </command>
105 <inputs> 145 <inputs>
106 <param name="orthogroup_faa" format="txt" type="data" label="Select sequences classified into gene family clusters"/> 146 <param name="orthogroup_faa" format="txt" type="data" label="Select sequences classified into gene family clusters"/>
107 <param name="scaffold" type="select" label="Orthogroups or gene families proteins scaffold"> 147 <param name="scaffold" type="select" label="Orthogroups or gene families proteins scaffold">
126 <option value="yes">Yes</option> 166 <option value="yes">Yes</option>
127 </param> 167 </param>
128 <when value="no" /> 168 <when value="no" />
129 <when value="yes"> 169 <when value="yes">
130 <conditional name="multiple_sequence_alignments_option_cond"> 170 <conditional name="multiple_sequence_alignments_option_cond">
131 <param name="multiple_sequence_alignments_option" label="Select option" type="select" force_select="True"> 171 <param name="multiple_sequence_alignments_option" label="Select process for multiple sequence alignments" type="select" force_select="True">
132 <option value="create_alignments">Create orthogroup protein multiple sequence alignments including scaffold backbone proteins (MAFFT algorithm)</option> 172 <option value="create_alignments">Create orthogroup protein multiple sequence alignments including scaffold backbone proteins (MAFFT algorithm)</option>
133 <option value="add_alignments">Add unaligned orthogroup proteins to scaffold backbone multiple sequence alignments (MAFFT algorithm)</option> 173 <option value="add_alignments">Add unaligned orthogroup proteins to scaffold backbone multiple sequence alignments (MAFFT algorithm)</option>
134 <option value="pasta_alignments">Create orthogroup protein multiple sequence alignments including scaffold backbone proteins (PASTA algorithm)</option> 174 <option value="pasta_alignments">Create orthogroup protein multiple sequence alignments including scaffold backbone proteins (PASTA algorithm)</option>
135 </param> 175 </param>
136 <when value="create_alignments"/> 176 <when value="create_alignments"/>
137 <when value="add_alignments"/> 177 <when value="add_alignments"/>
138 <when value="pasta_alignments"> 178 <when value="pasta_alignments">
139 <param name="pasta_iter_limit" type="integer" value="3" min="0" label="Maximum number of iteration that the PASTA algorithm will run"/> 179 <param name="pasta_iter_limit" type="integer" value="3" min="0" label="Maximum number of iteration that the PASTA algorithm will run"/>
140 </when> 180 </when>
141 </conditional> 181 </conditional>
142 <conditional name="multiple_codon_alignments_cond"> 182 <conditional name="input_includes_coding_sequences_cond">
143 <param name="multiple_codon_alignments" label="Construct orthogroup multiple codon alignments?" type="select"> 183 <param name="input_includes_coding_sequences" type="select" label="Input sequences include corresponding coding sequences?" help="Selected 'Yes' for the 'Create corresponding coding sequences?' option in the GeneFamilyClassifier tool for the selected input">
144 <option value="no" selected="True">No</option> 184 <option value="no" selected="true">No</option>
145 <option value="yes">Yes</option> 185 <option value="yes">Yes</option>
146 </param> 186 </param>
187 <when value="no"/>
147 <when value="yes"> 188 <when value="yes">
148 <param name="sequence_type" type="select" label="Sequence type used in the phylogenetic inference - (dna)"> 189 <conditional name="multiple_codon_alignments_cond">
149 <option value="protein" selected="true">Amino acid based</option> 190 <param name="multiple_codon_alignments" label="Construct orthogroup multiple codon alignments?" type="select">
150 <option value="dna">Nucleotide based</option> 191 <option value="no" selected="True">No</option>
151 </param>
152 <conditional name="use_corresponding_coding_sequences_cond">
153 <param name="use_corresponding_coding_sequences" type="select" label="Use corresponding coding sequences if available?" help="Must have selected 'Yes' for the 'Create corresponding coding sequences?' option in the GeneFamilyClassifier tool for the selected input above">
154 <option value="no" selected="true">No</option>
155 <option value="yes">Yes</option> 192 <option value="yes">Yes</option>
156 </param> 193 </param>
157 <when value="no" /> 194 <when value="no"/>
158 <when value="yes" /> 195 <when value="yes">
196 <param name="sequence_type" type="select" label="Sequence type used in the phylogenetic inference - (dna)">
197 <option value="protein" selected="true">Amino acid based</option>
198 <option value="dna">Nucleotide based</option>
199 </param>
200 <conditional name="use_corresponding_coding_sequences_cond">
201 <param name="use_corresponding_coding_sequences" type="select" label="Use corresponding coding sequences?">
202 <option value="no" selected="true">No</option>
203 <option value="yes">Yes</option>
204 </param>
205 <when value="no" />
206 <when value="yes" />
207 </conditional>
208 </when>
159 </conditional> 209 </conditional>
160 </when> 210 </when>
161 <when value="no"/>
162 </conditional> 211 </conditional>
163 </when> 212 </when>
164 </conditional> 213 </conditional>
165 <conditional name="phylogenetic_trees_cond"> 214 <conditional name="phylogenetic_trees_cond">
166 <param name="phylogenetic_trees" type="select" label="Set phylogenetic trees options?"> 215 <param name="phylogenetic_trees" type="select" label="Set phylogenetic trees options?">
173 <param name="tree_inference" type="select" label="Phylogenetic trees inference method"> 222 <param name="tree_inference" type="select" label="Phylogenetic trees inference method">
174 <option value="raxml" selected="true">RAxML</option> 223 <option value="raxml" selected="true">RAxML</option>
175 <option value="fasttree">FastTree</option> 224 <option value="fasttree">FastTree</option>
176 </param> 225 </param>
177 <when value="raxml"> 226 <when value="raxml">
178 <param name="rooting_order" format="txt" type="data" label="Select file containing strings matching sequence identifiers of species for determining the most basal taxa in the orthogroups for rooting trees"/> 227 <conditional name="rooting_order_file_cond">
228 <param name="rooting_order_file" type="select" label="Select history item containing strings matching sequence identifiers of species for determining the most basal taxa in the orthogroups for rooting trees?">
229 <option value="no" selected="true">No</option>
230 <option value="yes">Yes</option>
231 </param>
232 <when value="no"/>
233 <when value="yes">
234 <param name="rooting_order" format="txt" type="data" label="History item containing strings matching sequence identifiers of species for determining the most basal taxa in the orthogroups for rooting trees"/>
235 </when>
236 </conditional>
179 <param name="bootstrap_replicates" type="integer" value="100" min="0" label="Number of replicates for rapid bootstrap analysis and search for the best-scoring ML tree"/> 237 <param name="bootstrap_replicates" type="integer" value="100" min="0" label="Number of replicates for rapid bootstrap analysis and search for the best-scoring ML tree"/>
180 </when> 238 </when>
181 <when value="fasttree"/> 239 <when value="fasttree"/>
182 </conditional> 240 </conditional>
183 <param name="max_orthogroup_size" type="integer" value="100" min="0" label="Maximum number of sequences in orthogroup alignments"/> 241 <param name="max_orthogroup_size" type="integer" value="100" min="0" label="Maximum number of sequences in orthogroup alignments"/>
215 </conditional> 273 </conditional>
216 </when> 274 </when>
217 </conditional> 275 </conditional>
218 </inputs> 276 </inputs>
219 <outputs> 277 <outputs>
220 <data name="output" format="txt" label="Sequence alignments and corresponding phylogenies on ${on_string}"/> 278 <data name="output_fasta" format="txt" label="Sequence alignments and corresponding phylogenies on ${on_string}"/>
279 <data name="output_aln" format="txt" label="Sequence alignments and corresponding phylogenies using PASTA on ${on_string}">
280 <filter>options_type['options_type_selector'] == 'advanced' and options_type['multiple_sequence_alignments_cond']['multiple_sequence_alignments'] == 'yes' and options_type['multiple_sequence_alignments_cond']['multiple_sequence_alignments_option_cond']['multiple_sequence_alignments_option'] == 'pasta_alignments'</filter>
281 </data>
282 <data name="output_tree" format="txt" label="Phylogenetic trees on ${on_string}">
283 <filter>options_type['options_type_selector'] == 'advanced' and options_type['phylogenetic_trees_cond']['phylogenetic_trees'] == 'yes'</filter>
284 </data>
221 </outputs> 285 </outputs>
222 <tests> 286 <tests>
223 <test> 287 <test>
224 <param name="input" value="" ftype="fasta" />
225 <param name="prediction_method" value="transdecoder"/>
226 <param name="target_gene_family_assembly" value="no"/>
227 <param name="strand_specific" value="yes"/>
228 <param name="dereplicate" value="yes"/>
229 <param name="min_length" value="200"/>
230 <output_collection name="orthos" type="list">
231 </output_collection>
232 </test> 288 </test>
233 </tests> 289 </tests>
234 <help> 290 <help>
235 This tool is one of the PlantTribes' collection of automated modular analysis pipelines that utilize objective classifications of 291 This tool is one of the PlantTribes' collection of automated modular analysis pipelines that utilize objective classifications of
236 complete protein sequences from sequenced plant genomes to perform comparative evolutionary studies. It performs phylogenomic 292 complete protein sequences from sequenced plant genomes to perform comparative evolutionary studies. It performs phylogenomic
238 294
239 ----- 295 -----
240 296
241 **Options** 297 **Options**
242 298
299 * **Select sequences classified into gene family clusters** - A history item with the label 'Sequences classified into gene family clusters on...'.
243 * **Orthogroups or gene families proteins scaffold** - PlantTribes scaffolds data. 300 * **Orthogroups or gene families proteins scaffold** - PlantTribes scaffolds data.
244 * **Protein clustering method** - One of GFam, OrthoFinder or OrthoMCL. 301 * **Protein clustering method** - One of GFam, OrthoFinder or OrthoMCL.
245 * **Protein classification method** - One of blastp, HMMScan or both. 302
246 * **SuperOrthogroups MCL clustering** - blastp e-value matrix between all pairs of orthogroups. 303 * **Multiple sequence alignments options**
247 * **Minumum single copy taxa required in orthogroup** - Used with "Minumum single copy taxa required in orthogroup" configuration only. 304
248 * **Minumum taxa required in single copy orthogroup** - Used with "Minumum single copy taxa required in orthogroup" configuration only. 305 - **Select process for multiple sequence alignments** - Process used for setting multiple sequence alignments.
249 * **Corresponding coding sequences (CDS) fasta file** - Used only when selecting "Create orthogroup fasta files?". 306 - **Input sequences include corresponding coding sequences?** - Selecting 'Yes' for this option requires that 'Yes' was selected for the 'Create orthogroup fasta files?' option on the GeneFamilyClassifier tool when generating the selected input. This tool will produce an error if 'No' was selected.
250 307 - **Construct orthogroup multiple codon alignments?** - Construct orthogroup multiple codon alignments.
308 - **Sequence type used in the phylogenetic inference** - Sequence type used in the phylogenetic inference.
309 - **Use corresponding coding sequences?** - Selecting 'Yes' for this option requires that 'Yes' was selected for the 'Create corresponding coding sequences?' option on the GeneFamilyClassifier tool when generating the selected input. This tool will produce an error if 'No' was selected.
310
311 * **Phylogenetic trees options**
312 - **Phylogenetic trees inference method** - Phylogenetic trees inference method.
313 - **Select history item containing strings matching sequence identifiers of species for determining the most basal taxa in the orthogroups for rooting trees?** - If 'No' is selected, trees will be rooted using the most distant taxon present in the orthogroup.
314 - **History item containing strings matching sequence identifiers of species for determining the most basal taxa in the orthogroups for rooting trees** -History item containing a set of string fragments matching sequences identifiers of species in the classification (including scaffold taxa) to be used for determining the most basal taxa in the orthogroups for rooting trees. The set of string fragments must be listed in decreasing order from older to younger lineages.
315 - **Number of replicates for rapid bootstrap analysis and search for the best-scoring ML tree** - Number of replicates for rapid bootstrap analysis and search for the best-scoring ML tree.
316 - **Maximum number of sequences in orthogroup alignments** - Maximum number of sequences in orthogroup alignments.
317 - **Minimum number of sequences in orthogroup alignments** - Minimum number of sequences in orthogroup alignments
318
319 * **MSA quality control options**
320
321 - **Remove gappy sequences in alignments?** - Removes gappy sites in alignments (e.g. 0.1 removes sites with 90% gaps).
322
251 </help> 323 </help>
252 <citations> 324 <citations>
253 <citation type="bibtex"> 325 <citation type="bibtex">
254 @unpublished{None, 326 @unpublished{None,
255 author = {None}, 327 author = {None},