cannin/biostars_qa huggingface dataset:
Question: Hello everyone,

Does somebody here have experience with adding Rust tools to Bioconda?

I would like to add [BarcodEX-rs][1] to Bioconda, but unfortunately the build fails. Since there is no dedicated documentation for adding Rust packages and my attempts to copy the recipes from other Rust packages have not been successful (I tried those of *perbase*, *rust-bio-tools* and *fastqc-rs* ), I am somewhat out of ideas how to proceed with troubleshooting.

Regardless of what I try, [the build fails with][2]:

error[E0432]: unresolved import
error[E0433]: failed to resolve. Use of undeclared type or module
error[E0599]: no function or associated item found for struct in the current scope

However, if I build the tool locally with `cargo build --release` everything works smoothly and all imports are automatically resolved. What peculiarities of the Bioconda build system am I missing?

[The (somewhat desperate) PR can be found here][3].

[1]: https://github.com/oicr-gsi/barcodex-rs
[2]: https://dev.azure.com/bioconda/bioconda-recipes/_build/results?buildId=18640&view=logs&j=e14e69ff-a0ae-55c4-b71d-229b239cfb2f&t=7df82132-b284-504b-53d6-7d3e63519572
[3]: https://github.com/bioconda/bioconda-recipes/pull/35816/files

Answer: It looks like the compiler itself throws many errors (looking e.g. [here](https://dev.azure.com/bioconda/bioconda-recipes/_build/results?buildId=18645&view=logs&jobId=e14e69ff-a0ae-55c4-b71d-229b239cfb2f&j=e14e69ff-a0ae-55c4-b71d-229b239cfb2f&t=7df82132-b284-504b-53d6-7d3e63519572)). Does it compile for you locally and cleanly on the tagged release you are trying to submit?

**EDIT**: Ok, I just tried locally and the latest tag version seems to build fine. I assume the issue may have something to do with a many of the changes being made in the `build.sh` file? Could you try a minimal `build.sh` like [the one we use for `alevin-fry`](https://github.com/bioconda/bioconda-recipes/blob/master/recipes/alevin-fry/build.sh)?
Question: Hi all,

To my understanding, in the ChiA-PET method we:

Use formaldehyde to capture the cross-linking of the chromatin

Digest the chromatin

In general, ligate the chromatin strands to create pet samples

And in the Hi-C method we perform pretty much the same.

The end result of both should be information on chromatin interactions, so:

What is the basic difference between the process of ChiA-PET and Hi-C methods?

What is the difference in the result of the methods?

Thanks

Answer: I'm not an expert in either, but my understanding is that ChiA-PET is generally a more powerful method in that (1) it allows you to probe long-distance interactions relevant to some protein of interest, (2) it involves ligation of known adapters containing Mme1 cut-sites, which are exploited to get fragments with both sides of an interaction separated by known sequence, and (3) you can use multiple adapter sequences with ChiA-PET (divide the initial cross-linked and sonicated sample into multiple tubes) to gauge how frequently false-positives are found. In my mind, points 1 and 3 are big selling points, but there may be other big differences. There's a nice visual comparison of the two in figure 4 of this review article.
Question: Hello Everyone,

I have a fastq file and I want to extract only those reads which have length greater than 25 bp. So i want to make another fastq file with read length > 25 bp. How can I do this. This is my top 100 lines of fastq file

```
@SRR1024131.1 DBRHHJN1:259:D0PM7ACXX:1:1101:1911:1053 length=100
AGGGCAAGTATGAAGAAGTAGAATATT
+SRR1024131.1 DBRHHJN1:259:D0PM7ACXX:1:1101:1911:1053 length=100
DDFHHFHHGGGHGGIFHIJIIDIIJJI
@SRR1024131.2 DBRHHJN1:259:D0PM7ACXX:1:1101:2522:1198 length=100
GGCTCAACTTTCGATGGT
+SRR1024131.2 DBRHHJN1:259:D0PM7ACXX:1:1101:2522:1198 length=100
FFFGHHHHJJJJJGFIJF
@SRR1024131.3 DBRHHJN1:259:D0PM7ACXX:1:1101:3117:1165 length=100
ACATTTTTGAGTGCTTACTACAGT
+SRR1024131.3 DBRHHJN1:259:D0PM7ACXX:1:1101:3117:1165 length=100
FFFHHHHHHHIHEHHFGHFHHGII
@SRR1024131.4 DBRHHJN1:259:D0PM7ACXX:1:1101:3474:1075 length=100
TAGTACTTAGCAAAGAGTGA
+SRR1024131.4 DBRHHJN1:259:D0PM7ACXX:1:1101:3474:1075 length=100
DDDFHDFHIAGHIGHG@33A
@SRR1024131.5 DBRHHJN1:259:D0PM7ACXX:1:1101:3952:1099 length=100
TGAGAACTGAATTCCATAGGCTGT
+SRR1024131.5 DBRHHJN1:259:D0PM7ACXX:1:1101:3952:1099 length=100
EFFHGHHHHJIJJJJJIBFHEHIG
@SRR1024131.9 DBRHHJN1:259:D0PM7ACXX:1:1101:5277:1092 length=100
GCGGCGGCGTTATTCCCATGACCCGCCGG
+SRR1024131.9 DBRHHJN1:259:D0PM7ACXX:1:1101:5277:1092 length=100
FDDDHHDHI@B>=B>?@BD>ACCCBC@BB
@SRR1024131.11 DBRHHJN1:259:D0PM7ACXX:1:1101:6019:1101 length=100
AGTAGATTTGTATGGATTT
+SRR1024131.11 DBRHHJN1:259:D0PM7ACXX:1:1101:6019:1101 length=100
DDDHHFFHIGHAGHEFIII
@SRR1024131.14 DBRHHJN1:259:D0PM7ACXX:1:1101:8423:1248 length=100
AGTCGGTGATGGGAGTCTCT
+SRR1024131.14 DBRHHJN1:259:D0PM7ACXX:1:1101:8423:1248 length=100
FFFHHHFHIJIIJIJBHIJJ
@SRR1024131.15 DBRHHJN1:259:D0PM7ACXX:1:1101:9484:1233 length=100
TGCTGGGTCACACCTGAAGCT
+SRR1024131.15 DBRHHJN1:259:D0PM7ACXX:1:1101:9484:1233 length=100
FFFHHGHFHIJHHHJJHHIJJ
@SRR1024131.16 DBRHHJN1:259:D0PM7ACXX:1:1101:9807:1100 length=100
ACTATTCCAGCGAGAGTTAACATAAATTCCAAT
+SRR1024131.16 DBRHHJN1:259:D0PM7ACXX:1:1101:9807:1100 length=100
FFFHHHHHJJIJJJJIHHGHIJJGJJJJIIJJI
@SRR1024131.17 DBRHHJN1:259:D0PM7ACXX:1:1101:10857:1034 length=100
TAATCATTTTAATTGTACAGTTCAGTAATGT
+SRR1024131.17 DBRHHJN1:259:D0PM7ACXX:1:1101:10857:1034 length=100
B?3CDFBFFFFFIIF:EFHAHIC?FE+ABHH
@SRR1024131.19 DBRHHJN1:259:D0PM7ACXX:1:1101:13257:1082 length=100
ATGTGTTTGTAGGTTGTTTGTTGTCTTTA
+SRR1024131.19 DBRHHJN1:259:D0PM7ACXX:1:1101:13257:1082 length=100
DFFHHHHHJFHHIHHJFGHIJJIFIIIIG
@SRR1024131.20 DBRHHJN1:259:D0PM7ACXX:1:1101:14103:1161 length=100
TGAGGTAGTAGGTTGTATAGTT
+SRR1024131.20 DBRHHJN1:259:D0PM7ACXX:1:1101:14103:1161 length=100
FFEHFCFHFGHGEFHC@

Answer: linearize with paste, filter with awk, convert tabs to CR

```
gunzip -c *.fastq.gz |\
paste - - - - |\
awk 'length($2) > 25' |\
tr "\t" "\n"
```
Question: Hi all,

Is there a simple way to remove header lines from a vcf file.

Although I would like to retain the "original" VCF file as well. So ideally if `results.vcf` is my file then I want to create `results-noheader.vcf` as another file without the header lines.

Any way this can be done?

Thanks in advance.

Answer: Using negative matching:

> -v, --invert-match select non-matching lines

egrep -v "^#" original.vcf > no_header.vcf
Question: Hi everyone. Many bioinformatics courses usually have the same items like matching aligments, genome assembling, sequence alignment, variant calling and so on. But, I am interested in algorithms on which for example BLAST or Artemis works (like choosing primer, finding splicing indexes, find secondary structures of a family of RNA molecules etc).

Could you provide me some books or other sources where I can read about these non-obvious algorithms.

Sorry if my question is silly, I know that I could google every algorithm I want to understand, but it would be better to have 2-3 sources with a good explanation.

Thanks a lot.

Answer: Have you seen this: https://www.crcpress.com/Algorithms-in-Bioinformatics-A-Practical-Introduction/Sung/9781420070330
Question: Using spike-in controls is a common way of evaluating statistical methods while finding differentially expressed genes. Having Fastq files containing ERCC controls and the corresponding gtf file for the ERCCs, how can one does the alignment step with TopHat? For instance if the samples are from human, we have the fastq file, hg19 reference and the ERCC.gtf file. How can one use TopHat to align the fatsq files to the reference genome while they include the ERCC reads? Should we combine the hg19 reference genome with the ERCC. gtf file? Following article can be an example of this situation:

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3166838/

How should we include the ERCC controls information to the reference genome used in Tophat?

Thanks for the help.

Answer: You're on the right track. The ERCC sequences should be available as FASTA you can append to your reference genome as more chromosomes. Then tophat/bowtie will put the reads that belong to them onto those chromosomes. If you're using a GTF, go ahead and attach them there too, knowing they're unspliced single-exon sorts of mRNA.

Be aware some reads of human genome will fit on to some of the ERCC chromosomes as well. It's not many but it's not zero.
Question: We want use different genomic analysis tools like samtools,bcftool,plink etc

Which operating system should we use?

Answer: You can pretty much use any Linux or BSD UNIX you want. Most likely you will get familiar with the [package manager][1] for that platform.

If you use OS X, for instance, you might install [Homebrew][2] and install scientific packages made available via [Homebrew Science][3], which is usually as easy as: `$ brew install homebrew/science/some_package`

For other platforms, like some flavor of Linux, you might use [yum][4] or [rpm][5] (Red Hat/Fedora) or [apt-get][6] (Ubuntu/Debian).

If a package isn't available, you can almost always compile it from source code via GCC under Linux, or Clang/LLVM under OS X (via Xcode).

[1]: http://en.wikipedia.org/wiki/Package_manager
[2]: http://brew.sh
[3]: https://github.com/Homebrew/homebrew-science
[4]: http://en.wikipedia.org/wiki/Yellowdog_Updater,_Modified
[5]: http://en.wikipedia.org/wiki/RPM_Package_Manager
[6]: http://en.wikipedia.org/wiki/Advanced_Packaging_Tool
Question: [The Galaxy Wiki][1] repeatedly refers to the configuration file `universe_wsgi.ini`, but I can't find it anywhere. I installed using the stable release from mercurial just today. Does one not exist by default? Using find in the bash prompt did not turn up anything (`find -name *universe*` did not yield it either). Galaxy has to be getting its default port from somewhere. We've got something else running on our cluster on the default port (8080) so I need to access this file in order to change the open port to be able to use it. Any advice would be greatly appreciated as I've been Googling all day and just finding things about Galaxy Phones!

[1]: https://wiki.galaxyproject.org/Admin/GetGalaxy

Answer: Hello,

Galaxy configuration was cleaned up and now is consistently in the config/ folder. Also `universe.wsgi.ini` has been renamed to `galaxy.ini`

The default configuration, that your galaxy is running now can be thus found in `config/galaxi.ini.sample`

Sorry for the outdated documentation

For more Galaxy questions please use our dedicated Biostars at https://biostar.usegalaxy.org/

Thanks for using Galaxy

Martin
Question: Hi, dear members. I faced a problem when I used R package TIGRE. Because the Rdata stored in the package is about Drosophila. I really want to have a look about its data structure; in this way, I can figure out how to form my annotation or other necessary data types, and input my microarray data, which is about a plant pathogen, Gibberella zeae, different from the insect Drosophila. As the I don't manually annotated the genome of our fungus, so I want to input my annotation file into R and combine this file with my microarray file, then I can carry out transcription factor target identifications. Would do you please give me some suggestions? Thanks

The following is the results of R, and I really want to know the structure of the data `drosophila_gpsim_fragment`.

> library(tigre)

Welcome to Bioconductor

Vignettes contain introductory material. To view, type
'openVignette()'. To cite Bioconductor, see
'citation("Biobase")' and for packages 'citation(pkgname)'.
> data(drosophila_gpsim_fragment)
> drosophila_gpsim_fragment

ExpressionTimeSeries (storageMode: lockedEnvironment)
assayData: 4 features, 36 samples
element names: exprs, var.exprs
phenoData
sampleNames: embryo_tc_4_1.CEL, embryo_tc_4_2.CEL, ..., embryo_tc_8_12.CEL (36 total)
varLabels and varMetadata description:
time.h: time.h
experiments: experiment ID
modeltime: modeltimes
featureData
featureNames: 143396_at, 148227_at, 152715_at, 147995_at
fvarLabels and fvarMetadata description: none

experimentData: use 'experimentData(object)'
Annotation: drosgenome1

Answer: Have you tried the `str()` command? It will let you examine the structure of an object.
Question: Hello!
Can you please suggest accessible (let's say downloadable) database or dataset of druggable protein-protein complexes?

There are a lot of articles about PPI, but not to many datasets that I can download and test the hypothesis for classification of the druggable PPI and nondruggable PPI.

Thank you in advance!

Answer: The server described in this article 2P2Idb: a structural database dedicated to orthosteric modulation of protein–protein interactions, which unfortunately seems to be down at the moment, may be useful.

In general, this is a topic that I know Xavier Morelli works on (i.e. he's interested in producing bioinformatics tools which focus on the drugability of PPIs) so you might like to check out some of his other work.
Question: Hi all, I am new to the BioInformatics, and quite a beginner in programming languages. Can anyone suggest me some sources where I can at least learn 50% of the scRNA seq data analysis? I am familiar with C language, and I know a little bit of molecular biology too.

Answer: [Scanpy][1] has good tutorials that can help you.

[1]: https://scanpy.readthedocs.io/en/stable/
Question: Hello I have this data.frame and as you can see there are lists inside some cells.

myList1 <- list()
myList1[[1]] <- 0
myList1[[2]] <- list(3)
myList1[[3]] <- list(6)
myList1[[4]] <- list(7, 9)

myList <- list()
myList[[1]] <- list(1, 4, 6, 7)
myList[[2]] <- list(2, 7, 3)
myList[[3]] <- list(5, 5, 3, 9, 6)
myList[[4]] <- list(7, 9)

myDataFrame <- data.frame(row = c(1,2,3,4))

myDataFrame$col1 <- myList1
myDataFrame$col2 <- myList

the data frame looks like:

row col1 col2
1 0 list(1, 4, 6, 7)
2 list(3) list(2, 7, 3)
3 list(6) list(5, 5, 3, 9, 6)
4 list(7, 9) list(7, 9)

Is there any way to unlist the lists and collapse with colon symbol, their items in order to make the dataframe look like the following ?

row col1 col2
1 0 1:4:6:7
2 3 2:7:3
3 6 5:5:3:9:6
4 7:9 7:9

Thank you

Answer: My first thought is that you should examine your choices that got you to this point and choose a better data representation.

If you *must* fix this problem as described, then something like this should work:

for(i in 1:length(myDataFrame[,1])){
if(is.list(myDataFrame[i,3])){
myDataFrame[i,3]=paste(unlist(myDataFrame[i,3]),collapse=":")
}
}
Question: Hi,

I have some questions concerning the output of Trimmomatic after adapter removal.
I have 80 bp paired-end reads in Ilumina 1.9 encoding (Phred+33). Using FastQC for quality control, I noticed some overrepresented sequences in the data which were identified as TruSeq adapters. For this reason, I used Trimmomatic in order to trim the adapters and to drop any resulting reads with a length < 36 bp:

java -jar trimmomatic-0.38.jar PE -phred33 seq_1.fastq.gz seq_2.fastq.gz seq_1_trimmed_paired.fastq.gz seq_2_trimmed_unpaired.fastq.gz seq_1_trimmed_paired.fastq.gz seq_2_trimmed_unpaired.fastq.gz ILLUMINACLIP:TruSeq3-PE.fa:2:30:10 MINLEN:36

As a result, I get ~99% of both reads surviving and ~1% forward reads only surviving and 0% reverse reads only surviving:

ILLUMINACLIP: Using 1 prefix pairs, 0 forward/reverse sequences, 0 forward only sequences, 0 reverse only sequences
Input Read Pairs: 71446282 Both Surviving: 70983555 (99.35%) Forward Only Surviving: 453784 (0.64%) Reverse Only Surviving: 0 (0.00%) Dropped: 8943 (0.01%)

Is the 0% reverse only surviving the expected result?
It seems that the reverse reads are the only ones affected by the adapter trimming. However, in the FastQC quality control, the warnings for overrepresented adapter sequences only showed up for the forward reads.

And what is the difference between the TruSeq3-PE.fa and the reverse complements TruSeq3-PE-2.fa adapter sequence files and which of them should actually be used to trim adapters from paired-end reads?

I would be very grateful for any help or explanations.

Answer: Trimmomatic's default behaviour is to drop the reverse reads when it trims adapters, so you get forward reads only surviving as a result.

The reasoning behind this is that when you read into the adapter sequences it means that the insert is shorter than one of the reads, so the reverse read doesn't add any extra information, it is just the reverse complement of the forward read.

However, the default behaviour can be changed if you want to keep the reverse reads after adapter trimming. See the Trimmomatic manual, you need to add TRUE as the last parameter to ILLUMINACLIP.
Question: Hi All,
I am working on RNAseq data analysis using DESeq2 R package.
I havemy code `dds <- DESeqDataSetFromMatrix(countData = count.mat , colData = cond, design = ~Strain + Time)` to create the matrix.
My confusion is with the design formula `design = ~Strain + Time` where I have `Strain` and `Time` variables to compare in my colData for my countData matrix.

This is my `cond` matrix

Strain Time
count1 1 1
count2 1 1
count4 1 2
count5 1 2
count13 2 1
count14 2 1
count16 2 2
count17 2 2
countX 2 3

First,
I want to understand the difference between these four designs that could go in the function `DESeqDataSetFromMatrix`:

a) `design = ~Strain + Time + Strain:Time`
b) `design = ~Strain + Time`
c) `design = ~Time`
and d) `design = ~Strain`

Second,

My understanding is that the DESeq2 takes the last variable in the design formula (here Time) as a control variable, so to test for different samples in Time group, I have these codes below. So, I want to know what the outputs of `resultNames(ddsTC)` really mean?

ddsTC <- DESeqDataSet(dds, ~ Strain + Time ) ##For time
ddsTC <- DESeq(ddsTC, test="LRT", reduced = ~Time ) #For Time

resultsNames(ddsTC)
[1] "Intercept.1" "Time_3_vs_1.1" "Time_2_vs_1.1" "Strain_2_vs_1.1"

Answer: This ends up not being a questions about DESeq2, but about how linear models work (the same nomenclature is used for ANOVAs). https://www.biostars.org/u/22850/ basically explained this in the comments, but I'll point out that everything from limma to a standard ANOVA works exactly like this.

> My understanding is that the DESeq2 takes the last variable in the design formula (here Time) as a control variable, so to test for different samples in Time group, I have these codes below. So, I want to know what the outputs of resultNames(ddsTC) really mean?

It doesn't take the last variable as a control, it just uses that one for plotting and output by default. So if you do `design=Strain + Time` and then do `results()` then the results will be for the `Time` effect.

`resultNames()` is giving you the names of the coefficients in your model.

ddsTC <- DESeqDataSet(dds, ~ Strain + Time ) ##For time
ddsTC <- DESeq(ddsTC, test="LRT", reduced = ~Time ) #For Time

Note that you're testing the effect of `Strain` above, not `Time` as suggested by the comment.

I strongly recommend familiarizing yourself with basic linear models. A pretty hefty chunk of the statistics used in bioinformatics boils down to that.
Question: Could bayesian analysis, maximum likelihood, neighbour joining be considered unsupervised machine-learning approaches?

Answer: Definitions for machine learning vary. If you pick some definition around learning from data then you could consider many data analysis approaches as machine learning. Sometimes, it's presented as the science to automatically build models from data. However, in practice, the term machine learning is often used to refer to statistical methods focusing on finding patterns and making prediction (i.e. classification and regression for the supervised case and clustering for the unsupervised case). So the context seems to play a role.
Building a phylogenetic tree is a form of hierarchical clustering so could be considered machine learning by most definitions except that the people doing phylogenetics do not come from the traditional machine learning community so they don't call their activity as such.
Question: Hi there,

I would like to calculate ratio of NN (total markers/ total NN) from different groups (here 6 sample A and B-groups) in R.
It must be easy but I couldn't any example online.

I have found some similar answer but as a newbie to R, I couldn't annotate the code.
https://stackoverflow.com/questions/48555851/adding-a-row-for-the-ratio-of-two-variables

A1	A2	A3	A4	A5	A6	B1	B2	B3	B4	B5	B6
M1	CC	CC	AC	AA	CC	CC	CC	AA	AC	CC	CC	CC
M2	NN	AA	AA	AC	AA	AA	AA	AA	AA	AA	AA	AA
M3	AA	AA	NN	NN	AA	AA	GG	NN	GG	GG	NN	NN
M4	NN	NN	NN	AA	AA	NN	AA	AA	AA	AA	NN	NN

expected output

A1	A2	A3	A4	A5	A6	B1	B2	B3	B4	B5	B6	A-ratio B-ratio A+B-ratio
M1	CC	CC	AC	AA	CC	CC	CC	AA	AC	CC	CC	CC	-	-	-
M2	NN	AA	AA	AC	AA	AA	AA	AA	AA	AA	AA	AA	0	-	11
M3 AA	AA	NN	NN	AA	AA	GG	NN	GG	GG	NN	NN	1.5	0.7	1.4
M4 NN NN NN	AA	AA	NN	AA	AA	AA	AA	NN	NN	0	4	1.0

Thanks for your help.

Answer: I am guessing we are trying to get missingness per sample and overall, try this example:

# example data
df1 <- read.table(text = " A1 A2 A3 A4 A5 A6 B1 B2 B3 B4 B5 B6
M1 CC CC AC AA CC CC CC AA AC CC CC CC
M2 NN AA AA AC AA AA AA AA AA AA AA AA
M3 AA AA NN NN AA AA GG NN GG GG NN NN
M4 NN NN NN AA AA NN AA AA AA AA NN NN", header = TRUE, stringsAsFactors = FALSE)

x <- colnames(df1)
cbind(df1,
sapply(c("A", "B"), function(i){
d <- df1[ grepl(paste0("^", i), x) ]
rowSums(d == "NN")/ncol(d)
}),
AB = rowSums(df1 == "NN")/ncol(df1)
)
# A1 A2 A3 A4 A5 A6 B1 B2 B3 B4 B5 B6 A B AB
# M1 CC CC AC AA CC CC CC AA AC CC CC CC 0.0000000 0.0000000 0.00000000
# M2 NN AA AA AC AA AA AA AA AA AA AA AA 0.1666667 0.0000000 0.08333333
# M3 AA AA NN NN AA AA GG NN GG GG NN NN 0.3333333 0.5000000 0.41666667
# M4 NN NN NN AA AA NN AA AA AA AA NN NN 0.6666667 0.3333333 0.50000000
Question: There are so many things to read about ga4gh: I'm a little bit lost. So here are a few questions about [GA4GH][1] / Beacons :

- I've got some VCF files. What is the correct way to expose my data? How can I secure my data for my collaborators? Is there a java server implementation?
- If I build a beacon server from scratch (learning... learning...) is there a tool that can be used to test if my implementation is [ga4gh][1] compliant?
- Where should I declare that I'm providing a beacon server?
- The schema use [avro][2]; Is it possible to return plain JSON or does using Avro means that I need to serialize the data as a binary stream? Is there any API converting jaav+htsjdk to avro?
- What's the best place to ask questions about ga4gh?

[1]: http://genomicsandhealth.org/
[2]: https://avro.apache.org/

Answer: > I've got some VCFs file: what is the correct way to expose my data? how can I secure my data for my collaborators? Is there a java server implementation?

There are a number of servers to get you started - see developers tab on http://ga4gh.org/#/beacon

> If I build a beacon server from scratch (learning... learning...) is there a tool that can be used to test if my implentation is ga4gh compliant?

There is a suite of compliance tests for GA4GH schemas, at the moment coverage has not extended to Beacons, yet. However the schema is very simple (as it was intended to be) and it would not be difficult to confirm compliance.

> where should I declare that I'm providing a beacon server?

http://beacon-network.org

> the schema use avro (https://avro.apache.org/); Is it possible to return plain JSON or does using Avro means that I need to serialize the data as a binary stream? is there any API converting jaav+htsjdk to avro?

It is not necessary to use AVRO to serve your Beacon results. Plain old JSON which is conferment to the schema is acceptable.

> what's the best place to ask questions about ga4gh?

- https://github.com/ga4gh/schemas/issues
- https://github.com/ga4gh/beacon-team/issues